教學課程:使用 CloudFront Functions 建立簡單的 函數 - Amazon CloudFront

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

教學課程:使用 CloudFront Functions 建立簡單的 函數

本教學課程說明如何開始使用 CloudFront Functions。您可以建立簡單的 函數,將檢視器重新導向至不同的 URL,並傳回自訂回應標頭。

先決條件

要使用 CloudFront Functions,您需要一個 CloudFront 分佈。如果您沒有帳戶,請參閱 開始使用基本 CloudFront 分佈

建立函數

您可以使用 CloudFront 主控台建立簡單的函數,將檢視器重新導向至不同的 URL,並傳回自訂回應標頭。

建立 CloudFront 函數
  1. 登入 AWS Management Console ,並在 開啟 CloudFront 主控台https://console.aws.amazon.com/cloudfront/v4/home

  2. 在導覽窗格中,選擇函數,然後選擇建立函數

  3. 建立函數頁面上,針對名稱輸入函數名稱,例如 MyFunctionName

  4. (選用) 針對描述,輸入 等函數的描述Simple test function

  5. 對於執行期,保留預設選取的 JavaScript 版本。

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

  7. 複製下列函數程式碼。此函數程式碼會將檢視者重新導向至不同的 URL,並傳回自訂回應標頭。

    function handler(event) { // NOTE: This example function is for a viewer request event trigger. // Choose viewer request for event trigger when you associate this function with a distribution. var response = { statusCode: 302, statusDescription: 'Found', headers: { 'cloudfront-functions': { value: 'generated-by-CloudFront-Functions' }, 'location': { value: 'https://aws.amazon.com/cloudfront/' } } }; return response; }
  8. 對於函數程式碼,請將程式碼貼到程式碼編輯器中,以取代預設程式碼。

  9. 選擇 Save changes (儲存變更)。

  10. (選用) 您可以在發佈函數之前對其進行測試。本教學課程不會說明如何測試 函數。如需詳細資訊,請參閱測試函數

  11. 選擇發佈索引標籤,然後選擇發佈函數您必須先發佈函數,才能將其與 CloudFront 分佈建立關聯。

  12. 接著,您可以將函數與分佈或快取行為建立關聯。在 MyFunctionName 頁面上,選擇發佈索引標籤。

    警告

    在下列步驟中,選擇用於測試的分佈或快取行為。請勿將此測試函數與生產中使用的分佈或快取行為建立關聯。

  13. 選擇 Add association (建立關聯)

  14. 關聯對話方塊中,選擇分佈和/或快取行為。對於事件類型,請保留預設值。

  15. 選擇 Add association (建立關聯)

    關聯的分佈資料表中會顯示關聯的分佈。

  16. 等待幾分鐘,讓關聯的分佈完成部署。若要檢查分佈的狀態,請在關聯的分佈資料表中選取分佈,然後選擇檢視分佈

    當分佈的狀態為已部署時,您就可以確認該函數正常運作。

驗證函數

部署函數之後,您可以驗證它是否適用於您的分佈。

驗證函數
  1. 在 Web 瀏覽器中,導覽至分佈的網域名稱 (例如 https://d111111abcdef8.cloudfront.net)。

    該函數傳回重定向到瀏覽器,因此瀏覽器會自動轉到 https://aws.amazon.com/cloudfront/

  2. 在命令列視窗中,您可以使用 之類的工具curl,將請求傳送到分發的網域名稱。

    curl -v https://d111111abcdef8.cloudfront.net/

    在回應中,您會看到重新導向回應 (302 Found) 和函數新增的自訂回應標頭。您的回應可能如下所示。

    curl -v https://d111111abcdef8.cloudfront.net/ > GET / HTTP/1.1 > Host: d111111abcdef8.cloudfront.net > User-Agent: curl/7.64.1 > Accept: */* > < HTTP/1.1 302 Found < Server: CloudFront < Date: Tue, 16 Mar 2021 18:50:48 GMT < Content-Length: 0 < Connection: keep-alive < Location: https://aws.amazon.com/cloudfront/ < Cloudfront-Functions: generated-by-CloudFront-Functions < X-Cache: FunctionGeneratedResponse from cloudfront < Via: 1.1 3035b31bddaf14eded329f8d22cf188c.cloudfront.net (CloudFront) < X-Amz-Cf-Pop: PHX50-C2 < X-Amz-Cf-Id: ULZdIz6j43uGBlXyob_JctF9x7CCbwpNniiMlmNbmwzH1YWP9FsEHg==