簡體   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