SAM関数のX-Rayアクティブトレースが未設定

トレースを開始する必要がある関数にはActiveモードを指定してください。

説明

SAM関数のTracing: Activeは、LambdaがリクエストをサンプリングしてX-Rayトレースを開始する設定です。必要なトレースデータがないと、遅延やサービス間の問題を調査しにくくなることがあります。

想定される影響

他のトレース手段もなければ、呼び出し経路や失敗箇所の特定に時間がかかることがあります。

対処方法

アクティブトレースが必要ならTracing: Activeを設定してください。明示的に指定した実行ロールにはX-Rayへの書き込み権限を付与し、追跡が必要な後続呼び出しのコードを計装してください。

例

イメージベースの関数でアクティブトレースを有効にする例です。イメージと実行設定は実際の環境に合わせて指定してください。

変更前

yaml
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
  Function:
    Type: AWS::Serverless::Function
    Properties:
      PackageType: Image
      ImageUri: account-id.dkr.ecr.region.amazonaws.com/ecr-repo-name:image-name
      ImageConfig:
        Command:
          - app.lambda_handler
        EntryPoint:
          - entrypoint1
        WorkingDirectory: workDir
      Tags:
        Type: AWS Serverless Function

変更後

yaml
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
  Function:
    Type: AWS::Serverless::Function
    Properties:
      PackageType: Image
      ImageUri: account-id.dkr.ecr.region.amazonaws.com/ecr-repo-name:image-name
      ImageConfig:
        Command:
          - app.lambda_handler
        EntryPoint:
          - entrypoint1
        WorkingDirectory: workDir
      Tags:
        Type: AWS Serverless Function
      Tracing: Active

参考資料