更新函数 - Amazon CloudFront

更新函数

您可以随时更新函数。仅对处于 DEVELOPMENT 阶段的函数版本进行更改。要将更新从 DEVELOPMENT 阶段复制到 LIVE,您必须发布函数

您可以在 CloudFront 控制台中或使用 AWS Command Line Interface(AWS CLI)更新函数的代码。

Console
更新函数代码
  1. 通过 https://console.aws.amazon.com/cloudfront/v4/home#/functions 登录到 CloudFront 控制台,然后选择函数页面。

    选择要更新的函数。

  2. 选择编辑并进行所需的更改:

    • 根据需要在详细信息部分中更新任意字段。

    • 更改函数代码。选择构建选项卡,进行更改,然后选择保存更改来保存对代码的更改。

CLI
更新函数代码
  1. 打开一个命令行窗口。

  2. 运行以下命令。

    此示例使用 fileb:// 表示法来传入文件。它还包括换行符,以使命令更具可读性。

    aws cloudfront update-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 \ --if-match ETVABCEXAMPLE
    注意
    • 您可以通过函数的名称及其 ETag(在 if-match 参数中)来标识函数。确保您使用当前的 ETag。您可以使用描述操作来获取它。

    • 即使您不想对 function-code 进行更改,也必须包含它。

    • 务必注意 function-config。您应传递您想要在配置中保留的所有内容。具体而言,应按如下方式处理键值存储:

      • 要保留现有的键值存储关联(如果有),请指定现有存储的名称。

      • 要更改关联,请指定键值存储的名称。

      • 要移除关联,请忽略 KeyValueStoreAssociations 参数。

    该命令成功执行后,您会看到类似以下内容的输出。

    ETag: ETVXYZEXAMPLE 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-12-19T23:41:15.389000+00:00' \ Stage: DEVELOPMENT \ Name: MaxAge \ Status: UNPUBLISHED

请求中的大部分信息都是重复的。其他信息由 CloudFront 添加。

注意
  • ETag – 每次修改键值存储时,此值都会更改。

  • FunctionARN – 您的 CloudFront 函数的 ARN。

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

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