既存の Lambda 関数で Lambda Insights を有効にするために AWS SAM CLI を使用する - Amazon CloudWatch

既存の Lambda 関数で Lambda Insights を有効にするために AWS SAM CLI を使用する

AWS SAM AWS CLI を使用して、既存の Lambda 関数で Lambda Insights を有効にするには、次の手順に従います。

最新バージョンの AWS SAM CLI をまだインストールしていない場合は、まずインストールまたはアップグレードする必要があります。詳細については、AWS SAM CLI のインストールを参照してください。

ステップ 1: レイヤーをインストールする

Lambda Insights 拡張機能をすべての Lambda 関数で使用できるようにするには、Lambda Insights レイヤーの ARN を使用して SAM テンプレートの Globals セクションに Layers プロパティを追加します。次の例では、Lambda Insights の最初のリリースにレイヤーを使用しています。Lambda Insights 拡張レイヤーの最新リリースバージョンについては、「Lambda Insights 拡張機能の利用可能なバージョン」を参照してください。

Globals: Function: Layers: - !Sub "arn:aws:lambda:${AWS::Region}:580247275435:layer:LambdaInsightsExtension:14"

このレイヤーを 1 つの関数に対してのみ有効にするには、この例のように関数に Layers プロパティを追加します。

Resources: MyFunction: Type: AWS::Serverless::Function Properties: Layers: - !Sub "arn:aws:lambda:${AWS::Region}:580247275435:layer:LambdaInsightsExtension:14"

ステップ 2: マネージドポリシーを追加する

各関数について、CloudWatchLambdaInsightsExecutionRolePolicy IAM ポリシーを追加します。

AWS SAM はグローバルポリシーをサポートしていないため、この例に示すように、各関数で個別に有効にする必要があります。グローバルの詳細については、「グローバルセクション」を参照してください。

Resources: MyFunction: Type: AWS::Serverless::Function Properties: Policies: - CloudWatchLambdaInsightsExecutionRolePolicy

ローカルでの呼び出し

AWS SAM CLI は Lambda 拡張機能をサポートしています。ただし、ローカルで実行されるすべての呼び出しは、ランタイム環境をリセットします。ランタイムはシャットダウンイベントなしで再起動されるため、Lambda Insights データはローカル呼び出しからは使用できません。詳細については、「リリース 1.6.0 - AWS Lambda 拡張機能のローカルテストのサポートを追加する」を参照してください。

トラブルシューティング

Lambda Insights のインストールに関するトラブルシューティングを行うには、Lambda 関数に次の環境変数を追加して、デバッグログを有効にします。

Resources: MyFunction: Type: AWS::Serverless::Function Properties: Environment: Variables: LAMBDA_INSIGHTS_LOG_LEVEL: info