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

Sign up to get free protection for your applications and to get access to all the features.
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".