【问题标题】:Ruby on Rails DynamoDB AWS SDK v2Ruby on Rails DynamoDB AWS 开发工具包 v2
【发布时间】:2015-03-18 10:52:27
【问题描述】:

我正在尝试使用我的 Rails 应用程序设置 DynamoDB。我在 Rails 4 上,我正在使用 aws sdk v2。我想从名为“RoomRaw”的数据库中查询项目。

在我的 Gemfile 中:

gem 'aws-sdk', '~> 2'

在 config/initializers/aws.rb 中:

Aws.config({
  access_key_id: 'xxxxxxxx',
  secret_access_key: 'xxxxxxxxxxxx',
  region: 'ap-southeast-1'
})

在我的控制器中:

dynamo_db = Aws::DynamoDB::Client.new
dynamo_db.query({
  table_name: 'RoomRaw',
  key_conditions: {
    '_id' => {
      comparison_operattor: 'EQ',
      attribute_value_list: ['12345']      
    }
  }
})

我收到以下错误:

uninitialized constant WelcomeController::Aws

感谢任何建议。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 amazon-web-services amazon-dynamodb


    【解决方案1】:

    似乎有几个小问题。

    • 未初始化的常量错误 - 添加对 aws-sdk 的 gem 依赖项后重新启动 Rails 应用程序。

    • SDK v2 中的配置与 v1 相比略有变化。在版本 2 中,Aws.config 不是一个方法,它是一个普通的 Ruby 哈希。

    尝试以下方法:

    Aws.config.update({
      access_key_id: 'xxxxxxxx',
      secret_access_key: 'xxxxxxxxxxxx',
      region: 'ap-southeast-1'
    }) 
    

    【讨论】:

      【解决方案2】:

      您应该重新启动 rails 服务器。初始化器仅在启动时加载。

      【讨论】:

      • 我刚刚重新启动了服务器,现在我收到了这个错误 - /config/initializers/aws.rb:1:in `': wrong number of arguments (1对于 0) (ArgumentError)
      • 您需要检查 Aws 的文档,因为您在初始化程序中使用了错误。
      【解决方案3】:

      按照以下方式进行设置,然后重新启动服务器

      AWS.config(
       access_key_id: 'your_access_key',
       secret_access_key: 'your_secret_access_key'
      )
      

      NameError: 未初始化的常量 AWS

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

      请参阅此blog post 了解更多信息。

      【讨论】:

      • 当我使用大写 AWS 时,我得到 config/initializers/aws.rb:1:in `': uninitialized constant AWS (NameError)
      • 我还有其他方法可以做到这一点吗?
      • “AWS to Aws”,我刚刚编辑了答案,请重试
      • 我得到 /config/initializers/aws.rb:1:in `': 使用 Aws 的参数数量错误(1 对 0)(ArgumentError)
      • 你可以试试:AWS.config({ access_key_id: '...', secret_access_key: '...', region: 'us-east-1', dynamo_db_endpoint: 'localhost', dynamo_db_port: 8000 })
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-22
      • 2013-07-19
      • 2021-11-04
      • 2019-04-17
      • 1970-01-01
      • 2014-12-05
      • 1970-01-01
      相关资源
      最近更新 更多