fluent-plugin-aws-elasticsearch-service 0.1.6 → 0.1.7.pre.alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 336a3781840865fe97e3706eb663486e97c36b54
4
- data.tar.gz: ecba7aa13b0569e3aa9940905c988320f38cabbe
3
+ metadata.gz: 2600c216583522a9225c296e0e08b69e83ab43b0
4
+ data.tar.gz: 3290c1a3dfef7268c864fdfc8537bcc9b98701c1
5
5
  SHA512:
6
- metadata.gz: dc057bb9614641abbfe7058ba9b73523718dcf8ec41ac28ae7ddec31b0715590ebf1ecaf4dc82af6d8b93b52d3bf4ec3c3d671c9def22d7876cc939a08e63e54
7
- data.tar.gz: 6215725de5851401a57545687022105c0119ab2b3798feee7a7ca107d73b207d6594fa48b23b7f7d32c5019571ca646f31595ffcf3aaf5fca553c5e0207db3a0
6
+ metadata.gz: ce5905d8c5681741da685cdf6cbae33becac308e63222f6a3461c4c730fadcd05e07ae372af8022d04a2c72ef2c4bde3f336fa9250a67b9e6920bfd516bebb92
7
+ data.tar.gz: 2381c6e58f8248368067040637d8c857dfd00a7b41aeb9641498b353e4582e554e40298b7085abf93fb858d0e53dd7a9991f5d934eae94d17dbc59de7dd947f0
data/README.md CHANGED
@@ -90,7 +90,7 @@ Additionally, you can use an STS assumed role as the authenticating factor and i
90
90
  <endpoint>
91
91
  url https://CLUSTER_ENDPOINT_URL
92
92
  region eu-west-1
93
- assume_role_arn arn:aws:sts::ACCOUNT:assumed-role/ROLE
93
+ assume_role_arn arn:aws:sts::ACCOUNT:role/ROLE
94
94
  assume_role_session_name SESSION_ID # Defaults to fluentd if omitted
95
95
  </endpoint>
96
96
  ```
@@ -126,6 +126,14 @@ You'll need to ensure that the environment in which the fluentd plugin runs has
126
126
  }
127
127
  ```
128
128
 
129
+ ## Troubleshooting
130
+
131
+ * "Elasticsearch::Transport::Transport::Errors::Forbidden" error="[403]" even after verifying the access keys/roles/policies.
132
+ * Ensure you don't have a trailing slash on the endpoint URL in your fluentd configuration file (see CLUSTER_ENDPOINT_URL above).
133
+
134
+ * "ElasticsearchIllegalArgumentException[explicit index in bulk is not allowed]"
135
+ * Check that `rest.action.multi.allow_explicit` is set true on your Amazon ES domain (verify in the console - there's a bug in Terraform, https://github.com/hashicorp/terraform/issues/3980).
136
+
129
137
  ## Development
130
138
 
131
139
  After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -5,7 +5,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "fluent-plugin-aws-elasticsearch-service"
8
- spec.version = "0.1.6"
8
+ spec.version = "0.1.7-alpha"
9
9
  spec.authors = ["atomita"]
10
10
  spec.email = ["sleeping.cait.sith+gh@gmail.com"]
11
11
 
@@ -17,9 +17,16 @@ module Fluent
17
17
  config_param :access_key_id, :string, :default => ""
18
18
  config_param :secret_access_key, :string, :default => ""
19
19
  config_param :assume_role_arn, :string, :default => nil
20
+ config_param :ecs_container_credentials_relative_uri, :string, :default => nil #Set with AWS_CONTAINER_CREDENTIALS_RELATIVE_URI environment variable value
20
21
  config_param :assume_role_session_name, :string, :default => "fluentd"
21
22
  end
22
23
 
24
+ # here overrides default value of reload_connections to false because
25
+ # AWS Elasticsearch Service doesn't return addresses of nodes and Elasticsearch client
26
+ # fails to reload connections properly. This ends up "temporarily failed to flush the buffer"
27
+ # error repeating forever. See this discussion for details:
28
+ # https://discuss.elastic.co/t/elasitcsearch-ruby-raises-cannot-get-new-connection-from-pool-error/36252
29
+ config_set_default :reload_connections, false
23
30
 
24
31
  #
25
32
  # @override
@@ -63,10 +70,15 @@ module Fluent
63
70
  credentials = Aws::Credentials.new opts[:access_key_id], opts[:secret_access_key]
64
71
  else
65
72
  if opts[:assume_role_arn].nil?
66
- credentials = Aws::SharedCredentials.new({
67
- retries: 2
68
- }).credentials
69
- credentials ||= Aws::InstanceProfileCredentials.new.credentials
73
+ if opts[:ecs_container_credentials_relative_uri].nil?
74
+ credentials = Aws::SharedCredentials.new({retries: 2}).credentials
75
+ credentials ||= Aws::InstanceProfileCredentials.new.credentials
76
+ credentials ||= Aws::ECSCredentials.new.credentials
77
+ else
78
+ credentials = Aws::ECSCredentials.new({
79
+ credential_path: opts[:ecs_container_credentials_relative_uri]
80
+ }).credentials
81
+ end
70
82
  else
71
83
  credentials = sts_credential_provider({
72
84
  role_arn: opts[:assume_role_arn],
@@ -80,7 +92,7 @@ module Fluent
80
92
  end
81
93
  def calback.inspect
82
94
  credentials = self.call
83
- "#<#{credentials.class.name} access_key_id=#{credentials.access_key_id.inspect}>"
95
+ credentials.credentials.inspect
84
96
  end
85
97
  calback
86
98
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-aws-elasticsearch-service
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7.pre.alpha
5
5
  platform: ruby
6
6
  authors:
7
7
  - atomita
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-06-23 00:00:00.000000000 Z
11
+ date: 2017-10-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -143,12 +143,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
143
143
  version: '0'
144
144
  required_rubygems_version: !ruby/object:Gem::Requirement
145
145
  requirements:
146
- - - ">="
146
+ - - ">"
147
147
  - !ruby/object:Gem::Version
148
- version: '0'
148
+ version: 1.3.1
149
149
  requirements: []
150
150
  rubyforge_project:
151
- rubygems_version: 2.2.2
151
+ rubygems_version: 2.6.11
152
152
  signing_key:
153
153
  specification_version: 4
154
154
  summary: Output plugin to post to "Amazon Elasticsearch Service".