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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

创建函数

您可以分两个阶段创建函数。首先,在外部将函数代码创建为 Java 脚本 CloudFront。然后 CloudFront ,您可以使用创建函数并包含代码。代码位于函数内部(不是作为引用)。

新函数已添加到 DEVELOPMENT 阶段中。您必须发布该函数,才能将其复制到 LIVE 阶段。

Console
创建函数(控制台)
  1. 登录Amazon Web Services Management Console并在 CloudFront 控制台中打开功能页面,网址为https://console.amazonaws.cn/cloudfront/v4/home#/functions

  2. 选择创建函数

  3. 输入在 Amazon 账户中具有唯一性的函数名称,选择 Java 脚本版本,然后选择继续。该函数现已存在。此时将显示新函数的详细信息页面。

    注意

    如果要在函数中使用键值对,则必须选择 Java 脚本 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::1:key-value-store/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111'}]}" \ --function-code fileb://function-max-age-v1.js

注意:

  • Runtime:Java 脚本的版本。如果要在函数中使用键值对,则必须指定版本 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::1: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::111122223333:function/MaxAge

请求中的大部分信息都是重复的。其他信息由添加 CloudFront。请注意以下几点:

  • ETag:每次修改键值存储时,此值都会发生变化。将来,您可以使用此值和函数名称来引用该函数。确保始终使用当前的 ETag。

  • FunctionARN

  • Stage

  • Status