当使用Amazon MQ (Apache ActiveMQ)事件源和Lambda函数时,可能会遇到payload缺少Destination的问题。这通常在接收来自ActiveMQ主题的消息时发生。
要解决此问题,需要将Lambda函数的事件源配置中的Destination属性设置为所需主题。例如,以下代码将事件源配置为“myTopic”。
{
"Type": "AWS::Lambda::Function",
"Properties": {
"Handler": "index.handler",
"Role": "arn:aws:iam::123456789012:role/lambda-role",
"Code": {
"S3Bucket": "my-bucket",
"S3Key": "function-code.zip"
},
"Runtime": "nodejs14.x",
"Events": {
"MyEventSource": {
"Type": "MQ",
"Properties": {
"Broker": "MyBroker",
"Topic": "myTopic",
"Destination": "myTopic"
}
}
}
}
}
通过将Destination设置为与Topic相同,可以避免缺少Destination的问题,并确保Lambda函数正确地接收来自ActiveMQ主题的消息。