如何将 DynamoDB 备份恢复到本地 DynamoDB instance/container?
How can I restore a DynamoDB backup to a local DynamoDB instance/container?
我已经在 AWS 控制台中备份了 DynamoDB table。我能够在本地下载文件。我想将该文件导入本地 dynamodb 实例进行测试。我已经足够创建 table,但是备份 json 格式似乎与 .NET AWS SDK APIs(有很多 TLA)匹配得不好.
示例备份内容:
{"Item":{"Attributes":{"M":{"createdAt":{"N":"1611923095468"},"eventDate":{"S":"2021-01-30T17:00:00.000Z"} }},"PartitionKey":{"S":"1234"},"SortKey":{"S":"1"}}}
{"Item":{"Attributes":{"M":{"createdAt":{"N":"1611923095468"},"eventDate":{"S":"2021-01-30T17:00:00.000Z"} }},"PartitionKey":{"S":"1234"},"SortKey":{"S":"2"}}}
.NET APIs 似乎想要将 JSON 转换为非 dynamodb 属性格式,所以期望它是这样的:
{
"Item": {
"Attributes": {
"createdAt": "1611923095468",
"eventDate": "2021-01-30T17:00:00.000Z"
},
"PartitionKey": "1234",
"SortKey": "1"
}
}
所以,我想做类似的事情:
var json = "{}"; // ORIGINAL CONCATENATED JSON FROM ABOVE
Document.FromJson(json)
有没有我遗漏的 API 可以将其转换成我可以加载到 dynamodb 中的某种格式?同样,使用 .NET,但为此开放任何 tools/utils。
这是我想出的js脚本。似乎成功了:
var DDB = require("@aws-sdk/client-dynamodb");
var fs = require('fs');
const ddb = new DDB.DynamoDB({ region: 'local', endpoint: 'http://localhost:8000' });
(async function test() {
const text = fs.readFileSync('./bmorer2e5e3pfflf7qmuhhnpwy.json', 'utf8');
text.toString().split('\n').map(async (line) => {
if (line) await saveLine(line)
});
})();
async function saveLine(line) {
let item = JSON.parse(line);
item.TableName = 'TABLE_NAME';
item.ReturnConsumedCapacity = 'TOTAL';
const res = await ddb.putItem(item);
console.log(res.ConsumedCapacity);
}
我已经在 AWS 控制台中备份了 DynamoDB table。我能够在本地下载文件。我想将该文件导入本地 dynamodb 实例进行测试。我已经足够创建 table,但是备份 json 格式似乎与 .NET AWS SDK APIs(有很多 TLA)匹配得不好.
示例备份内容:
{"Item":{"Attributes":{"M":{"createdAt":{"N":"1611923095468"},"eventDate":{"S":"2021-01-30T17:00:00.000Z"} }},"PartitionKey":{"S":"1234"},"SortKey":{"S":"1"}}}
{"Item":{"Attributes":{"M":{"createdAt":{"N":"1611923095468"},"eventDate":{"S":"2021-01-30T17:00:00.000Z"} }},"PartitionKey":{"S":"1234"},"SortKey":{"S":"2"}}}
.NET APIs 似乎想要将 JSON 转换为非 dynamodb 属性格式,所以期望它是这样的:
{
"Item": {
"Attributes": {
"createdAt": "1611923095468",
"eventDate": "2021-01-30T17:00:00.000Z"
},
"PartitionKey": "1234",
"SortKey": "1"
}
}
所以,我想做类似的事情:
var json = "{}"; // ORIGINAL CONCATENATED JSON FROM ABOVE
Document.FromJson(json)
有没有我遗漏的 API 可以将其转换成我可以加载到 dynamodb 中的某种格式?同样,使用 .NET,但为此开放任何 tools/utils。
这是我想出的js脚本。似乎成功了:
var DDB = require("@aws-sdk/client-dynamodb");
var fs = require('fs');
const ddb = new DDB.DynamoDB({ region: 'local', endpoint: 'http://localhost:8000' });
(async function test() {
const text = fs.readFileSync('./bmorer2e5e3pfflf7qmuhhnpwy.json', 'utf8');
text.toString().split('\n').map(async (line) => {
if (line) await saveLine(line)
});
})();
async function saveLine(line) {
let item = JSON.parse(line);
item.TableName = 'TABLE_NAME';
item.ReturnConsumedCapacity = 'TOTAL';
const res = await ddb.putItem(item);
console.log(res.ConsumedCapacity);
}