如果由 SQS 源调用,Lambda 不会将消息发送到 SQS 目标
Lambda does not send message to SQS destination if invoked by an SQS source
我有以下设置:
现在我的 Lambda 函数中有一个简单的 return:
async function handler(event) {
return 'success';
}
如果我使用以下方法从 aws-cli 调用 lambda:
aws lambda invoke --function-name tt-yt-automation-production-1b2b-tiktok-download --invocation-type Event --cli-binary-format raw-in-base64-out /dev/null
它将return消息发送到目标SQS(SQS#2
),这将触发另一个Lambda。
但是,如果 SQS#1
有消息并调用 Lambda,它不会向 SQS#2
发送消息并调用下一个 Lambda。
我怀疑 SQS 调用不算作 asynchronous invocation
并且不会向 SQS#2
发送消息。
是否缺少配置?
My suspicion is that an SQS invocation doesn't count as an asynchronous invocation and won't send a message to SQS#2.
你是对的。 SQS 调用是同步。您必须“手动”(使用 AWS SDK)将消息从您的 lambda 提交到您的 SQS#2。
我有以下设置:
现在我的 Lambda 函数中有一个简单的 return:
async function handler(event) {
return 'success';
}
如果我使用以下方法从 aws-cli 调用 lambda:
aws lambda invoke --function-name tt-yt-automation-production-1b2b-tiktok-download --invocation-type Event --cli-binary-format raw-in-base64-out /dev/null
它将return消息发送到目标SQS(SQS#2
),这将触发另一个Lambda。
但是,如果 SQS#1
有消息并调用 Lambda,它不会向 SQS#2
发送消息并调用下一个 Lambda。
我怀疑 SQS 调用不算作 asynchronous invocation
并且不会向 SQS#2
发送消息。
是否缺少配置?
My suspicion is that an SQS invocation doesn't count as an asynchronous invocation and won't send a message to SQS#2.
你是对的。 SQS 调用是同步。您必须“手动”(使用 AWS SDK)将消息从您的 lambda 提交到您的 SQS#2。