2012-12-06 3 views
1

아마존 dynamoDB에 연결할 수 있는지 테스트 할 수있는 아주 작은 프로그램을 실행하려고하면 aws 보석을 설치하지 않은 것처럼 오류가 발생합니다 ...AWS 루비 보석이 설치되어 있지 않은 것처럼

내 코드는 다음

require "AWS" 

AWS.config( access_key_id: ENV["coco"], 
secret_access_key: ENV["xixi"] 
) 

DB = AWS::DynamoDB.new 

그리고 다음과 같은 오류가 : 당신이 여기에서 볼 수

reducer.rb:4:in `<main>': uninitialized constant AWS (NameError) 

주옥가 설치됩니다 :

Bernardos-MacBook-Pro:cn bersimoes$ gem which aws 
/Users/bersimoes/.rvm/gems/ruby-1.9.3-p286/gems/aws-2.6.0/lib/aws.rb 

도움을 주시면 감사하겠습니다.

답변

3

잘못된 보석이 있습니다. AWS::DynamoDB supportaws-sdk이 필요합니다. 로 설치 : 당신은 당신이 바로 하나를로드 할 수 있도록 기존의 aws 보석을 제거해야 할 수도 있습니다

gem install aws-sdk 

(둘은 aws.rb 파일이 있습니다). 또는 require 앞에 코드에서 gem 'aws-sdk'을 사용하여 올바른 보석이로드되었는지 확인할 수 있습니다. 또 다른 가능성은 provides that file basically as an alias부터 require 'aws-sdk'입니다. 이것은 아마도 Mac에서 문제가 발생하지 않습니다

require 'aws' # note lower case 

,하지만 만약 당신이 리눅스와 같은 대소 문자를 구분 컴퓨터에 코드를 이동하는 경우 문제가 발생합니다

은 또한 당신은 사용해야합니다.

+0

감사합니다! – golfadas

2

이 오류가 발생하고 "aws-sdk"보석을 설치 한 경우 실수로의 aws-sdk 보석 버전 2로 업그레이드 한 일 가능성이 있습니다. 버전 2는 AWS이 아니라 Aws 네임 스페이스를 사용합니다. 이렇게하면 버전 1과 버전 2를 동일한 응용 프로그램에서 사용할 수 있습니다.

자세한 내용은 blog post을 참조하십시오.

+0

이 답변의 블로그 게시물은'gem install aws-sdk : '<2.0''을 사용하게했습니다. 이것은 내 상황에서 일했습니다! – rickumali

2

그래,이 문제가 발생하여 해결되었습니다. AWS가 보석을 2.0으로 업데이트했기 때문입니다. 보석을 2.0으로 업데이트하면이 기사에 따라 다른 구성이 필요합니다.

당신이 전에 있던 버전을 사용하려면 아래 사항처럼 Gemfile을 변경

Gemfile에게

보석 'AWS-SDK를', '< 2.0'일

관련 문제