建立函數 - Amazon CloudFront

建立函數

您可以分兩個階段建立函數:

  1. 建立函數程式碼做為 JavaScript。您可以從 CloudFront 主控台使用預設範例或自行撰寫。如需詳細資訊,請參閱下列主題:

  2. 然後,您可以使用 CloudFront 建立函數並包含程式碼。程式碼存在於函數內部 (而不是引用形式)。

Console
建立 函數
  1. https://console.aws.amazon.com/cloudfront/v4/home#/functions 登入 CloudFront 主控台,並選擇函數頁面。

  2. 選擇 Create function (建立函數)

  3. 輸入在 AWS 帳戶 內唯一的函數名稱,然後選擇 JavaScript 版本,接著選擇繼續。新函數的詳細資訊頁面會隨即顯示。

    注意

    如要在函數中使用鍵值對,您必須選擇 JavaScript 執行時期 2.0。

  4. 函數程式碼區段中,選擇建置索引標籤,然後輸入您的函數程式碼。建置索引標籤中包含的範例程式碼會說明函數程式碼的基本語法。

  5. 選擇儲存變更

  6. 如果函數程式碼使用鍵值對,則必須關聯鍵值存放區。

    在首次建立函數時,您可以關聯鍵值存放區。或者,您可以稍後透過更新函數來關聯它。

    若要立即關聯鍵值存放區,請依照下列步驟執行:

    • 前往關聯 KeyValueStore 區段,然後選擇關聯現有的 KeyValueStore

    • 選取函數中包含鍵值對的鍵值存放區,然後選擇關聯 KeyValueStore

    CloudFront 會立即將存放區與該函數建立關聯。您無需儲存函數。

CLI

如果您使用 CLI,通常會先在檔案中建立函數程式碼,然後使用 AWS 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 – AWS 帳戶。

    • Stage – 函數的階段 (LIVEDEVELOPMENT)。

    • Status – 函數的狀態 (PUBLISHEDUNPUBLISHED)。

建立函數之後,該函數會新增至 DEVELOPMENT 階段。建議您在發佈函數之前進行測試。發佈函數之後,函數會變更為 LIVE 階段。