亚马逊的documentation提供了Java,.NET和PHP中有关如何使用DynamoDB Local的示例。你如何使用AWS Ruby SDK做同样的事情?
我的猜测是你在初始化期间传递了一些参数,但我无法弄清楚它们是什么。
dynamo_db = AWS::DynamoDB.new(
:access_key_id => '...',
:secret_access_key => '...')
答案 0 :(得分:16)
您使用的是SDK的v1还是v2?你需要找到它;从上面的简短片段,它看起来像v2。我已经包含了两个答案,以防万一。
v1回答:
AWS.config(use_ssl: false, dynamo_db: { api_verison: '2012-08-10', endpoint: 'localhost', port: '8080' })
dynamo_db = AWS::DynamoDB::Client.new
回答:
require 'aws-sdk-core'
dynamo_db = Aws::DynamoDB::Client.new(endpoint: 'http://localhost:8080')
当然需要更改端口号。
答案 1 :(得分:3)
现在var newGallery = new PhotoSwipe(pswpElement, PhotoSwipeUI_Default, window[thisRoom], options);
版本aws-sdk
会因 Aws :: Errors :: MissingCredentialsError:在没有密钥时无法签名请求而抛出错误。所以下面的代码适用于我
2.7
答案 2 :(得分:2)
我写了一个简单的要点,展示如何启动,创建,更新和查询本地dynamodb实例。
https://gist.github.com/SundeepK/4ffff773f92e3a430481
下面是一些简单的代码:
下面是一个在内存中运行dynamoDb的简单命令
#Assuming you have downloading dynamoDBLocal and extracted into a dir called dynamodbLocal
java -Djava.library.path=./dynamodbLocal/DynamoDBLocal_lib -jar ./dynamodbLocal/DynamoDBLocal.jar -inMemory -port 9010
下面是一个简单的ruby脚本
require 'aws-sdk-core'
dynamo_db = Aws::DynamoDB::Client.new(region: "eu-west-1", endpoint: 'http://localhost:9010')
dynamo_db.create_table({
table_name: 'TestDB',
attribute_definitions: [{
attribute_name: 'SomeKey',
attribute_type: 'S'
},
{
attribute_name: 'epochMillis',
attribute_type: 'N'
}
],
key_schema: [{
attribute_name: 'SomeKey',
key_type: 'HASH'
},
{
attribute_name: 'epochMillis',
key_type: 'RANGE'
}
],
provisioned_throughput: {
read_capacity_units: 5,
write_capacity_units: 5
}
})
dynamo_db.put_item( table_name: "TestDB",
item: {
"SomeKey" => "somevalue1",
"epochMillis" => 1
})
puts dynamo_db.get_item({
table_name: "TestDB",
key: {
"SomeKey" => "somevalue",
"epochMillis" => 1
}}).item
上面将创建一个带有范围键的表,还可以添加/查询添加的相同数据。不是你必须已经安装了aws gem的第2版。