教程:使用 CloudFront Functions 创建简单函数 - Amazon CloudFront
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

教程:使用 CloudFront Functions 创建简单函数

本教程将向您介绍如何开始使用 CloudFront Functions,帮助您创建一个简单的函数,将查看器重定向到其他 URL,并返回自定义响应标头。

Prerequisites

要使用 CloudFront Functions,您需要一个 CloudFront 分配。如果您没有,请按照开始使用简单的 CloudFront 分配中的步骤操作。

创建函数

本程序将向您介绍如何使用 CloudFront 控制台创建一个简单的函数,将查看器重定向到其他 URL,并返回自定义响应标头。

要在 CloudFront 控制台中创建函数
  1. 登录 Amazon Web Services Management Console,并通过以下网址打开 CloudFront 控制台:https://console.amazonaws.cn/cloudfront/v3/home

  2. 在导航窗格中,选择 Functions(函数)。然后,选择 Create function(创建函数)。

  3. 输入函数名称,然后选择 Continue(继续)。

  4. (可选)对于 Comment(注释),输入函数的说明。例如,输入 Simple test function

  5. 复制以下函数代码,然后将其粘贴到控制台的代码编辑器中,以替换编辑器中的默认代码。

    function handler(event) { // NOTE: This example function is for a viewer request event trigger. // Choose viewer request for event trigger when you associate this function with a distribution. var response = { statusCode: 302, statusDescription: 'Found', headers: { 'cloudfront-functions': { value: 'generated-by-CloudFront-Functions' }, 'location': { value: 'https://aws.amazon.com/cloudfront/' } } }; return response; }
    
                        CloudFront Functions 代码编辑器中的示例代码。
  6. 选择 Save(保存)以使用您粘贴的示例代码创建函数。此函数代码将查看器重定向到其他 URL,并返回自定义响应标题。

    
                        CloudFront 控制台中的函数页面的 Build (构建) 选项卡。

    成功后,您会在页面顶部看到一个横幅,表明函数名称已成功保存

    提示

    您可以选择在发布函数之前对其进行测试。本教程没有描述如何测试函数,但有关更多信息,请参阅 测试函数

  7. 选择 Publish(发布)选项卡,然后选择 Publish(发布)按钮以发布函数。您必须先发布该函数,然后才能将其与 CloudFront 分配关联。

    
                        CloudFront 控制台中函数页面的 Publish (发布) 选项卡。

    成功后,您会在页面顶部看到一个横幅,表明函数名称已成功发布

  8. 选择 Associate(关联)选项卡。然后执行以下操作:

    警告

    在以下步骤中,选择用于测试的分配或缓存行为。不要将此演示函数与生产中使用的分配或缓存行为相关联。

    1. 对于 Distribution(分配),选择与此函数关联的分配。

    2. 对于 Event type(事件类型),保留默认选择(Viewer Request(查看器请求))。

    3. 对于 Cache behavior(缓存行为),选择与此函数关联的缓存行为。

    4. 选择 Add association。然后,在 Associate function to cache behavior (将函数与缓存行为关联) 弹出窗口中,选择 Associate (关联)

    
                        CloudFront 控制台中函数页面的 Associate (关联) 选项卡。

成功后,您会在页面顶部看到一个标题,其中显示函数名称已成功关联,且关联的 CloudFront 分配表显示了关联的分配。在验证函数是否正常工作之前,请等待几分钟以便关联的分配完成部署。要检查分配的状态,请选择关联的分配,然后选择 View distribution(查看分配)。

当分配的状态为 Deployed(已部署)时,您即可验证函数是否正常工作。

验证函数

要查看函数的运行情况并验证它是否正常工作,请在 Web 浏览器中转到分配的域名(例如 https://d111111abcdef8.cloudfront.net)。该函数返回到浏览器的重定向,因此浏览器会自动转到 https://aws.amazon.com/cloudfront/

如果您使用 curl 之类的工具将请求发送到您的分配的域名,您将看到重定向响应 (302 Found) 和函数增加的自定义响应标头,如下面的示例中所强调的那样。

curl -v https://d111111abcdef8.cloudfront.net/ > GET / HTTP/1.1 > Host: d111111abcdef8.cloudfront.net > User-Agent: curl/7.64.1 > Accept: */* > < HTTP/1.1 302 Found < Server: CloudFront < Date: Tue, 16 Mar 2021 18:50:48 GMT < Content-Length: 0 < Connection: keep-alive < Location: https://aws.amazon.com/cloudfront/ < Cloudfront-Functions: generated-by-CloudFront-Functions < X-Cache: FunctionGeneratedResponse from cloudfront < Via: 1.1 3035b31bddaf14eded329f8d22cf188c.cloudfront.net (CloudFront) < X-Amz-Cf-Pop: PHX50-C2 < X-Amz-Cf-Id: ULZdIz6j43uGBlXyob_JctF9x7CCbwpNniiMlmNbmwzH1YWP9FsEHg==