【问题标题】:AWS Lambda not invoked when subscribed SNS message is large订阅的 SNS 消息很大时未调用 AWS Lambda
【发布时间】:2016-05-29 12:29:28
【问题描述】:

我有一个 AWS lambda 函数,它接收大量电子邮件地址并将它们提交给 SES 进行发送。该函数通过 SNS 订阅调用。当消息的电子邮件数组大小较小时,它可以很好地工作,但是当消息的电子邮件数组大小很大时,不会调用 lambda 函数。没有记录发生......

我已确认有效负载低于所需的 SNS 消息大小,并且我已通过电子邮件订阅了 SNS 主题...这可行。我收到了预期的消息有效负载的电子邮件。

知道为什么这会默默地失败吗?有关如何解决此问题的建议?

【问题讨论】:

    标签: amazon-sns aws-lambda


    【解决方案1】:

    为了后代:

    为 SNS 主题配置“交付状态”。然后它将成功/失败记录到 CloudWatch。

    期待看到:

    167542 字节的负载对于事件调用类型来说太大(限制为 131072 字节)

    所以...即使 SNS 可以发送更大的有效负载,但这并不意味着可以使用这种大小的有效负载调用 lambda。呸!

    【讨论】:

      【解决方案2】:

      一些解决方法:

      1) 将数据发布到 S3 存储桶。让 Lambda 函数在该存储桶上侦听 Object CREATE。

      2) 将数据发布到 S3,并发布一个 SNS 事件,其中仅包含可以在 S3 中找到数据的存储桶和密钥。让 Lambda 订阅 SNS 主题。

      在任何一种情况下,您最终都会从 Lambda 函数中的 S3 存储桶获取数据。现在你没有大小限制了。 :-)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-07-27
        • 1970-01-01
        • 2020-09-11
        • 2020-08-08
        • 1970-01-01
        • 2023-03-15
        • 2023-03-10
        相关资源
        最近更新 更多