2015-02-13 2 views
1

Моя поваренная книга не компилируется, забрасывая ошибку неинициализированный постоянный шеф-повар :: Рецепт :: AWS. chef_gem aws-sdk установлен отлично, но до сих пор не компилируется, когда AWS.config (access_key_id: 'key', secret_access_key: 'pass') вызывается.Шеф-повар неинициализированный постоянный шеф-повар :: Рецепт :: AWS

chef_gem "aws-sdk" 

AWS.config(access_key_id: key, secret_access_key: pass) 

rds = AWS::RDS.new 

ответ

1

Согласно документу от aws-sdk-ruby here, и к этому коду, имя класса Aws, а не AWS.

Но ваша главная проблема здесь в том, что вы не включаете lib, установленную драгоценным камнем.

добавить require 'aws-sdk', прежде чем пытаться назвать его классом.

Для того, чтобы избежать укусов конфликта имен с Chef::Recipe именами называют Либерал в качестве верхнего Lib уровня, как ::Aws.config(...)

Edit из Personnal исследования: 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 
+0

chef_gem «aws-sdk-v1» было, спасибо! –

0

Вам необходимо предоставить aws-sdk gem свои учетные данные aws. Как вы можете прочитать в документации гем:

Базовая конфигурация

Вам необходимо предоставить учетные данные безопасности AWS и выбрать по умолчанию область.

AWS.config (access_key_id: '... ' secret_access_key:' ...', регион: 'нас-запад 2')

Вы также можете задать эти значения с помощью ENV:

экспорт AWS_ACCESS_KEY_ID = '...' экспорт AWS_SECRET_ACCESS_KEY = '...' экспорт AWS_REGION = 'мы-запад-2'

Edit 'key' и 'pass' с учетными данными, и добавьте AWS область, которую хотите использовать.

+0

access_key_id и secret_access_key устанавливаются значения, я просто не показывать объявления переменных, потому что очевидно, что я не хочу, чтобы показать свои полномочия. –

+0

Хорошо, попробуйте добавить 'region' также. –