

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 AWS SAM CLI 在現有的 Lambda 函數上啟用 Lambda Insights
<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 將 `Layers` 屬性新增至 SAM 範本的 `Globals` 區段。下面的範例使用 Lambda Insights 的初始版本層。如需 Lambda Insights 延伸層的最新版本，請參閱 [Lambda Insights 延伸的可用版本](Lambda-Insights-extension-versions.md)。

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

若要僅針對單一函數啟用此層，請將 `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
```

**本機叫用**

CLI AWS SAM 支援 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
```