メニュー
Amazon CloudFront
開発者ガイド (API Version 2016-09-29)

HTTP レスポンスの生成

Lambda 関数を使用して、次の CloudFront イベントの発生時に HTTP レスポンスを生成できます。

  • ビューワーリクエストイベント – ビューワーリクエストイベントによって関数がトリガーされた場合、CloudFront はエッジキャッシュの確認やオリジンへのリクエストの転送を行いません。

  • オリジンリクエストイベント – オリジンリクエストイベントによって関数がトリガーされた場合、CloudFront は、まずエッジキャッシュを確認し、リクエストされたオブジェクトがキャッシュにない場合はリクエストをオリジンに転送します。

レスポンスのヘッダーと本文は、HTTP リクエストのコンテンツに基づいて生成できます。どちらのタイプのイベントでも、Lambda 関数を使用して HTTP レスポンスを生成するとオリジンの負荷が軽減されます。

HTTP レスポンスを生成する例については、「関数の例」を参照してください。

プログラミングモデル

このセクションでは、Lambda@Edge を使用した HTTP レスポンス生成のプログラミングモデルについて詳しく説明します。

エラー

生成された HTTP レスポンスで発生する可能性があるエラーを以下に示します。

HTTP のコンテンツのないレスポンスに本文フィールドが含まれる

CloudFront ビューワーリクエストから生成される HTTP 204 ステータスコード (No Content) のレスポンスには、メッセージ本文は含まれません。メッセージ本文がレスポンスに含まれている場合、HTTP 502 ステータスコード (Bad Gateway) がビューワーに返されます。

これは、HTTP 204 レスポンスにはメッセージ本文を含める必要がないことを述べている RFC 2616 のオプションの制限を Lambda@Edge が適用しているためです。

レスポンスサイズの制限

Lambda 関数によって生成されるレスポンスの最大サイズ (ヘッダーと本文を含む) は、関数をトリガーするイベントによって異なります。

  • ビューワーリクエストイベント – 40 KB

  • オリジンリクエストイベント – 256 KB

レスポンスがこの許容サイズを超えていると、HTTP 502 ステータスコード (Bad Gateway) がビューワーに返されます。

必須フィールド

status フィールドは必須です。

その他のすべてのフィールドはオプションです。

このページの内容: