简体   繁体   中英

serverless: configure deadletter SQS queue

I use serverless to configure a Lambda function that receives events via AWS SQS. Now I want to add a dead letter queue. That's what I have so far:

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

Both SQS queues were created successfully, but the dead letter queue send-mail-dlx isn't assigned as dead letter queue to send-mail . How do I assign it properly in my serverless config?

Found it: 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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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