我使用此代码插入dynamo db:
require "aws"
AWS.config(
access_key_id: 'xxxxxxxxxxxxxxxxxx',
secret_access_key: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
region: 'eu-west-1'
)
dynamo_db = AWS::DynamoDB.new
table = dynamo_db.tables['mytable']
table.hash_key = [:string, :string]
# add an item
table.items.create(id: '12345', 'foo' => 'bar')
一切正常,数据已插入,但我仍然收到此错误:
put_item响应中缺少哈希键值
我错过了什么?根据他们的documentation似乎没问题。
答案 0 :(得分:1)
table.hash_key = [:string, :string]
需要更改为[:name_of_hash_key, :type_of_hash_key]
,例如
table.hash_key = [:id, :string]
答案 1 :(得分:1)
编辑:
我认为您需要删除对table.hash_key
的调用,并在创建表时指定hash_key
。以下是您似乎正在使用的API版本(V1)
table = dynamo_db.tables.create(
"MyTable", 10, 5,
:hash_key => { :id => :string }
)
sleep 1 while table.status == :creating
请参阅此页面上的文档:
http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/DynamoDB.html#V1