更新函數
您隨時都可以更新。這些變更只會對 DEVELOPMENT 階段中的函數版本進行。若要將更新從 DEVELOPMENT 階段複製到 LIVE,您必須發佈函數。
您可以在 CloudFront 主控台中或使用 AWS Command Line Interface (AWS CLI) 更新函數的程式碼。
- Console
-
更新函數程式碼
-
在 https://console.aws.amazon.com/cloudfront/v4/home#/functions
登入 CloudFront 主控台,並選擇函數頁面。 選擇要更新的函數。
-
選擇編輯,然後進行您想要的變更:
-
更新詳細資訊區段中的任何欄位。
-
變更或移除關聯的鍵值存放區。如需鍵值存放區的詳細資訊,請參閱 Amazon CloudFront KeyValueStore。
-
變更函數程式碼。選擇建置索引標籤,進行變更,然後選擇儲存變更,儲存對程式碼的變更。
-
-
- CLI
-
若要更新函式程式碼
-
開啟命令列視窗。
-
執行下列命令。
此範例會使用
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。您可以從 DescribeFunction API 作業取得此值。 -
即使您不想要變更,您也必須包含
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– 函數的階段 (LIVE或DEVELOPMENT)。 -
Status– 函數的狀態 (PUBLISHED或UNPUBLISHED)。