将触发器添加到 Lambda@Edge 函数中 - Amazon CloudFront

将触发器添加到 Lambda@Edge 函数中

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

重要

您只能为函数的编号版本(不能为 $LATEST)创建触发器。

Lambda console
将触发器添加到 Lambda@Edge 函数中
  1. 登录到 AWS Management Console,然后通过以下网址打开 AWS Lambda 控制台:https://console.aws.amazon.com/lambda/

  2. 在页面顶部的“区域”列表中,选择美国东部(弗吉尼亚州北部)

  3. 函数页面上,选择您要为其添加触发器的函数的名称。

  4. 函数概述页面上,选择版本选项卡。

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

    选择某个版本后,相应按钮的名称会更改为 Version: $LATESTVersion: 版本号

  6. 选择触发器选项卡。

  7. 选择添加触发器

  8. 触发器配置中,选择选择源,输入 cloudfront,然后选择 CloudFront

    注意

    如果您已创建一个或多个触发器,则 CloudFront 为默认服务。

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

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

    2. 缓存行为 – 选择缓存行为,该行为将指定您要对其执行函数的对象。

      注意

      如果您对缓存行为指定 *,则 Lambda 函数会部署到默认缓存行为。

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

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

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

  10. 选择添加

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

CloudFront console
将 CloudFront 事件的触发器添加到 Lambda 函数
  1. 获取您要为其添加触发器的 Lambda 函数的 ARN:

    1. 登录到 AWS Management Console,然后通过以下网址打开 AWS Lambda 控制台:https://console.aws.amazon.com/lambda/

    2. 在页面顶部的区域列表中,选择美国东部(弗吉尼亚州北部)

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

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

    5. 选择复制 ARN 按钮,将 ARN 复制到剪贴板。Lambda 函数的 ARN 如下所示:

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

      末尾的号码(在本示例中为 2)是函数的版本号。

  2. 通过 https://console.aws.amazon.com/cloudfront/v4/home 打开 CloudFront 控制台

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

  4. 选择行为选项卡。

  5. 选择要为其添加触发器的缓存行为,然后选择编辑

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

    有关更多信息,请参阅 决定使用哪个 CloudFront 事件来触发 Lambda@Edge 函数

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

  8. 如果要在函数中访问请求正文,请选择包含正文

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

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

  10. 选择保存更改

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

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