Lambda@Edge 関数のトリガーに使用する CloudFront イベントを決定する方法 - Amazon CloudFront

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Lambda@Edge 関数のトリガーに使用する CloudFront イベントを決定する方法

Lambda 関数のトリガーに使用する CloudFront イベントを決定するときは、次の点を考慮してください。

Lambda 関数によって変更されたオブジェクトをキャッシュ CloudFront しますか?

Lambda 関数によって変更されたオブジェクトをキャッシュ CloudFront して、次回リクエストされたときに がエッジロケーションからオブジェクトを提供 CloudFront できるようにする場合は、オリジンリクエストまたはオリジンレスポンスイベントを使用します。これにより、オリジンの負荷と以降のリクエストのレイテンシーが軽減され、以降のリクエストで Lambda@Edge を呼び出すコストが削減されます。

例えば、オリジンから返されたオブジェクトのヘッダーを追加、削除、または変更し、結果を CloudFront キャッシュする場合は、オリジンレスポンスイベントを使用します。

すべてのリクエストに対して関数を実行するかどうか

がディストリビューションに対して CloudFront 受信するすべてのリクエストに対して関数を実行する場合は、ビューワーリクエストまたはビューワーレスポンスイベントを使用します。オリジンリクエストイベントとオリジンレスポンスイベントは、リクエストされたオブジェクトがエッジロケーションにキャッシュされておらず、リクエストをオリジン CloudFront に転送する場合にのみ発生します。

関数でキャッシュキーを変更するかどうか

キャッシュ条件として使用している値を関数で変更する場合はビューワーリクエストイベントを使用します。たとえば、関数で URL を変更してパスに言語の省略形を含める場合 (ユーザーがドロップダウンリストから言語を選択した場合など) は、ビューワーリクエストイベントを使用します。

  • ビューワーリクエストの URL – https://example.com/en/index.html

  • リクエストがドイツの IP アドレスから送信された場合の URL – https://example.com/de/index.html

Cookie またはリクエストヘッダーをキャッシュ条件として使用している場合もビューワーリクエストイベントを使用します。

注記

関数が Cookie またはヘッダーを変更する場合は、リクエストの該当する部分をオリジン CloudFront に転送するように を設定します。詳細については、次のトピックを参照してください。

関数がオリジンからのレスポンスに影響するかどうか

関数でリクエストに加える変更がオリジンからのレスポンスに影響する場合は、オリジンリクエストイベントを使用します。通常、ほとんどのビューワーリクエストイベントは、既にエッジキャッシュに存在するオブジェクトを使用して CloudFront がリクエストに応答するため、オリジンに転送されません。関数がオリジンリクエストイベントに基づいてリクエストを変更すると、 は変更されたオリジンリクエストへのレスポンスを CloudFront キャッシュします。