【发布时间】:2021-09-14 11:07:15
【问题描述】:
我有一个脚本,我们想在 AWS 中作为 Lambda 运行,用 Python 编写。这将每 24 小时运行一次。它描述了环境中的所有 ec2 实例,我正在检查一些细节以确保合规性。之后,我们希望将所有实例详细信息发送到其他类似合规脚本正在使用的 SNS 主题,这些主题被发送到 lambda 并从那里发送到 sumologic。我目前只使用一个环境进行测试,但是有超过 1000 个实例,因此有超过 1000 条消息要一一发布到 SNS。 lambda 在发送所有这些之前很久就超时了。一旦检查了所有环境及其实例,可能有近 6000 条消息要发布到 SNS。
我需要一些关于如何构建它以适应所有环境的建议。我在想也许将我的 lambda 中的所有记录放入一个 S3 存储桶中,然后创建另一个 lambda,它会从存储桶中读取每条记录,例如,一次 50 条,并将它们一个接一个地推送到 SNS 主题中。我也不确定这会如何工作。
任何想法表示赞赏!
【问题讨论】:
-
我不明白发送超过 6000 条 SNS 消息需要超过 15 分钟,您的超时和内存设置是多少?
-
可能每个 SNS 消息都在触发一个 Lambda,因此总并发数达到 1000 以上,因此超时
-
@Maurice 在将消息发送到 SNS 之前,他需要使用 SDK 从 1000 个 EC2 实例中读取详细信息。因此,除了 SNS 请求之外,还有很多查询正在进行。 AFAIK SNS 发布不支持批处理。所以如果你写错了你的代码,我猜即使有 900 秒的超时,它也很容易超时。
标签: python-3.x amazon-web-services amazon-ec2 aws-lambda amazon-sns