【发布时间】:2015-11-16 08:11:06
【问题描述】:
我在使用 Amazon SNS 时遇到了一个奇怪的问题。当我使用 AWS UI(发布到主题按钮)发布消息时,消息会立即传递。
但是,当我从 lambda 函数内部向同一主题发布消息时,消息要么不会被传递,要么会在未来调用 lambda 发布更多消息后传递。
有什么不同?
更新
我尝试使用酷炫的 AWS CLI 进行发布,效果也很好。
我正在为我的 lambda 使用 Java SNS 库。我正在使用 lambda 的默认凭据。我仅使用主题 ARN、消息和主题构建 PublishRequest。发布调用成功返回,我在 cloudwatch 日志中看到了我的日志。
什么会导致 SNS 消息延迟传递,直到发送更多 SNS 消息?我正在测试电子邮件和 SQS 订阅 - 两者的行为相同。
【问题讨论】:
-
可能并非如此,但请在 Lambda 函数退出之前检查您的 SNS 调用是否完成。异步的东西可能会导致函数在所有调用完成之前完成。
-
是的,我肯定会在返回之前等待我所有的异步内容。对我来说奇怪的是,只有在我发送更多消息后,这些消息才会稍后显示。几乎就像它们被缓冲在某个地方一样。如果这是真的,那将是可怕的。但同样,这只发生在我发送 lambda 时。
标签: amazon-web-services aws-lambda amazon-sns