翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Lambda@Edge を使用したエッジでのカスタマイズ
Lambda@Edge は AWS Lambda の拡張です。Lambda@Edge は、 が CloudFront 配信するコンテンツをカスタマイズする関数を実行できるコンピューティングサービスです。1 つのリージョン、米国東部 (バージニア北部) で Node.js または Python 関数を作成し、それらをビューワーに近い AWS ロケーションで実行することができ、サーバーをプロビジョニングしたり管理したりする必要はありません。Lambda@Edge は、1 日あたり数個のリクエストから 1 秒あたり数千のリクエストまで自動的にスケーリングします。オリジンサーバーの代わりに、ビューワーの最寄りの AWS ロケーションでリクエストを処理すると、レイテンシーが大幅に軽減され、ユーザーエクスペリエンスが向上します。
CloudFront ディストリビューションを Lambda@Edge 関数に関連付けると、 は CloudFront エッジロケーションでリクエストとレスポンスを CloudFront インターセプトします。Lambda 関数は、次の CloudFront イベントが発生したときに実行できます。
-
がビューワーからリクエスト CloudFront を受け取る場合 (ビューワーリクエスト)
-
がリクエストをオリジン CloudFront に転送する前に (オリジンリクエスト)
-
がオリジンからレスポンス CloudFront を受信する場合 (オリジンレスポンス)
-
がビューワーにレスポンスを CloudFront 返す前 (ビューワーレスポンス)
Lambda@Edge の処理にはさまざまな用途があります。次に例を示します。
-
Lambda 関数 は Cookie を検査して URL を書き換え、A/B テスト用に異なるバージョンのサイトをユーザーに表示できます。
-
CloudFront は、デバイスに関する情報を含む
User-Agent
ヘッダーをチェックすることで、使用しているデバイスに基づいて異なるオブジェクトをビューワーに返すことができます。例えば、 CloudFront はデバイスの画面サイズに基づいて異なるイメージを返すことができます。同様に、この関数はReferer
ヘッダーの値を考慮し、 CloudFront が使用可能な解像度が最も低いボットにイメージを返すように設定できます。 -
または、他の条件の Cookie を確認できます。例えば、靴を販売する小売ウェブサイトで、Cookie を使用してユーザーがどの色をレストランに選択したかを示す場合、Lambda 関数はリクエストを変更して、 が CloudFront選択した色のレストランのイメージを返すようにできます。
-
Lambda 関数は、 CloudFront ビューワーリクエストまたはオリジンリクエストイベントが発生したときに HTTP レスポンスを生成できます。
-
関数は、リクエストをオリジン CloudFront に転送する前に、ヘッダーまたは認証トークンを検査し、コンテンツへのアクセスを制御するヘッダーを挿入できます。
-
Lambda 関数は、外部リソースのネットワーク呼び出しを実行して、ユーザー認証情報を確認したり、追加のコンテンツを取得してレスポンスをカスタマイズしたりすることもできます。
サンプルコードと追加の例については、「Lambda@Edge 関数の例」を参照してください。