当前位置: 首页 > 知识库问答 >
问题:

使用DynamoDB Stream/Lambda清空事件对象

闻人望
2023-03-14

我已经设置了一个DynamoDB流来触发一个简单的Lambda函数,该函数用于触发函数,但返回一个空事件对象。我期待着与键,旧图像,新图像等通常的反应。。。

当我在控制台中手动测试该函数以及使用API网关触发该函数时,该事件将正确传递。我的执行角色具有管理员访问权限。我甚至用同样的问题复制了aws流/lambda教程。这应该很简单,它快把我逼疯了!

我的功能再简单不过了:

def get_event(event, context):
    print(event)
    return {
        'statusCode': 200,
        'body': event
    }

这是我的CloudWatch日志与空事件:

"StatusCode": 200,
"LogResult": START RequestId: 48ec33f4-8707-4d16-9f53-4c7fcf7413d1       Version: $LATEST
{}
END RequestId: 48ec33f4-8707-4d16-9f53-4c7fcf7413d1
REPORT RequestId: 48ec33f4-8707-4d16-9f53-4c7fcf7413d1  Duration:      7.74 ms  Billed Duration: 100 ms     Memory Size: 128 MB Max Memory     Used: 71 MB

如果有用的话,我的函数的事件源映射

{
    "EventSourceMappings": [
        {
            "UUID": "ce6d850*********************",
            "BatchSize": 100,
            "EventSourceArn": "arn:aws:dynamodb:us-east-   1:**********:table/EventsDatabase/stream/2019-06-24T14:02:23.578",
            "FunctionArn": "arn:aws:lambda:us-east-1:***********:function:email_sender",
            "LastModified": 1561872060.0,
            "LastProcessingResult": "OK",
            "State": "Enabled",
            "StateTransitionReason": "User action"
        }
    ]
}

共有1个答案

阎阳
2023-03-14

我无法从我这边复制这个问题。也许你的lambda集装箱已经过时了。您是否尝试过强制启动一个新的lambda容器,或者甚至删除整个lambda并重新启动可能有效?请参阅强制丢弃AWS Lambda容器。我尝试过类似的方法,但效果不错(我使用的是Python 3.7):

import json


def lambda_handler(event, context):
    print(event)
    # print("got event: " + json.dumps(event))

    get_event(event, context)

    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

def get_event(event, context):
    print(event)
 类似资料:
  • 问题内容: 在Unix shell中,我可以这样做以清空文件: 我将如何在Python中执行此操作? 就是这里的方式,我不知道该怎么做,因为我必须互相发送2个动作,即the和then 。 问题答案: 打开文件将创建它,并且(除非设置了append(’a’))会用空白将其覆盖,例如:

  • 我的REST API正在发布空对象。 我正在从req.body.name中获取值 下面是模型:

  • 所有的用户空间事件都以process开头。你可以通过进程ID指定要检测的进程,也可以通过可执行文件名的路径名指定。SystemTap会查看系统的PATH环境变量,所以你既可以使用绝对路径,也可以使用在命令行中运行可执行文件时所用的名字。 由于SystemTap静态分析放置探针的位置时离不开调试信息,一些用户空间事件需要给定PID或可执行文件的路径(以下将两者统称为PATH)。不过大多数proces

  • 预览默认值 空函数

  • 当编写由Cloudwatch计划事件触发的AWSJavaLambda函数时,哪个事件对象被传递给Lambda处理程序函数? 例如,对于由S3事件触发的Lambda函数,AWS调用该函数并传递S3Event对象。类似地,它会将SNSEvent对象传递给由SNS消息触发的函数。 或者 对于Cloudwatch计划事件驱动功能,什么将取代SNSEent/S3事件? 我一辈子都找不到任何用Java编写的A

  • var elem = document.getElementById('div1'); var clickHandler = function(event){ // TO DO } elem.addEventListener('click',clickHandler,false); event对象包含很多信息 var elem = document.getElementById('div1')