簡體   English   中英

Chef未初始化的常量Chef :: Recipe :: AWS

[英]Chef uninitialized constant Chef::Recipe::AWS

我的菜譜未編譯,並拋出錯誤未初始化的常量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-ruby的文檔以及代碼,類名是Aws而不是AWS

但是這里的主要問題是您不包括gem所安裝的lib。

在嘗試調用類之前添加require 'aws-sdk'

為了避免與Chef::Recipe名稱空間發生名稱沖突而被咬住,請將lib稱為頂級::Aws.config(...) lib,例如::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

您需要向aws-sdk gem提供您的aws憑證。 您可以在gem文檔中閱讀:

基本配置

您需要提供您的AWS安全憑證並選擇一個默認區域。

AWS.config(access_key_id:'...',secret_access_key:'...',地區:'us-west-2')

您還可以通過ENV指定這些值:

導出AWS_ACCESS_KEY_ID ='...'導出AWS_SECRET_ACCESS_KEY ='...'導出AWS_REGION ='us-west-2'

使用您的憑據編輯'key''pass' ,然后添加要使用的aws區域。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM