无服务器:配置死信 SQS 队列

serverless: configure deadletter SQS queue

我使用无服务器来配置通过 AWS SQS 接收事件的 Lambda 函数。现在我想添加一个死信队列。这就是我目前所拥有的:

service: myservice

plugins:
  - serverless-plugin-lambda-dead-letter

provider:
  name: aws
  runtime: go1.x
  region: eu-central-1
  iamRoleStatements:
    - Effect: "Allow"
      Action:
        - "sqs:*"
      Resource:
        - "*"

package:
 exclude:
   - ./**
 include:
   - ./bin/**

functions:
  main:
    handler: bin/send-mail
    deadLetter:
      sqs:
        queueName: send-mail-dlx
        messageRetentionPeriod: 200000
    events:
      - sqs: arn:aws:sqs:eu-central-1:123456789:send-mail

两个 SQS 队列均已成功创建,但死信队列 send-mail-dlx 未作为死信队列分配给 send-mail。如何在我的无服务器配置中正确分配它?

找到了:https://github.com/serverless/serverless/issues/4647#issuecomment-474306379

resources:
  Resources:
    MyQueue:
      Type: "AWS::SQS::Queue"
      Properties:
        QueueName: "MyQueue"
        VisibilityTimeout: 30
        MessageRetentionPeriod: 60
        RedrivePolicy:
          deadLetterTargetArn:
            "Fn::GetAtt":
              - ReceiverDeadLetterQueue
              - Arn
          maxReceiveCount: 1
    ReceiverDeadLetterQueue:
      Type: "AWS::SQS::Queue"
      Properties:
        QueueName: "receiverDLQ"
        MessageRetentionPeriod: 1209600 # 14 days in seconds