建立函數
您可以分兩個階段建立函數:
-
建立函數程式碼做為 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 階段。