【发布时间】:2014-12-23 15:21:12
【问题描述】:
我正在使用 AWS Ruby v2 sdk 预发行版。为 eu-west-1 顺利运行的 EC2 和 S3 服务的脚本不适用于 eu-central-1。我收到以下异常:
AWS was not able to validate the provided access credentials (Aws::EC2::Errors::AuthFailure)
经过简短的查询,我发现这是因为 eu-central-1 仅支持 Signature Version 4。没关系。按照建议,我在config.yml 中添加了s3_signature_version: v4。然后我开始得到一个新的异常:
/usr/local/lib/ruby/gems/2.1.0/gems/aws-sdk-core-2.0.3/lib/seahorse/client/configuration.rb:160:in `rescue in block in apply_options': invalid configuration option `:s3_signature_version' (ArgumentError)
所以现在我有 2 个问题。
-
s3_signature_version: v4中的config.yml有什么问题? - 还有什么类似的 Ec2 签名版本 4 配置需要添加?
【问题讨论】:
-
config.yml在旧版 AWS 开发工具包中使用。您正在使用的是 aws-sdk-core,它是较新的。您需要为 aws-sdk-core 找到类似的选项。 -
@slayedbylucifer 特定文件名重要吗?我正在使用通用方法从文件中检索配置。到目前为止,我没有看到不同文件名的任何影响。 aws-config.yml 是我的真实文件。
config_file = File.join(File.dirname(__FILE__),"aws-config.yml")\n Aws.config = YAML.load(File.read(config_file)).inject({}) { |h,(k,v)| h.merge(k.to_sym => v) } -
检查一下:github.com/aws/aws-sdk-core-ruby/tree/master/aws-sdk-core/spec/… 似乎他们已将此功能添加到 aws-sdk-ruby。您能否尝试安装/更新最新版本的 aws-sdk-core gem,然后尝试。它可能支持开箱即用的签名 V4。
标签: ruby amazon-web-services amazon-ec2