AWS ruby sdk v2 - dynamodb 查询
AWS ruby sdk v2 - dynamodb query
我在 DynamoDB 中有一个散列(字符串)和范围(数字)table。我正在尝试使用 ruby SDK v2.0.30 运行 查询,但不断收到以下错误:
aws-sdk-core-2.0.30/lib/seahorse/client/plugins/raise_response_errors.rb:15:in `call': One or more parameter values were invalid: Condition parameter type does not match schema type (Aws::DynamoDB::Errors::ValidationException)
这是我的代码:
gem 'aws-sdk', '~> 2'
require 'aws-sdk'
dynamodb = Aws::DynamoDB::Client.new(region: 'eu-west-1', credentials: creds)
resp = dynamodb.query(
table_name: "TEST_TABLE",
key_conditions: {
'ID' => {
comparison_operator: 'EQ',
attribute_value_list: [{ 's' => 'test123' }]
}
})
我是 ruby 的新手,曾尝试在网上和 AWS 文档上查找,但找不到任何内容。任何帮助将不胜感激。
谢谢
您的错误在于您如何格式化查询表达式中的散列键值。 Ruby (aws-sdk
gem) 的 v2 AWS 开发工具包接受所有属性值作为原始 Ruby 值。
一个值可以是:
- 字符串
- 数值(整数、浮点数、BigDecimal 等)
- 布尔值
- IO(blob 类型)
- 组(共 Numeric/String)
- 数组(值)
- 哈希(字符串 => 值)
您无需提供 Ruby 的 v1 AWS SDK 所要求的类型提示。
ddb = Aws::DynamoDB::Client.new
ddb.query({
table_name: 'TEST_TABLE',
key_conditions: {
'ID' => {
comparison_operattor: 'EQ',
attribute_value_list: ['test-123']
}
}
})
此外,与您的问题没有直接关系,但您可能会发现以下博客系列在使用 DynamoDB 时会有所帮助 aws-sdk
gem:
我在 DynamoDB 中有一个散列(字符串)和范围(数字)table。我正在尝试使用 ruby SDK v2.0.30 运行 查询,但不断收到以下错误:
aws-sdk-core-2.0.30/lib/seahorse/client/plugins/raise_response_errors.rb:15:in `call': One or more parameter values were invalid: Condition parameter type does not match schema type (Aws::DynamoDB::Errors::ValidationException)
这是我的代码:
gem 'aws-sdk', '~> 2'
require 'aws-sdk'
dynamodb = Aws::DynamoDB::Client.new(region: 'eu-west-1', credentials: creds)
resp = dynamodb.query(
table_name: "TEST_TABLE",
key_conditions: {
'ID' => {
comparison_operator: 'EQ',
attribute_value_list: [{ 's' => 'test123' }]
}
})
我是 ruby 的新手,曾尝试在网上和 AWS 文档上查找,但找不到任何内容。任何帮助将不胜感激。
谢谢
您的错误在于您如何格式化查询表达式中的散列键值。 Ruby (aws-sdk
gem) 的 v2 AWS 开发工具包接受所有属性值作为原始 Ruby 值。
一个值可以是:
- 字符串
- 数值(整数、浮点数、BigDecimal 等)
- 布尔值
- IO(blob 类型)
- 组(共 Numeric/String)
- 数组(值)
- 哈希(字符串 => 值)
您无需提供 Ruby 的 v1 AWS SDK 所要求的类型提示。
ddb = Aws::DynamoDB::Client.new
ddb.query({
table_name: 'TEST_TABLE',
key_conditions: {
'ID' => {
comparison_operattor: 'EQ',
attribute_value_list: ['test-123']
}
}
})
此外,与您的问题没有直接关系,但您可能会发现以下博客系列在使用 DynamoDB 时会有所帮助 aws-sdk
gem: