Lambda@Edge 関数を作成する - Amazon CloudFront

Lambda@Edge 関数を作成する

CloudFront イベントに基づく Lambda 関数を実行するように AWS Lambda をセットアップするには、以下の手順に従います。

ターゲットの Lambda@Edge 関数を作成するには
  1. AWS Management Console にサインインして AWS Lambda コンソール (https://console.aws.amazon.com/lambda/) を開きます。

  2. 1 つ以上の Lambda 関数が既にある場合は、[Create function] を選択します。

    関数がない場合は、[Get Started Now] を選択します。

  3. ページの上部にあるリージョンのリストで、[米国東部 (バージニア北部)] を選択します。

  4. 独自のコードを使用して関数を作成するか、CloudFront の設計図で始まる関数を作成します。

    • 独自のコードを使用して関数を作成するには、[Author from scratch] を選択します。

    • CloudFront のブループリントを一覧表示するには、フィルタフィールドに「cloudfront」と入力し、Enter キーを選択します。

      使用するブループリントを見つけたら、ブループリントの名前を選択します。

  5. [基本情報] セクションで、以下の値を指定します。

    1. 名前 - 関数の名前を入力します。

    2. ロール – すぐに開始するには、[テンプレートから新しいロールを作成する複数] を選択します。[既存のロールを選択] または [カスタムロールを作成] を選択し、プロンプトに従ってこのセクションの情報を完了することもできます。

    3. ロール名 - ロールの名前を入力します。

    4. ポリシーテンプレート[基本的な Edge Lambda のアクセス許可] を選択します。

  6. ステップ 4 で [Author from scratch] を選択した場合は、ステップ 7 に進んでください。

    ステップ 4 で設計図を選択した場合は、[cloudfront] セクションで、この関数を CloudFront ディストリビューションおよび CloudFront イベントのキャッシュに関連付ける 1 つのトリガーを作成できます。この時点で [Remove] を選択することをお勧めします。そのため、関数の作成時にトリガーはありません。後でトリガーを追加できます。

    ヒント

    トリガーを追加する前に、関数をテストおよびデバッグすることをお勧めします。代わりにトリガーを追加する場合、関数を作成するとすぐに関数が実行され、世界各地の AWS ロケーションへのレプリケーションが完了し、対応するディストリビューションがデプロイされます。

  7. [Create function (関数の作成)] を選択します。

    Lambda は関数 $LATEST とバージョン 1 の 2 つのバージョンを作成します。$LATEST バージョンのみを編集できますが、コンソールに最初はバージョン 1 が表示されます。

  8. 関数を編集するには、関数の ARN の下にあるページの上部にある [Version 1] を選択します。次に [Versions] タブで [$LATEST] を選択します。(その関数をそのままにしてから戻った場合、ボタンラベルは [Qualifiers] となります)。

  9. [Configuration] タブで、該当する [Code entry type] を選択します。次に、プロンプトに従ってコードを編集またはアップロードします。

  10. [ランタイム] で、関数のコードに基づいて値を選択します。

  11. [Tags] セクションで、該当するタグを追加します。

  12. [Actions] を選択し、[Publish new version] を選択します。

  13. 新しいバージョンの関数に関する説明を入力します。

  14. [Publish] を選択します。

  15. 関数をテストおよびデバッグします。Lambda コンソールでのテストの詳細については、「AWS Lambda 開発者ガイド」の「コンソールを使用して Lambda 関数を呼び出す」を参照してください。

  16. CloudFront イベントに対して関数を実行する準備ができたら、別のバージョンを公開し、トリガーを追加する関数を編集します。詳細については、「Lambda@Edge 関数のトリガーを追加する」を参照してください。