Chef 未初始化常量 Chef::Recipe::AWS
Chef uninitialized constant Chef::Recipe::AWS
My cookbook 未编译并抛出错误 uninitialized constant Chef::Recipe::AWS. chef_gem aws-sdk 安装正常,但仍然无法编译AWS.config(access_key_id: 'key', secret_access_key: 'pass') 被调用。
chef_gem "aws-sdk"
AWS.config(access_key_id: key, secret_access_key: pass)
rds = AWS::RDS.new
您需要向 aws-sdk gem 提供您的 aws 凭据。正如您在 gem 文档中看到的那样:
Basic Configuration
You need to provide your AWS security credentials and choose a default
region.
AWS.config(access_key_id: '...', secret_access_key: '...', region:
'us-west-2')
You can also specify these values via ENV:
export AWS_ACCESS_KEY_ID='...' export AWS_SECRET_ACCESS_KEY='...'
export AWS_REGION='us-west-2'
使用您的凭据编辑 'key'
和 'pass'
,并添加您要使用的 aws 区域。
根据 aws-sdk-ruby here 的文档和代码,class 名称是 Aws
而不是 AWS
。
但是你的主要问题是你没有包括 gem.
安装的库
在尝试调用它之前添加 require 'aws-sdk'
class。
为了避免被与 Chef::Recipe
命名空间的名称冲突所困扰,将库作为顶级库调用,例如 ::Aws.config(...)
根据个人研究编辑:
AWS
命名空间来自 sdk v1,如果你真的想使用这个而不是 v2,你必须将你的配方更改为:
chef_gem "aws-sdk-v1"
require 'aws-sdk-v1'
AWS.config(access_key_id: key, secret_access_key: pass)
rds = AWS::RDS.new
My cookbook 未编译并抛出错误 uninitialized constant Chef::Recipe::AWS. chef_gem aws-sdk 安装正常,但仍然无法编译AWS.config(access_key_id: 'key', secret_access_key: 'pass') 被调用。
chef_gem "aws-sdk"
AWS.config(access_key_id: key, secret_access_key: pass)
rds = AWS::RDS.new
您需要向 aws-sdk gem 提供您的 aws 凭据。正如您在 gem 文档中看到的那样:
Basic Configuration
You need to provide your AWS security credentials and choose a default region.
AWS.config(access_key_id: '...', secret_access_key: '...', region: 'us-west-2')
You can also specify these values via ENV:
export AWS_ACCESS_KEY_ID='...' export AWS_SECRET_ACCESS_KEY='...' export AWS_REGION='us-west-2'
使用您的凭据编辑 'key'
和 'pass'
,并添加您要使用的 aws 区域。
根据 aws-sdk-ruby here 的文档和代码,class 名称是 Aws
而不是 AWS
。
但是你的主要问题是你没有包括 gem.
安装的库在尝试调用它之前添加 require 'aws-sdk'
class。
为了避免被与 Chef::Recipe
命名空间的名称冲突所困扰,将库作为顶级库调用,例如 ::Aws.config(...)
根据个人研究编辑:
AWS
命名空间来自 sdk v1,如果你真的想使用这个而不是 v2,你必须将你的配方更改为:
chef_gem "aws-sdk-v1"
require 'aws-sdk-v1'
AWS.config(access_key_id: key, secret_access_key: pass)
rds = AWS::RDS.new