【发布时间】:2020-06-26 19:01:54
【问题描述】:
背景:我正在尝试使用 SQS 队列作为触发器来执行 lambda 函数。一旦 lambda 函数完成执行,我会尝试通过 SNS 主题向另一个 SQS 队列发送响应。
SQS 队列 -> Lambda -> SNS 主题 -> SQS 队列
我最初尝试使用 Destinations 将 Lambda 的响应发送到 SQS,但这仅适用于异步调用,并且 SQS 被视为同步调用。美好的。所以现在我触发一个 SNS 主题,然后处理将消息添加到 SQS 队列。这种集成效果很好。
问题: SNS 主题始终无法发布到 SQS 队列。我可以看到死信队列总是有消息,而不是实际的队列。这是我在 CloudWatch 上发现的错误消息
{
"delivery": {
"providerResponse": "{\"ErrorCode\":\"KMS.AccessDeniedException\",\"ErrorMessage\":\"null (Service: AWSKMS; Status Code: 400; Error Code: AccessDeniedException; Request ID: c)\",\"sqsRequestId\":\"Unrecoverable\"}",
"dwellTimeMs": 51,
"attempts": 1,
"statusCode": 400
},
"status": "FAILURE"
}
我可以看到 KMS 拒绝访问某些内容。但我不确定谁被 KMS 拒绝了。 SNS 主题没有加密集。它被禁用。我最初启用了它,但在遇到问题后,我禁用了它。但问题依然存在。
我尝试了什么:
- 我已尝试在 SNS 主题设置上禁用和启用加密。
- 我尝试查看与 SNS 主题和 SQS 队列关联的 IAM 角色。创建的服务角色很少,而且没有任何限制。
【问题讨论】:
标签: amazon-sqs amazon-sns