

# 既存の Lambda 関数で Lambda Insights を有効にするために AWS SAM CLI を使用する
<a name="Lambda-Insights-Getting-Started-SAM-CLI"></a>

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

最新バージョンの AWS SAM CLI をまだインストールしていない場合は、まずインストールまたはアップグレードする必要があります。詳細については、[AWS SAM CLI のインストール](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html)を参照してください。

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

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

```
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 はグローバルポリシーをサポートしていないため、この例に示すように、各関数で個別に有効にする必要があります。グローバルの詳細については、「[グローバルセクション](https://github.com/aws/serverless-application-model/blob/master/docs/globals.rst)」を参照してください。

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

**ローカルでの呼び出し**

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

**トラブルシューティング**

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

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