加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

在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异常

有一个相关的问题,但没有给出具体的答案:
Setup DynamoDB Trigger using Lambda

解决方法

这段代码对我有用.您可以使用它在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事件.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读