【问题标题】:AWS lambda fire event when maxReceiveCount is reached达到 maxReceiveCount 时的 AWS lambda 触发事件
【发布时间】:2021-10-30 17:36:43
【问题描述】:

我有一个会触发 lambda 的队列。我已将 maxReceiveCount 设置为 3,以便消息在重试 3 次后进入 deadleadQueue。我的要求是如果重试 3 次,则从 lambda 本身触发另一个事件/动作。我必须在尝试 3 次后才调用该操作。有没有办法让 lambda 知道它的重试次数。

下面显示了我的 SAM 模板部分

  TestQueue:
    Type: AWS::SQS::Queue
    Properties:
      QueueName: TestQueue
      DelaySeconds: 0
      VisibilityTimeout: 30
      MaximumMessageSize: 28800
      MessageRetentionPeriod: 28800
      RedrivePolicy:
        deadLetterTargetArn: !GetAtt DLQueue.Arn
        maxReceiveCount: 3

  TestLambda:
    Type: AWS::Serverless::Function
    Properties:
      Handler: src/index.handler
      Role: !GetAtt QueueRole.Arn

  EventSourceMapping:
    Type: AWS::Lambda::EventSourceMapping
    Properties:
      BatchSize: 1
      Enabled: true
      EventSourceArn: !GetAtt TestQueue.Arn
      FunctionName: !GetAtt TestLambda.Arn

【问题讨论】:

    标签: aws-lambda amazon-sqs


    【解决方案1】:

    您可以在 SQS 消息中使用属性ApproximateReceiveCount 来获取执行的重试次数。可以在 Lambda 中轻松读取属性 ApproximateReceiveCount

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-18
      • 1970-01-01
      • 2018-05-05
      • 2021-07-17
      • 2018-02-26
      • 2015-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多