Aws SDK Ruby - 配置 Faraday 时自动检索凭证
Aws SDK Ruby - retrieve credentials automatically when configuring Faraday
我喜欢使用 AWS SDK,而无需指定在哪里可以找到凭据,它可以更轻松地在提供不同类型凭据的多个环境中进行配置。
The AWS SDK for Ruby searches for credentials [...]
有什么方法可以检索执行此操作的代码以使用 AWS 配置法拉第?为了配置法拉第,我需要类似
的东西
faraday.request(:aws_sigv4,
service: 'es',
credentials: credentials,
region: ENV['AWS_REGION'],
)
现在我希望像在 aws sdk v3 中一样选择此凭据 "automatically"。我该怎么做?
(即 AWS SDK v3 中执行类似
的代码在哪里
credentials = Aws::Credentials.new(ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'])
unless credentials.set?
credentials = Aws::InstanceProfileCredentials.new
end
...
class Aws::CredentialProviderChain
是负责解析凭据的人,但它被标记为 @api private
所以目前不能保证它在更新后仍然存在(我已开启讨论以使其成为 public)。
如果你可以使用它,你可以像这样解析凭据。我将在 CI(ENV 信用)、开发(Aws 配置信用)和 staging/production 环境(实例配置文件信用)中对其进行测试。
Aws::CredentialProviderChain.new.resolve
你可以像这样在中间件中使用它(例如配置Elasticsearch/Faraday)
faraday.request(:aws_sigv4,
service: 'es',
credentials: Aws::CredentialProviderChain.new.resolve,
region: ENV['AWS_REGION'],
)
end
我喜欢使用 AWS SDK,而无需指定在哪里可以找到凭据,它可以更轻松地在提供不同类型凭据的多个环境中进行配置。
The AWS SDK for Ruby searches for credentials [...]
有什么方法可以检索执行此操作的代码以使用 AWS 配置法拉第?为了配置法拉第,我需要类似
的东西faraday.request(:aws_sigv4,
service: 'es',
credentials: credentials,
region: ENV['AWS_REGION'],
)
现在我希望像在 aws sdk v3 中一样选择此凭据 "automatically"。我该怎么做?
(即 AWS SDK v3 中执行类似
的代码在哪里credentials = Aws::Credentials.new(ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'])
unless credentials.set?
credentials = Aws::InstanceProfileCredentials.new
end
...
class Aws::CredentialProviderChain
是负责解析凭据的人,但它被标记为 @api private
所以目前不能保证它在更新后仍然存在(我已开启讨论以使其成为 public)。
如果你可以使用它,你可以像这样解析凭据。我将在 CI(ENV 信用)、开发(Aws 配置信用)和 staging/production 环境(实例配置文件信用)中对其进行测试。
Aws::CredentialProviderChain.new.resolve
你可以像这样在中间件中使用它(例如配置Elasticsearch/Faraday)
faraday.request(:aws_sigv4,
service: 'es',
credentials: Aws::CredentialProviderChain.new.resolve,
region: ENV['AWS_REGION'],
)
end