我目前有一个配置为启用 EventBridge 事件的 S3 存储桶,并且我有一个 EventBridge 规则,该规则触发一个阶梯函数,该阶梯函数又触发一个 lambda。
我想将我在 lambda 中获得的输入映射到 AWS Java SDK (com.amazonaws:aws-lambda-java-events) 中的事件类之一,但我运气不佳。
这是我的 lambda 在我的 Java 代码中的签名:
public class DeviceAssociationLambda implements RequestHandler {
@Override
public OutputObject handleRequest(S3Event input, Context context) {
当我的 step 函数调用此 lambda 时,它会发送如下所示的有效负载:
{
"version": "0",
"id": "e31fcb40-aa08-11ec-b909-0242ac120002",
"detail-type": "Object Created",
"source": "aws.s3",
"account": "123456789098",
"time": "2022-03-22T17:07:44Z",
"region": "eu-central-1",
"resources": [
"arn:aws:s3:::my-test-bucket"
],
"detail": {
"version": "0",
"bucket": {
"name": "my-test-bucket"
},
"object": {
"key": "foo/bar.json",
"size": 685,
"etag": "af87c63487cc2ff6323e67ddd234f44",
"sequencer": "00827F2232287F2343"
},
"request-id": "LK63256WW7E66YCC4",
"requester": "123456789098",
"source-ip-address": "123.123.123.123",
"reason": "PutObject"
}
}
尝试调试后,我发现我的 lambda 中的 S3Event 参数始终为空。这可能是因为它期望输入 JSON 格式不同(可能是:)
所以,我的问题是,Java SDK 中是否有任何标准事件对象可以处理我从 EventBridge 获得的 JSON?当然,我可以在 step 函数中对 JSON 进行一些操作,例如将 lambda 输入限制为“detail”块(如果有帮助的话)。
或者我是否只需要创建自己的输入类来映射到我作为输入获得的这个 JSON 结构?
© 版权声明
本站下载的源码均来自公开网络收集转发二次开发而来,
若侵犯了您的合法权益,请来信通知我们1413333033@qq.com,
我们会及时删除,给您带来的不便,我们深表歉意。
下载用户仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,访问及下载者下载默认同意本站声明的免责申明,请合理使用切勿商用。
THE END
暂无评论内容