繁体   English   中英

AWS SQS lambda 触发器自动禁用

[英]AWS SQS lambda trigger disabled automatically

我用 lambda 触发器创建了 aws SQS。 我面临的问题是,当从 sqs 发送消息时,lambda 触发器会自动断开连接,并且 cloudwatch 中也没有生成日志(生成日志 stream)。 有人知道吗?

对于 SQS Lambda 触发器,

您的 Amazon SQS 角色必须包括以下权限:

  1. lambda:CreateEventSourceMapping
  2. lambda:ListEventSourceMappings
  3. lambda:ListFunction

您的 Lambda 角色必须包括以下权限:

  1. sqs:ChangeMes​​sageVisibility
  2. sqs:删除消息
  3. sqs:GetQueueAttributes
  4. sqs:接收消息

另请注意,

  • 您的队列和 Lambda 函数必须位于同一 AWS 区域中。
  • FIFO 队列不支持 Lambda 函数触发器。
  • 您只能将一个队列与一个或多个 Lambda 函数相关联。

对于日志,请检查您的 lambda 是否具有以下用于生成日志的 cloudwatch 权限

  • 日志:创建日志组
  • 日志:创建日志流
  • 日志:PutLogEvents

我也遇到了这个。 最终,“禁用”的 SQS/Lambda 触发器似乎是由多个根本原因引起的症状。

就我而言,这不是权限问题。 根本原因是“事件源映射”的问题,它将 SQS 队列的“EventSourceArn”映射到 Lambda 函数的“FunctionArn”。 我已经删除并重新创建了同名的 SQS 队列。 这样做的结果是,当第一个 SQS 队列被删除时,AWS 自动禁用了触发器,但在创建新队列时,映射仍然在其“禁用”的 state 中。

这里的解决方法只是手动删除事件源映射。 完成此操作后,“禁用”触发器将不再持续存在。 这里有一个相关问题的很好的答案/解释 - https://stackoverflow.com/a/62392964/8577382

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM