チュートリアル: 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] になったら、関数の動作を確認できます。

関数の検証

関数の動作が確認できたら、ウェブブラウザでディストリビューションのドメイン名 (例: https://d111111abcdef8.cloudfront.net) に移動します。関数はブラウザにリダイレクトを返すため、ブラウザは自動的に https://aws.amazon.com/cloudfront/ に移動します。

curl などのツールを使用してディストリビューションのドメイン名にリクエストを送信すると、次の例で強調されているように、関数によって追加されたリダイレクト応答 (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==