Lambdaの非同期失敗イベントの保存が未設定

非同期失敗イベントを調査・再処理できる経路を用意してください。

説明

Lambdaでは、再試行回数やイベント保持時間の上限に達した非同期イベントを別の宛先に送信できます。デッドレターキューや失敗時の送信先がないと、これらのイベントを保存できない場合があります。

想定される影響

失敗した入力を確保できないと、原因調査や再処理が難しくなることがあります。

対処方法

DeadLetterConfig.TargetArnに標準SQSキューまたはSNSトピックを指定するか、非同期呼び出しの失敗時の送信先を設定してください。送信権限と保持・再処理の手順を確認してください。SQSイベントソースでは、ソースキューのDLQを設定します。

例

非同期呼び出し用のDLQを追加する例です。LambdaRuntimeには関数のZIPと互換性があるサポート対象ランタイムを指定し、宛先キューと実行ロールの権限は別途準備してください。

変更前

yaml
AWSTemplateFormatVersion: '2010-09-09'
Description: VPC内の関数。
Resources:
  Function:
    Type: AWS::Lambda::Function
    Properties:
      Handler: index.handler
      Role: arn:aws:iam::123456789012:role/lambda-role
      Code:
        S3Bucket: my-bucket
        S3Key: function.zip
      Runtime: !Ref LambdaRuntime
      Timeout: 5
      TracingConfig:
        Mode: Active
      VpcConfig:
        SecurityGroupIds:
          - sg-085912345678492fb
        SubnetIds:
          - subnet-071f712345678e7c8
          - subnet-07fd123456788a036
      Tags:
        - Key: Description
          Value: VPC Function
        - Key: Type
          Value: AWS Lambda Function

変更後

yaml
AWSTemplateFormatVersion: '2010-09-09'
Description: VPC内の関数。
Resources:
  Function3:
    Type: AWS::Lambda::Function
    Properties:
      Handler: index.handler
      Role: arn:aws:iam::123456789012:role/lambda-role
      Code:
        S3Bucket: my-bucket
        S3Key: function.zip
      Runtime: !Ref LambdaRuntime
      Timeout: 5
      TracingConfig:
        Mode: Active
      VpcConfig:
        SecurityGroupIds:
          - sg-085912345678492fb
        SubnetIds:
          - subnet-071f712345678e7c8
          - subnet-07fd123456788a036
      Tags:
        - Key: Description
          Value: VPC Function
        - Key: Type
          Value: AWS Lambda Function
      DeadLetterConfig:
        TargetArn: arn:aws:sqs:us-east-1:123456789012:aaa

参考資料