

# 将触发器添加到 Lambda@Edge 函数中
<a name="lambda-edge-add-triggers-console"></a>

您可以使用 AWS Lambda 控制台或 Amazon CloudFront 控制台向 Lambda@Edge 函数中添加触发器。

**重要**  
您只能为函数的编号版本（不能为 **\$1LATEST**）创建触发器。

------
#### [ Lambda console ]<a name="lambda-edge-add-triggers-procedure"></a>

**将 CloudFront 事件的触发器添加到 Lambda@Edge 函数**

1. 登录到 AWS 管理控制台，然后通过以下网址打开 AWS Lambda 控制台：[https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)。

1. 在页面顶部的“区域”列表中，选择**美国东部（弗吉尼亚州北部）**。

1. 在**函数**页面上，选择您要为其添加触发器的函数的名称。

1. 在**函数概述**页面上，选择**版本**选项卡。

1. 选择您要为其添加触发器的版本。

   选择某个版本后，相应按钮的名称会更改为 **Version: \$1LATEST** 或 **Version:** *版本号*。

1. 选择**触发器**选项卡。

1. 选择**添加触发器**。

1. 在**触发器配置**中，选择**选择源**，输入 **cloudfront**，然后选择 **CloudFront**。
**注意**  
如果您已创建一个或多个触发器，则 CloudFront 为默认服务。

1. 指定以下值，以指示您希望 Lambda 函数何时执行。

   1. **分配** – 选择要向其中添加触发器的分配。

   1. **缓存行为** – 选择缓存行为，该行为将指定您要对其执行函数的对象。
**注意**  
如果您对缓存行为指定 `*`，则 Lambda 函数会部署到默认缓存行为。

   1. **CloudFront 事件** – 选择促使函数执行的 CloudFront 事件。

   1. **包括正文** – 如果要在函数中访问请求正文，请选中该复选框。

   1. **确认部署到 Lambda@Edge** – 选中该复选框，以便 AWS Lambda 将函数复制到全球各地的 AWS 区域。

1. 选择**添加**。

   在更新的 CloudFront 分配部署后，函数开始处理指定 CloudFront 事件的请求。要确定是否已部署分配，请在导航窗格中选择**分配**。在部署分配后，分配的**状态**列的值将从**正在部署**更改为部署日期和时间。

------
#### [ CloudFront console ]<a name="lambda-create-functions-add-triggers-cloudfront-console-procedure"></a>

**将 CloudFront 事件的触发器添加到 Lambda@Edge 函数**

1. 获取您要为其添加触发器的 Lambda 函数的 ARN：

   1. 登录到 AWS 管理控制台，然后通过以下网址打开 AWS Lambda 控制台：[https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)。

   1. 在页面顶部的区域列表中，选择**美国东部（弗吉尼亚州北部）**。

   1. 在函数列表中，选择您要为其添加触发器的函数的名称。

   1. 在**函数概述**页面上，选择**版本**选项卡，然后再选择要为其添加触发器的带编号的版本。

   1. 选择**复制 ARN** 按钮，将 ARN 复制到剪贴板。Lambda 函数的 ARN 如下所示：

      `arn:aws:lambda:us-east-1:123456789012:function:TestFunction:2`

      末尾的号码（在本示例中为 **2**）是函数的版本号。

1. 通过 [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home) 打开 CloudFront 控制台

1. 在分配列表中，选择要为其添加触发器的分配的 ID。

1. 选择**行为**选项卡。

1. 选择要为其添加触发器的缓存行为，然后选择**编辑**。

1. 对于**函数关联**，请在**函数类型**列表中，选择 **Lambda@Edge**，以确定您希望何时执行函数：针对查看器请求、查看器响应、源请求或源响应。

   有关更多信息，请参阅 [选择要触发函数的事件](lambda-how-to-choose-event.md)。

1. 在**函数 ARN/名称**文本框中，粘贴当所选事件发生时您要执行的 Lambda 函数的 ARN。这是您从 Lambda 控制台复制的值。

1. 如果要在函数中访问请求正文，请选择**包含正文**。

   如果您仅希望替换请求正文，则不需要选择该选项。

1. 要对更多事件类型执行同一函数，请重复步骤 6 和 7。

1. 选择**保存更改**。

1. 要针对该分配为更多缓存行为添加触发器，请重复步骤 5 到 10。

   在更新的 CloudFront 分配部署后，函数开始处理指定 CloudFront 事件的请求。要确定是否已部署分配，请在导航窗格中选择**分配**。在部署分配后，分配的**状态**列的值将从**正在部署**更改为部署时间和日期。

------