

# Serverless Framework を使用して、既存の Lambda 関数で Lambda Insights を有効にする
<a name="Lambda-Insights-Getting-Started-serverless"></a>

Serverless Framework を使用して、既存の Lambda 関数で Lambda Insights を有効にするには、次の手順に従います。Serverless Framework の詳細については、[serverless.com](https://www.serverless.com/) を参照してください。

これは、Serverless の Lambda Insights プラグインから行えます。詳細については、「[serverless-plugin-lambda-insights](https://www.npmjs.com/package/serverless-plugin-lambda-insights)」を参照してください。

最新バージョンの Serverless コマンドラインインターフェースをまだ使用していない場合は、まずインストールまたはアップグレードする必要があります。詳細については、[Serverless Framework Open Source & AWS](https://www.serverless.com/framework/docs/getting-started/) の使用開始を参照してください。

**Serverless Framework を使用して、Lambda 関数で Lambda Insights を有効化するには**

1. Serverless のディレクトリで次のコマンドを実行し、Lambda Insights 用の Serverless プラグインをインストールします。

   ```
   npm install --save-dev serverless-plugin-lambda-insights
   ```

1. `serverless.yml`ファイルで、図のように `plugins` セクション内にプラグインを追加します。

   ```
   provider:
     name: aws
   plugins:
     - serverless-plugin-lambda-insights
   ```

1. Lambda Insights を有効にします。
   + 次のプロパティを serverless.yml ファイルに追加することで、関数ごとに個別に Lambda Insights を有効化できます。

     ```
     functions:
       {{myLambdaFunction}}:
         handler: src/app/index.handler
         lambdaInsights: true #enables Lambda Insights for this function
     ```
   + 次のカスタムセクションを追加すると、`serverless.yml` ファイル内にあるすべての関数に対して Lambda Insights を有効化できます。

     ```
     custom:
       lambdaInsights:
         defaultLambdaInsights: true #enables Lambda Insights for all functions
     ```

1. 次のコマンドを入力して、Serverless サービスを再デプロイします。

   ```
   serverless deploy
   ```

   これにより、すべての関数が再デプロイされ、指定した関数に対し Lambda Insights が有効になります。ここでは、Lambda Insights レイヤーを追加し、`arn:aws:iam::aws:policy/CloudWatchLambdaInsightsExecutionRolePolicy` IAM ポリシーを使用して必要なアクセス許可をアタッチすることで、Lambda Insights を有効にしています。