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

创建函数

创建函数的过程分为两个阶段:

  1. 将函数代码编写为 JavaScript。您可以使用来自 CloudFront 控制台的默认示例,也可以自行编写。有关更多信息,请参阅以下主题:

  2. 使用 CloudFront 创建函数并包括您的代码。代码位于函数内部(不是作为引用)。

Console
创建函数
  1. 通过 https://console.amazonaws.cn/cloudfront/v4/home#/functions 登录到 CloudFront 控制台,然后选择函数页面。

  2. 选择 Create function (创建函数)

  3. 输入在 Amazon Web Services 账户中唯一的函数名称,选择 JavaScript 版本,然后选择继续。此时将显示新函数的详细信息页面。

    注意

    要在函数中使用键值对,您必须选择 JavaScript 运行时 2.0。

  4. 函数代码部分,选择构建选项卡,然后输入您的函数代码。构建选项卡中包含的代码示例说明了函数代码的基本语法。

  5. 选择保存更改

  6. 如果函数代码使用键值对,则必须关联键值存储。

    您可在首次创建函数时关联键值存储。或者,您也可以稍后通过更新函数来关联它。

    要立即关联键值存储,请执行以下步骤:

    • 转至关联 KeyValueStore 部分,选择关联现有 KeyValueStore

    • 选择包含函数中键值对的键值存储,然后选择关联 KeyValueStore

    CloudFront 会立即将存储与该函数关联。您无需保存此函数。

CLI

如果您使用 CLI,则通常需要首先在文件中创建函数代码,然后使用 Amazon CLI 创建函数。

创建函数
  1. 在文件中创建函数代码,并将其存储在计算机可以连接到的目录中。

  2. 运行该命令,如示例所示。此示例使用 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 – Amazon Web Services 账户。

    • Stage – 函数的阶段(LIVEDEVELOPMENT)。

    • Status – 函数的状态(PUBLISHEDUNPUBLISHED)。

函数在创建后,将添加到 DEVELOPMENT 阶段。我们建议您在发布函数之前对其进行测试。在您发布函数后,函数将变为 LIVE 状态。