amazon-web-services - AWS - 如何将 DynamoDb 表数据传递给 Lambda 函数
问题描述
下面是我的table
客户DynamoDb
name: string
我已经链接了一个触发器,该触发器将调用 Lambda 函数,该函数又调用我的应用程序端点,该端点将进行数据转换并保存在 SQL DB 中
每当我在上表中添加任何记录或更新记录时,我都可以看到 Lambda 函数被调用。但不确定如何捕获表数据。
我需要通过 Lambda 函数捕获 dynamoDb 表的name
值,我可以将其传递给我的端点。customer
新手对此。所以如果太简单请原谅。但找不到可以为我推动这一点的信息。
谢谢!
解决方案
您的 Lambda 函数将收到一个DynamoDB 流记录事件(有关示例事件,请参阅将 AWS Lambda 与 Amazon DynamoDB 结合使用)。
您将在键上映射/循环Records
,您将在其中找到带有eventName: INSERT
. 在dynamodb
键中,您将找到应在您的 lamdba 函数代码中处理的表数据。
{
"Records": [
{
"eventID": "1",
"eventVersion": "1.0",
"dynamodb": {
"Keys": {
"Id": {
"N": "101"
}
},
"NewImage": {
"Message": {
"S": "New item!"
},
"Id": {
"N": "101"
}
},
"StreamViewType": "NEW_AND_OLD_IMAGES",
"SequenceNumber": "111",
"SizeBytes": 26
},
"awsRegion": "us-west-2",
"eventName": "INSERT",
"eventSourceARN": eventsourcearn,
"eventSource": "aws:dynamodb"
}
]
}
在您的情况下,数据应位于Records[0].dynamodb.NewImage.name.S
如果在表中使用 Node.js 和混合类型,我建议使用AWS.DynamoDB.Converter.unmarshall
将 DynamoDB 记录转换为 JavaScript 对象的方法。它允许您执行以下操作:
const newImage = DynamoDB.Converter.unmarshall(event.Records[0].dynamodb.NewImage);
推荐阅读
- c++ - 基于两个堆栈的堆栈计算器
- json - 选择数据作为 JSONB,其中值用作 json 键
- java - 如何在多边形上显示浮动工具提示文本
- javascript - 如何使用 this.state 更新表中的值?
- keras - 将图像和标签一起输入到 lstm
- python - Pyro4 杀死空的名称服务器
- javascript - 如何在 Mac 上的 Microsoft Visual Studio 2017 上安装扩展
- android - Firebase 身份验证(电子邮件和密码)如何检查用户是否仍然存在?
- javascript - 使用firebase时如何防止离子刷新页面
- javascript - Chartjs 时间图 xAxis 显示 1970 年