チュートリアル: CloudFront Functions でシンプルな関数を作成する
このチュートリアルでは、CloudFront Functions の使用を開始する方法を示します。ビューワーを別の URL にリダイレクトし、さらにカスタムレスポンスヘッダーを返すシンプルな関数を作成できます。
前提条件
CloudFront Functions の使用には、CloudFront ディストリビューションが必要です。アカウントをお持ちでない場合は、「基本的な CloudFront ディストリビューションの開始方法」を参照してください。
関数を作成する
CloudFront コンソールを使用して、ビューワーを別の URL にリダイレクトし、さらにカスタムレスポンスヘッダーを返すシンプルな関数を作成できます。
CloudFront 関数を作成するには
AWS Management Consoleにサインインし、https://console.aws.amazon.com/cloudfront/v4/home
で CloudFront コンソールを開きます。 -
ナビゲーションペインで、[関数]、[関数を作成] の順に選択します。
-
[関数を作成] ページの [名前] に関数名 (
MyFunctionName
など) を入力します。 -
(オプション) [説明] に、関数の説明 (
Simple test function
など) を入力します。 -
[ランタイム] は、デフォルトで選択されている JavaScript バージョンのままにします。
-
[Create function (関数の作成)] を選択します。
-
次の関数コードをコピーします。この関数コードは、ビューワーを別の 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; }
-
[関数コード] で、コードをコードエディタに貼り付け、デフォルトコードを置き換えます。
-
[Save changes] (変更の保存) をクリックします。
-
(オプション) 関数は発行前にテストすることもできます。このチュートリアルでは、関数のテスト方法は説明していません。詳細については、「関数をテストする」を参照してください。
-
[発行] タブを選択し、[関数を発行] を選択します。関数は、CloudFront ディストリビューションと関連付ける前に発行する必要があります。
-
次に、関数をディストリビューションまたはキャッシュビヘイビアと関連付けることができます。
[MyFunctionName]
ページで、[発行] タブを選択します。警告
次の手順では、テストに使用するディストリビューションまたはキャッシュビヘイビアを選択します。このテスト関数は、本番環境で使用するディストリビューションやキャッシュビヘイビアには関連付けないでください。
-
[Add association] を選択します。
-
[関連付け] ダイアログボックスで、ディストリビューションまたはキャッシュビヘイビアを選択します。[イベントタイプ] は、デフォルト値のままにします。
-
[Add association] を選択します。
関連付けられているディストリビューションは、[関連付けられているディストリビューション] テーブルに表示されます。
-
関連付けられたディストリビューションのデプロイが完了するまで数分待ちます。ディストリビューションのステータスを確認するには、[関連づけられているディストリビューション] テーブルでディストリビューションを選択し、[ディストリビューションを表示] を選択します。
ディストリビューションのステータスが [Deployed] になったら、関数の動作を確認できます。
関数を検証する
関数をデプロイしたら、ディストリビューションで機能することを検証できます。
関数を検証するには
-
ウェブブラウザで、ディストリビューションのドメイン名 (
https://d111111abcdef8.cloudfront.net
など) に移動します。関数はブラウザにリダイレクトを返すため、ブラウザは自動的に
https://aws.amazon.com/cloudfront/
に移動します。 -
コマンドラインウィンドウで、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==