我一直在使用 terraform 来定义一些 SNS 主题,然后使用 SQS 队列来订阅它们,然后这些队列具有由 SQS 触发的 lambda,并从这些队列中获取消息。
Terraform 处理 SNS 主题、SQS 队列的创建以及允许 SNS 将消息写入队列的策略。lambdas 通过无服务器 CLI 工具单独部署。
当我首先运行 terraform,然后部署 lambdas 时,所有这些似乎都可以正常工作。但是,我在 terraform 中所做的某些事情遇到了一些问题,因此我决定拆除整个基础设施并重新创建它,这似乎再次正常工作。
看看从未被删除的 lambda,它们仍然像我所期望的那样在门户中显示了指向队列的链接。如果我转到新的 SQS 队列,我可以看到它在“Lambda 触发器”选项卡中正确列出了 lambda。
但问题是没有收到任何消息,我可以看到它们都在队列中累积。我发现解决问题的唯一方法是进入每个 lambda,选择 SQS 队列并将它们全部切换为“禁用”,然后再次“启用”。此时,他们都开始处理队列中的消息。
有没有其他人经历过这种情况?是否有更好的方法让它们在重新创建队列时正确“重新关联”?