本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
測試函數
在您將函數部署到即時階段 (生產) 之前,您可以測試函數以確認其是否如預期般運作。若要測試函數,您可以指定事件物件,代表 CloudFront 分佈在生產環境中可能收到的 HTTP 請求或回應。
CloudFront Functions 會執行下列作業:
-
執行該函數,使用提供的事件物件作為函數的輸入。
-
返回函數的結果 (修改後的事件物件),同時返回任何函數日誌或錯誤訊息以及函數的運算利用率。如需運算使用率的詳細資訊,請參閱 了解運算使用率。
注意
當您測試函數時,CloudFront 只會驗證函數執行錯誤。CloudFront 不會驗證發佈後請求是否會成功通過。例如,如果您的函數刪除必要的標頭,測試將會成功,因為程式碼沒有問題。不過,如果您發佈函數並將其與分佈建立關聯,則函數會在透過 CloudFront 提出請求時失敗。
設定事件物件
在測試函數之前,您必須建立事件物件以進行測試。有幾種選項。
- 選項 1:設定事件物件而不儲存
-
您可以在 CloudFront 主控台的視覺化編輯器中設定事件物件,而不儲存該事件物件。
您可以使用此事件物件從 CloudFront 主控台測試函數,即使該函數尚未儲存也是如此。
- 選項 2:在視覺化編輯器中建立事件物件
-
您可以在 CloudFront 主控台的視覺化編輯器中設定事件物件,而不儲存該事件物件。您可以針對每個函數建立 10 個事件物件,例如,可測試不同的可能輸入。
以這種方式建立事件物件時,您可以使用事件物件,在 CloudFront 主控台中測試函數。您無法使用它來測試使用 AWS API 或 SDK 的函數。
- 選項 3:使用文字編輯器建立事件物件
-
您可以使用文字編輯器,以 JSON 格式建立事件物件。如需有關事件物件結構的詳細資訊,請參閱 事件結構。
您可以使用此事件物件來測試使用 CLI 的函數。但是您無法使用它來測試 CloudFront 主控台中的函數。
建立事件物件 (選項 1 或 2)
-
在 登入 CloudFront 主控台https://console.aws.amazon.com/cloudfront/v4/home#/functions
,然後選擇函數頁面。 選擇您要測試的函數。
-
在函數詳細資訊頁面上,選擇測試索引標籤。
-
針對事件類型,選擇下列其中一個選項:
-
如果函數會根據請求修改 HTTP 請求或產生回應,請選擇檢視者請求。請求區段隨即出現。
-
選擇檢視器回應。請求和回應區段隨即出現。
-
-
完成要包含在事件中的欄位。您可以選擇編輯 JSON 以檢視原始 JSON。
-
(選用) 若要儲存事件,請選擇儲存,然後在儲存測試事件中輸入名稱,然後選擇儲存。
您也可以選擇編輯 JSON 並複製原始 JSON,並將其儲存在 CloudFront 之外您自己的檔案中。
建立事件物件 (選項 3)
使用文字編輯器建立事件物件。將檔案儲存於電腦可以連線的目錄中。
確認您遵循下列準則:
-
省略
distributionDomainName
、distributionId
和requestId
欄位。 -
標頭、Cookie 和查詢字串的名稱必須小寫。
以這種方式建立事件物件的一個選項是使用視覺化編輯器建立範例。您可以確定範例格式正確。然後您可以複製原始 JSON 並將其貼到文字編輯器中並儲存檔案。
如需事件結構的詳細資訊,請參閱 事件結構。
測試函數
您可以在 CloudFront 主控台或使用 AWS Command Line Interface () 測試函數AWS CLI。
備註
-
FunctionExecutionLogs
包含函數在console.log()
語句中撰寫的日誌行清單 (如果有的話)。 -
ComputeUtilization
包含執行 函數的相關資訊。請參閱 了解運算使用率。 -
FunctionOutput
包含該函數返回的事件物件。
了解運算使用率
運用利用率是指執行函數所花費的時間,以所允許時間上限的百分比表示。例如,35 的值表示該函數以所允許時間上限的 35% 完成。
如果某個函數持續時間,超過允許時間上限,則 CloudFront 會將該函數限流。下列清單說明,根據運算利用率的值,函數限流的可能性。
運算利用率值:
-
1 — 50— 函數遠低於允許時間上限,應不會受到限流。
-
51 — 70— 函數接近允許時間上限。考慮將函數程式碼最佳化。
-
71 — 100— 函數非常接近或超過允許時間上限。如果您將此函數與分佈產生關聯,CloudFront 很有可能會將此函數限流。