教程:使用 CloudFront Functions 创建简单函数
本教程介绍如何开始使用 CloudFront Functions。您可以创建一个简单的函数,以便将查看器重定向到其他 URL,并返回自定义响应标头。
先决条件
要使用 CloudFront Functions,您需要一个 CloudFront 分配。如果您还有分配,请参阅开始使用基本 CloudFront 分配。
创建函数
您可以使用 CloudFront 控制台创建一个简单函数,用于将查看器重定向到其他 URL,并返回自定义响应标头。
创建 CloudFront 函数
登录 AWS Management Console,并通过以下网址打开 CloudFront 控制台:https://console.aws.amazon.com/cloudfront/v4/home
。 -
在导航窗格中,选择函数,然后选择创建函数。
-
在创建函数页面上,在名称中输入函数名称,例如
MyFunctionName
。 -
(可选)对于描述,输入函数描述,例如
Simple test function
。 -
对于运行时,请保留默认选定的 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 等工具,向分配的域名发送请求。
curl -v https://d111111abcdef8.cloudfront.net/
在响应中,您可以看到函数添加的重定向响应(
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==