我有一个json文件,我想用它在AWS中加载我的Dynamo表。 在AWS控制台中,一次只能创建一条记录。不好:)
本质上,我的.JSON文件是一个对象数组,用于保存表中每列的数据 即:
{
"Column1": "Column1 Value",
"Column2": "Column2 Value",
"Column3": "Column3 Value",
"Column4": "Column4 Value",
},
有没有办法通过AWS控制台和导入我的json文件来执行此操作,还是必须使用AWS JS SDK以编程方式执行此操作?
答案 0 :(得分:5)
您无需使用API。您可以使用AWS-CLI,即:
aws dynamodb put-item --table-name MusicCollection --item file://item.json --return-consumed-capacity TOTAL
但您可能需要稍微调整一下JSON格式。
此处有更多示例和文档:
https://docs.aws.amazon.com/cli/latest/reference/dynamodb/put-item.html
答案 1 :(得分:3)
E.J。的回答对于单个记录,Brenaman看起来是正确的,但它不能回答原始问题(需要添加记录数组)。
为此,command是
aws dynamodb batch-write-item --request-items file://aws-requests.json
但是,您需要像这样制作一个修改后的JSON文件(请注意指定数据类型的DynamoDB JSON):
{
"YourTableName": [
{
"PutRequest": {
"Item": {
"Column1": { "S": "Column1 Value" },
"Column2": { "S": "Column2 Value" },
"Column3": { "S": "Column3 Value" },
"Column4": { "S": "Column4 Value" },
}
}
},
{
"PutRequest": {
"Item": {
"Column1": { "S": "Column1 Value" },
"Column2": { "S": "Column2 Value" },
"Column3": { "S": "Column3 Value" },
"Column4": { "S": "Column4 Value" },
}
}
}
]
}
答案 2 :(得分:0)
我在python中使用了boto3来加载数据
import boto3
import json
dynamodbclient=boto3.resource('dynamodb')
sample_table = dynamodbclient.Table('ec2metadata')
with open('/samplepath/spotec2interruptionevent.json', 'r') as myfile:
data=myfile.read()
# parse file
obj = json.loads(data)
#instance_id and cluster_id is the Key in dynamodb table
response=sample_table.put_item(
Item={
'instance_id': instanceId,
'cluster_id': clusterId,
'event':obj
}
)
以下是javascript的示例:
答案 3 :(得分:0)
如果您想从具有多个对象的JSON文件中读取代码,则上面的代码不会读取单个JSON对象:
import boto3
import json
dynamodbclient=boto3.resource('dynamodb')
sample_table = dynamodbclient.Table('ec2metadata')
with open('/samplepath/spotec2interruptionevent.json', 'r') as myfile:
data=myfile.read()
# parse file
objects = json.loads(data)
#instance_id and cluster_id is the Key in dynamodb table
for object in objects:
instance_id = object["instance_id"]
cluster_id = object["cluster_id"]
sample_table.put_item=(item=object)