1

アマゾンdynamoDBに接続できるかどうかをテストするために想定されていた非常に小さなプログラムを実行しようとすると、awsgemをインストールしていないかのようにエラーが発生します...

私のコードは次のとおりです。

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)

ここに表示されているように、gemがインストールされます。

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

どんな助けでも大歓迎です!

4

3 に答える 3

3

あなたは間違った宝石を持っています。サポートが必要aws-sdkです。インストール方法:AWS::DynamoDB

gem install aws-sdk

正しいgemを確実にロードするために、既存のgemをアンインストールする必要がある場合がありawsます(両方にaws.rbファイルがあります)。gem 'aws-sdk'または、コードで使用してrequire、正しいgemがロードされていることを確認することもできます。もう1つの可能性はrequire 'aws-sdk'、gemがそのファイルを基本的にエイリアスとして提供するためです。

また、以下を使用する必要があります。

require 'aws' # note lower case

これはおそらくMacでは問題を引き起こしませんが、Linuxのような大文字と小文字を区別するマシンにコードを移動すると問題が発生します。

于 2012-12-06T21:29:55.413 に答える
2

このエラーが発生し、「aws-sdk」gemがインストールされている場合は、意図せずにaws-sdkgemのバージョン2にアップグレードした可能性があります。バージョン2は、Awsではなく名前空間を使用しますAWS。これにより、バージョン1とバージョン2を同じアプリケーションで使用できます。

詳細については、このブログ投稿を参照してください。

于 2015-02-05T22:49:24.387 に答える
2

ええ、私はちょうどこの問題に遭遇し、解決しました。これは、AWSがgemを2.0に更新したためです。gemを2.0に更新する場合は、彼らが投稿したこの記事に従って、異なる構成が必要です。

以前のバージョンを使用する場合は、次のようにGemfileを変更してください。

Gemfile

gem'aws-sdk'、'<2.0'

于 2015-02-06T07:51:11.917 に答える