Ruby Rails DynamoDB AWS SDK v2

Ruby on Rails DynamoDB AWS SDK v2

我正在尝试使用我的 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

如有任何建议,我们将不胜感激。

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

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

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

NameError: 未初始化常量 AWS

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

查看此blog post了解更多信息。

似乎有几个小问题。

  • 未初始化常量错误 - 在 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'
})