0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWS日記30 (AWS Lambda - DLQ)

Last updated at Posted at 2021-08-31

はじめに

AWS Lambda 関数のデッドレターキューを試します。

非同期呼び出しが失敗した際に、メールを送信するように設定します。

今回は CloudFormation を利用して構築しました。
使用したテンプレートはGithubに。

AWS SAM テンプレート作成

AWS SAM テンプレートで Lambda, SNS の設定をします。

[参考資料]
AWS SAM テンプレートを作成する

Lambda関数とデッドレターキューの設定は以下の部分

    Type: AWS::Serverless::Function
    Properties:
      FunctionName: !Ref MainFunctionName
      CodeUri: bin/
      Handler: main
      MemorySize: 256
      Runtime: go1.x
      Description: 'Sample DLQ Function'
      DeadLetterQueue:
        Type: SNS
        TargetArn: !Ref DLQSNSTopic
      Policies:
      - SNSPublishMessagePolicy:
          TopicName: !Ref DLQSNSTopicName
      Environment:
        Variables:
          REGION: !Ref 'AWS::Region'

Lambda関数作成

※ Lambda関数は aws-lambda-go を利用しました。

func HandleRequest(ctx context.Context, request events.APIGatewayProxyRequest) (Response, error) {
	log.Fatal("Error")
	return Response {
		StatusCode: 200,
		Body: "success",
	}, nil
}

Lambda関数の非同期呼び出し

aws lambda invoke --function-name ServerlessDLQLambdaFunction --invocation-type Event response.json

終わりに

Lambdaの非同期呼び出しが失敗した際に、メールを送信するように設定しました。
今回はメール送信するため、デッドレターキューのタイプをSNSに設定しましたが、
SQSも選択できるため今後試して行こうと思います。

参考資料
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?