在JAVA中使用Lambda的AWS DynamoDB触发器
发布时间:2020-12-15 04:46:27 所属栏目:Java 来源:网络整理
导读:我试图在dynamodb流事件上触发用 Java编写的AWS lambda函数.亚马逊有一个相同的指南,在这里使用NodeJS http://docs.aws.amazon.com/lambda/latest/dg/wt-ddb-create-test-function.html NodeJS的测试输入(来自上面的链接)看起来像一个SNS事件,所以我尝试在Ja
我试图在dynamodb流事件上触发用
Java编写的AWS lambda函数.亚马逊有一个相同的指南,在这里使用NodeJS
http://docs.aws.amazon.com/lambda/latest/dg/wt-ddb-create-test-function.html NodeJS的测试输入(来自上面的链接)看起来像一个SNS事件,所以我尝试在Java中使用相应的SNSEvent类作为我的处理程序方法的输入. import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.LambdaLogger; import com.amazonaws.services.lambda.runtime.events.SNSEvent; import com.amazonaws.services.lambda.runtime.events.SNSEvent.SNSRecord; import java.util.List; public class RecomFunction { public void handler(SNSEvent event,Context context) { LambdaLogger logger = context.getLogger(); List<SNSRecord> records = event.getRecords(); if (records != null) { for (SNSRecord record : records) { if (record != null) { logger.log("SNS record: " + record.getSNS().getMessage()); } } } } } 不幸的是,record.getSNS()返回NULL导致NullPointer异常 有一个相关的问题,但没有给出具体的答案: 解决方法
这段代码对我有用.您可以使用它在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 } return null; } } 同样,您可以使用SNSEvent和SNSRecord来处理Amazon SNS事件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |