私は2つのdynamoDBテーブルtable1とtable2を持っていて、ストリームはtable1で有効になっています。どちらも "id"という文字列キーを持っています。私はまた、ストリームからtable1への挿入を読み取り、それらが特定の基準を満たす場合にはtable2にミラーリングするラムダ関数を持っています。ここではかなりのない仕事をして、私のJSコード(ES6構文は)です:DynamoDBストリームから別のテーブルにアイテムをコピーする最も簡単な方法は何ですか?
const dynamoDb = new AWS.DynamoDB.DocumentClient();
function mirrorInserts(event, context, callback) {
event.Records.forEach((record) => {
if (record.eventName != 'INSERT') {
console.log('Ignored ' + record.eventName + ' stream event.');
return;
}
var input = record.dynamodb.NewImage;
var id = input.id.S
if (myCondition(input)({
const params = {
TableName: table2,
Key: {
id: id,
},
Item: input,
};
dynamoDb.put(createParams, (result, error) => {
if (error) {
console.error(error);
}
});
});
}
この機能を使用すると、このエラーを与える:
One or more parameter values were invalid: Type mismatch for key id expected: S actual: M
メッセージを解釈するのは簡単ですが、私は混乱しています私が使用しているidは文字列でなければならないからです。また、アイテム全体をそのまま挿入する簡単な方法はありますか?