英文:
When triggered from SQS, AWS Lambda does not trigger SNS notifications on failure condition
问题
I created AWS Lambda and set that is trigged when some SQS message appears. Lambda is triggered and let's say that fails. I wanted to setup "On failure" destination which triggers SNS topic where I would have Email subscription.
我创建了AWS Lambda,并设置了当出现某个SQS消息时触发它。Lambda被触发,假设它失败了。我想设置“失败时”目标,触发SNS主题,我在其中有电子邮件订阅。
I deliberately made lambda fail, I can see failure in Cloudwatch. However, I didn't received any email from SNS.
我故意让Lambda失败,我可以在Cloudwatch中看到失败。然而,我没有收到来自SNS的任何电子邮件。
To confirm everything actually works regarding SNS and Email subscription I setup S3 as additional trigger to lambda.
In this case, lambda is triggered, failed but I received email from SNS topic configured inside lambda. That means configuration is correct but something is different when source trigger for lambda is SQS rather than S3.
为了确认关于SNS和电子邮件订阅的一切都有效,我将S3设置为Lambda的附加触发器。在这种情况下,Lambda被触发,失败了,但我收到了Lambda内配置的SNS主题的电子邮件。这意味着配置是正确的,但当Lambda的触发源是SQS而不是S3时,有一些不同之处。
What I am missing? Why Lambda is not triggering SNS (or SNS not triggering notifications) when source for lambda is SQS and works perfectly when source is let's say S3?
我缺少什么?为什么当Lambda的触发源是SQS时,Lambda不触发SNS(或SNS不触发通知),而当触发源是S3时,一切都运行完美?
英文:
I created AWS Lambda and set that is trigged when some SQS message appears. Lambda is triggered and let's say that fails. I wanted to setup "On failure" destination which triggers SNS topic where I would have Email subscription.
I deliberately made lambda fail, I can see failure in Cloudwatch. However, I didn't received any email from SNS.
To confirm everything actually works regarding SNS and Email subscription I setup S3 as additional trigger to lambda.
In this case, lambda is triggered, failed but I received email from SNS topic configured inside lambda. That means configuration is correct but something is different when source trigger for lambda is SQS rather than S3.
What I am missing? Why Lambda is not triggering SNS (or SNS not triggering notifications) when source for lambda is SQS and works perfectly when source is let's say S3?
答案1
得分: 1
Lambda的onSuccess / onFailure目标仅支持异步调用1:S3会异步调用您的Lambda,而SQS会同步调用它。
如果您想保持当前的实现,您必须直接将SNS发布放在您的Lambda内部。
英文:
Lambda destinations onSuccess / onFailure are supported only for asynch invocations: S3 calls your Lambda asynchronously, SQS calls it synchronously instead.
If you want to mantain the current implementation, you have to put the SNS publish directly inside your Lambda.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论