我正在尝试使用DynamoDB Streams和AWS Lambda创建一个DynamoDB触发器。我研究了很多,但我找不到任何方法来读取和处理Java8中的DynamoDB流事件。我对这两种技术都是完全陌生的,所以不知道如何使用它。
基本上,我想做的是每当在表A中创建一条记录时,在表B中创建一条记录。
你们中的任何一个人能给我推荐一个用Java处理这个用例的代码或帖子吗?
谢谢:)
发布于 2015-12-29 16:52:59
这段代码对我很有效。您可以使用它在Lambda函数中接收和处理DynamoDB事件-
public class Handler implements RequestHandler<DynamodbEvent, Void> {
@Override
public Void handleRequest(DynamodbEvent dynamodbEvent, Context context) {
for (DynamodbStreamRecord record : dynamodbEvent.getRecords()) {
if (record == null) {
continue;
}
// Your code here
// Write to Table B using DynamoDB Java API
}
return null;
}
}在创建Lambda时,添加表A中的流作为事件源,就可以开始了
发布于 2015-07-25 06:19:38
嗯,我似乎找不到将Java Lambda函数与DynamoDB streams集成的文档,但其概念与使用DDB streams编写NodeJS Lambda函数是相同的,文档在这里:http://docs.aws.amazon.com/lambda/latest/dg/wt-ddb.html。只需将NodeJS函数替换为Java函数(有关创建Java Lambda函数的文档,请参阅此处:http://docs.aws.amazon.com/lambda/latest/dg/java-lambda.html)。要将数据从表A复制到B,您可以使用AWS Java SDK DynamoDB客户端在Lambda函数中将流记录从A写到B。
发布于 2015-08-24 04:53:35
JSON Streams会将DynamoDB发送给处理程序。只需创建一个接受JSON并从输入流反序列化inputstream的处理程序。我在一个类似的问题here上发布了一个例子。
https://stackoverflow.com/questions/31589461
复制相似问题