本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:使用函数创建简单函 CloudFront 数
本教程向您展示如何开始使用 CloudFront 函数。您可以创建一个简单的函数,将查看者重定向到不同的 URL,还可以返回自定义响应标头。
先决条件
要使用 CloudFront 函数,你需要一个 CloudFront 发行版。如果您没有,请按照简单 CloudFront 发行版入门中的步骤操作。
创建函数
此过程向您展示如何使用 CloudFront 控制台创建一个简单的函数,该函数将查看者重定向到其他 URL,并返回自定义响应标头。
在 CloudFront 控制台中创建函数
登录Amazon Web Services Management Console并打开 CloudFront 控制台,网址为https://console.amazonaws.cn/cloudfront/v4/home
。 -
在导航窗格中,选择函数,然后选择创建函数。
-
在创建函数页面上,在名称中输入函数名称,例如
MyFunctionName
。 -
(可选)在描述中,输入函数的描述,例如
Simple test function
。 -
对于 Runtime,保留默认的选定 JavaScript版本。
-
选择创建函数。
-
复制以下函数代码。此函数代码将查看器重定向到其他 URL,并返回自定义响应标题。
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 分配相关联。
-
接下来,您可以将该函数与分配或缓存行为相关联。在
MyFunctionName
页面上,选择 “发布” 选项卡。警告
在以下步骤中,选择用于测试的分发或缓存行为。请勿将此测试函数与生产中使用的分发或缓存行为相关联。
-
选择添加关联。
-
在 “关联” 对话框中,选择分配和/或缓存行为。对于事件类型,请保留默认值。
-
选择添加关联。
关联的分配表显示了关联的分配。
-
等待几分钟,以便相关的分配完成部署。要检查分配的状态,请在关联的分配表中选择分配,然后选择查看分配。
当分配的状态为 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==