我有一个 lambda 处理运动事件。
Kinesis 在失败时可以重试 3 次。
lambda 正确处理事件,但被调用了 4 次。
我一直在寻找可能的原因,我发现了这个:
[cloudshell-user@ip-10-130-89-49 ~]$ aws lambda list-event-source-mappings --event-source-arn arn:aws:kinesis:us-east-1:xxxx:stream/xxxx
{
"EventSourceMappings": [
{
"UUID": "xxx-xx-xx-xx-xxxx",
"StartingPosition": "LATEST",
"BatchSize": 100,
"MaximumBatchingWindowInSeconds": 3,
"ParallelizationFactor": 1,
"EventSourceArn": "arn:aws:kinesis:us-east-1:xxxxxx:stream/xxxxx-ingestion-kinesis",
"FunctionArn": "arn:aws:lambda:us-east-1:xxxxx:function:yyyyyy:PROD",
"LastModified": "2024-03-26T12:46:00+00:00",
"LastProcessingResult": "PROBLEM: Function response syntax is invalid. Please check function implementation.",
"State": "Enabled",
"StateTransitionReason": "User action",
"DestinationConfig": {
"OnFailure": {}
},
"MaximumRecordAgeInSeconds": 3600,
"BisectBatchOnFunctionError": true,
"MaximumRetryAttempts": 3,
"TumblingWindowInSeconds": 60,
"FunctionResponseTypes": []
}
]
}
我一直在寻找
“问题:函数响应语法无效。请检查函数实现。”
但我没有找到任何相关信息。
有什么想法吗?
由于您的设置,您的 lambda 代码会产生错误,或者至少响应是错误的
"MaximumRetryAttempts": 3,
它在初始调用后调用该函数 3 次,因为它将其解释为错误。
您可以阅读这里以获取详细说明。
就我而言,问题出在 template.yml 中
我尝试使用 lambda 的 Events 字段部署 template.yml 以便与 kinesis 连接,但它不起作用。 一旦我将其移动到自己的
EventSourceMapping
实体,它就解决了问题。