チュートリアル: CloudFront Functions でシンプルな関数を作成する - Amazon CloudFront

チュートリアル: CloudFront Functions でシンプルな関数を作成する

このチュートリアルでは、CloudFront Functions の使用を開始する方法を示します。ビューワーを別の URL にリダイレクトし、さらにカスタムレスポンスヘッダーを返すシンプルな関数を作成できます。

前提条件

CloudFront Functions の使用には、CloudFront ディストリビューションが必要です。アカウントをお持ちでない場合は、「基本的な CloudFront ディストリビューションの開始方法」を参照してください。

関数を作成する

CloudFront コンソールを使用して、ビューワーを別の URL にリダイレクトし、さらにカスタムレスポンスヘッダーを返すシンプルな関数を作成できます。

CloudFront 関数を作成するには
  1. AWS Management Consoleにサインインし、https://console.aws.amazon.com/cloudfront/v4/home で CloudFront コンソールを開きます。

  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. 関連付けられたディストリビューションのデプロイが完了するまで数分待ちます。ディストリビューションのステータスを確認するには、[関連づけられているディストリビューション] テーブルでディストリビューションを選択し、[ディストリビューションを表示] を選択します。

    ディストリビューションのステータスが [Deployed] になったら、関数の動作を確認できます。

関数を検証する

関数をデプロイしたら、ディストリビューションで機能することを検証できます。

関数を検証するには
  1. ウェブブラウザで、ディストリビューションのドメイン名 (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==