

# 更新函数的 Lambda Insights 扩展程序版本
<a name="Lambda-Insights-Update-Extension"></a>

作为最佳实践，建议您将 Lambda Insights 扩展程序更新到最新版本。本页中的主题说明如何操作。

**注意**  
本页说明如何更新已使用 Lambda Insights 的函数所使用的扩展程序版本。有关如何开始使用 Lambda Insights 的更多信息，请参阅 [开始使用 Lambda Insights](Lambda-Insights-Getting-Started.md)。

## 使用 Lambda 控制台更新 Lambda Insights 扩展程序版本
<a name="Lambda-Insights-Update-Extension-console"></a>

按照以下步骤，使用 Lambda 控制台更新 Lambda Insights 扩展程序版本。

**使用 Lambda 控制台更新**

1. 通过 [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/) 打开 AWS Lambda 控制台。

1. 选择函数的名称。

1. 在**层**部分中，选择**编辑**。

1. 在层列表中，搜索 **LambdaInsightsExtension**，然后将层版本更改为 [Lambda Insights 扩展程序的可用版本](Lambda-Insights-extension-versions.md) 中列出的最新版本。

1. 选择**保存**。

## 使用 AWS CLI 更新 Lambda Insights 扩展程序版本
<a name="Lambda-Insights-Update-Extension-CLI"></a>

要使用 AWS CLI 更新 Lambda Insights 扩展程序版本，请输入以下命令。将 layers 参数的 ARN 值替换为与您的区域和您要使用的扩展程序版本匹配的 ARN。有关 Lambda Insights 扩展程序层最新版本的信息，请参阅 [Lambda Insights 扩展程序的可用版本](Lambda-Insights-extension-versions.md)。

```
aws lambda update-function-configuration \
--function-name function-name \
--layers "arn:aws:lambda:us-west-1:111122223333:layer:LambdaInsightsExtension:53"
```

## 使用 AWS SAM CLI 更新一个或多个函数的 Lambda Insights 扩展程序
<a name="Lambda-Insights-Update-Extension-SAM-CLI"></a>

要更新所有 Lambda 函数的 Lambda Insights 扩展程序版本，请使用 Lambda Insights 层的 ARN 更新 AWS Serverless Application Model（SAM）模板 `Globals` 部分中的 `Layers` 属性。有关 Lambda Insights 扩展程序层最新版本的信息，请参阅 [Lambda Insights 扩展程序的可用版本](Lambda-Insights-extension-versions.md)。

以下内容更新所有 Lambda 函数。

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

以下内容仅更新一个函数。

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

## 使用 CloudFormation 更新一个或多个函数的 Lambda Insights 扩展程序
<a name="Lambda-Insights-Update-Extension-CloudFormation"></a>

要使用 CloudFormation 更新 Lambda Insights 扩展程序版本，请更新函数 CloudFormation 资源内 `Layers` 属性中的扩展程序层，如以下示例所示。有关 Lambda Insights 扩展程序层最新版本的信息，请参阅 [Lambda Insights 扩展程序的可用版本](Lambda-Insights-extension-versions.md)。

```
Resources:
  MyFunction:
    Type: AWS::Lambda::Function
    Properties:
      Layers:
        - !Sub "arn:aws:lambda:${AWS::Region}:111122223333:layer:LambdaInsightsExtension:53"
```

## 使用 AWS CDK 更新一个或多个函数的 Lambda Insights 扩展程序
<a name="Lambda-Insights-Update-Extension-CDK"></a>

通过将 `layerArn` 参数的 ARN 值替换为与您的区域和您要使用的扩展程序版本匹配的 ARN，您可以更新 Lambda 函数的扩展程序版本。有关 Lambda Insights 扩展程序层最新版本的信息，请参阅 [Lambda Insights 扩展程序的可用版本](Lambda-Insights-extension-versions.md)。

```
import lambda = require('@aws-cdk/aws-lambda'); 
const layerArn = 'arn:aws:lambda:us-west-1:111122223333:layer:LambdaInsightsExtension:53'; 
const layer = lambda.LayerVersion.fromLayerVersionArn(this, 'LayerFromArn', layerArn);
```

## 使用无服务器框架更新一个或多个函数的 Lambda Insights 扩展程序
<a name="Lambda-Insights-Update-Extension-Serverless"></a>

按照以下步骤使用无服务器框架更新现有 Lambda 函数的 Lambda Insights 扩展程序版本。有关无服务器框架的更多信息，请参阅[无服务器框架文档](https://serverless.com)。

此方法使用无服务器的 Lambda Insights 插件。有关更多信息，请参阅 [serverless-plugin-lambda-insights](https://www.npmjs.com/package/serverless-plugin-lambda-insights)。

如果尚未安装最新版本的无服务器命令行界面，则必须先安装或升级到此版本。有关更多信息，请参阅 [Setting Up Serverless Framework With AWS](https://www.serverless.com/framework/docs/getting-started/)。

**使用 Lambda 控制台更新**

1. 更新 Lambda Insights。如果您尚未执行此操作，则请在文件末尾添加 `custom` 部分，并在 `lambdaInsightsVersion` 属性中指定 Lambda Insights 版本。

   ```
   custom:
       lambdaInsights:
           lambdaInsightsVersion: 53 #specify the Layer Version
   ```

1. 输入以下命令重新部署无服务器服务。

   ```
   serverless deploy
   ```

## 对 Lambda 容器映像部署更新 Lambda Insights 扩展程序版本
<a name="Lambda-Insights-Update-Extension-container"></a>

要更新 Lambda 容器映像的 Lambda Insights，请按照 [对 Lambda 容器映像部署启用 Lambda Insights](Lambda-Insights-Getting-Started-docker.md) 中的步骤使用最新版本的 Lambda Insights 重建映像。然后，使用 AWS CLI [更新函数代码](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/update-function-code.html)并提供容器映像 URI 作为 `--image-uri` 参数的值。