AWS ruby​​ gem好像没有安装

时间:2012-12-06 20:39:53

标签: ruby amazon-web-services gem amazon-dynamodb

当我尝试运行一个非常小的程序时,如果我可以连接到amazon dynamoDB,我会得到一个错误,好像我没有安装aws gem ...

我的代码如下:

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 个答案:

答案 0 :(得分:3)

你错了宝石。您希望aws-sdk获得AWS::DynamoDB support。安装时:

gem install aws-sdk

您可能需要卸载现有的aws gem以确保加载正确的gem(它们都有aws.rb文件)。或者,您可以在gem 'aws-sdk'之前的代码中使用require,以确保加载正确的gem。另一种可能性是require 'aws-sdk',因为宝石provides that file basically as an alias

你也应该使用:

require 'aws' # note lower case

这可能不会在Mac上造成问题,但如果您将代码移动到像Linux这样的区分大小写的计算机上,则会导致问题。

答案 1 :(得分:2)

如果您收到此错误且安装了“aws-sdk”gem,则可能无意中将升级到aws-sdk gem的第2版。版本2使用Aws命名空间,而不是AWS。这允许在同一应用程序中使用版本1和版本2.

有关详细信息,请参阅此blog post

答案 2 :(得分:2)

是的,我刚刚遇到这个问题并解决了。这是因为AWS将他们的gem更新为2.0。如果您将gem更新为2.0,则根据他们发布的这篇文章需要不同的配置。

如果您想使用之前的版本,只需更改Gemfile,如下所示:

的Gemfile

gem&#39; aws-sdk&#39;,&#39;&lt; 2.0&#39;