创建函数
创建函数的过程分为两个阶段:
-
将函数代码编写为 JavaScript。您可以使用来自 CloudFront 控制台的默认示例,也可以自行编写。有关更多信息,请参阅以下主题:
-
使用 CloudFront 创建函数并包括您的代码。代码位于函数内部(不是作为引用)。
- Console
-
创建函数
-
通过 https://console.aws.amazon.com/cloudfront/v4/home#/functions
登录到 CloudFront 控制台,然后选择函数页面。 -
选择 Create function (创建函数)。
-
输入在 AWS 账户中唯一的函数名称,选择 JavaScript 版本,然后选择继续。此时将显示新函数的详细信息页面。
注意
要在函数中使用键值对,您必须选择 JavaScript 运行时 2.0。
-
在函数代码部分,选择构建选项卡,然后输入您的函数代码。构建选项卡中包含的代码示例说明了函数代码的基本语法。
-
选择保存更改。
-
如果函数代码使用键值对,则必须关联键值存储。
您可在首次创建函数时关联键值存储。或者,您也可以稍后通过更新函数来关联它。
要立即关联键值存储,请执行以下步骤:
-
转至关联 KeyValueStore 部分,选择关联现有 KeyValueStore。
-
选择包含函数中键值对的键值存储,然后选择关联 KeyValueStore。
CloudFront 会立即将存储与该函数关联。您无需保存此函数。
-
-
- CLI
-
如果您使用 CLI,则通常需要首先在文件中创建函数代码,然后使用 AWS CLI 创建函数。
创建函数
-
在文件中创建函数代码,并将其存储在计算机可以连接到的目录中。
-
运行该命令,如示例所示。此示例使用
fileb://
表示法来传入文件。它还包括换行符,以使命令更具可读性。aws cloudfront create-function \ --name MaxAge \ --function-config '{"Comment":"Max Age 2 years","Runtime":"cloudfront-js-2.0","KeyValueStoreAssociations":{"Quantity":1,"Items":[{"KeyValueStoreARN":"arn:aws:cloudfront::111122223333:key-value-store/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"}]}}' \ --function-code fileb://function-max-age-v1.js
注意
-
Runtime
– JavaScript 的版本。要在函数中使用键值对,您必须指定版本 2.0。 -
KeyValueStoreAssociations
– 如果您的函数使用键值对,则可以在首次创建函数时关联键值存储。或者,您可以稍后使用update-function
关联它。Quantity
始终为1
,因为每个函数只能有一个与之关联的键值存储。
该命令成功执行后,您会看到类似以下内容的输出。
ETag: ETVABCEXAMPLE FunctionSummary: FunctionConfig: Comment: Max Age 2 years Runtime: cloudfront-js-2.0 KeyValueStoreAssociations= \ {Quantity=1, \ Items=[{KeyValueStoreARN='arn:aws:cloudfront::111122223333:key-value-store/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111'}]} \ FunctionMetadata: CreatedTime: '2021-04-18T20:38:56.915000+00:00' FunctionARN: arn:aws:cloudfront::111122223333:function/MaxAge LastModifiedTime: '2023-11-19T20:38:56.915000+00:00' Stage: DEVELOPMENT Name: MaxAge Status: UNPUBLISHED Location: https://cloudfront.amazonaws.com/2020-05-31/function/arn:aws:cloudfront:::function/MaxAge
请求中的大部分信息都是重复的。其他信息由 CloudFront 添加。
注意
-
ETag
– 每次修改键值存储时,此值都会更改。您可以使用此值和函数名称在将来引用该函数。确保您始终使用最新的ETag
。 -
FunctionARN
– 您的 CloudFront 函数的 ARN。 -
111122223333 – AWS 账户。
-
Stage
– 函数的阶段(LIVE
或DEVELOPMENT
)。 -
Status
– 函数的状态(PUBLISHED
或UNPUBLISHED
)。
-
-
函数在创建后,将添加到 DEVELOPMENT
阶段。我们建议您在发布函数之前对其进行测试。在您发布函数后,函数将变为 LIVE
状态。