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

イベントの構造

以下は、リクエストイベントとレスポンスイベントの例です。

リクエストイベント

以下に示すのは、CloudFront のビューワーリクエストイベントまたはオリジンリクエストイベントによって関数がトリガーされた場合に CloudFront から Lambda 関数に渡されるイベントオブジェクトの形式です。

Copy
{ "Records": [ { "cf": { "config": { "distributionId": "EDFDVBD6EXAMPLE" }, "request": { "clientIp": "2001:0db8:85a3:0:0:8a2e:0370:7334", "method": "GET", "uri": "/picture.jpg", "headers": { "host": [ { "key": "Host", "value": "d111111abcdef8.cloudfront.net" } ], "user-agent": [ { "key": "User-Agent", "value": "curl/7.51.0" } ] } } } } ] }

リクエストイベントには次の値が含まれます。

  • distributionId (読み取り専用) – リクエストに関連付けられているディストリビューションの ID。

  • clientIp (読み取り専用) – リクエスト元のビューワーの IP アドレス。ビューワーが HTTP プロキシまたはロードバランサーを使用してリクエストを送った場合、この値はプロキシまたはロードバランサーの IP アドレスです。

  • method (読み取り専用) – ビューワーリクエストの HTTP メソッド。

  • uri (読み取り/書き込み) – リクエストされたオブジェクトの相対パス。次の点に注意してください。

    • 新しい相対パスは「/」で始まる必要があります。

    • 関数でリクエストの URI を変更すると、ビューワーがリクエストしているオブジェクトが変更されます。

    • 関数でリクエストの URI を変更しても、リクエストのキャッシュ動作や転送先オリジンは変わりません。

  • headers (読み取り/書き込み) – リクエストのヘッダー。headers オブジェクトのキーは、HTTP リクエストのヘッダー名を小文字にしたものです。これらの小文字のキーにより、大文字と小文字を区別せずにヘッダー値にアクセスできます。各ヘッダー (headers["accept"]headers["host"] など) は、キーと値のペアの配列です。key は、HTTP リクエストに含まれる、大文字と小文字が区別されるヘッダー名です。value はヘッダー値です。配列の要素の数は、ヘッダーが HTTP リクエストに出現する回数です。

    ヘッダー使用の制限の詳細については、「ヘッダー制限」を参照してください。

レスポンスイベント

以下に示すのは、CloudFront のビューワーレスポンスイベントまたはオリジンレスポンスイベントによって関数がトリガーされた場合に CloudFront から Lambda 関数に渡されるイベントオブジェクトの形式です。

Copy
{ "Records": [ { "cf": { "config": { "distributionId": "EDFDVBD6EXAMPLE" }, "request": { "clientIp": "2001:0db8:85a3:0:0:8a2e:0370:7334", "method": "GET", "uri": "/picture.jpg", "headers": { "host": [ { "key": "Host", "value": "d111111abcdef8.cloudfront.net" } ], "user-agent": [ { "key": "User-Agent", "value": "curl/7.18.1" } ] } }, "response": { "status": "200", "statusDescription": "OK", "headers": { "server": [ { "key": "Server", "value": "MyCustomOrigin" } ], "set-cookie": [ { "key": "Set-Cookie", "value": "theme=light" }, { "key": "Set-Cookie", "value": "sessionToken=abc123; Expires=Wed, 09 Jun 2021 10:18:14 GMT" } ] } } } } ] }

レスポンスイベントには次の値が含まれます。

  • distributionId (読み取り専用) – リクエストに関連付けられているディストリビューションの ID。

  • request – 次のいずれかです。

    • ビューワーのレスポンス – CloudFront がビューワーから受け取ったリクエスト。ビューワーリクエストイベントによってトリガーされた Lambda 関数によって変更されている可能性があります。

    • オリジンのレスポンス – CloudFront がオリジンに転送したリクエスト。オリジンリクエストイベントによってトリガーされた Lambda 関数によって変更されている可能性があります。

    Lambda 関数によってリクエストオブジェクトが変更された場合、その変更は無視されます。

  • response – 次のいずれかです。

    • ビューワーのレスポンス – CloudFront がビューワーレスポンスイベントでビューワーに返すレスポンス

    • オリジンのレスポンス – CloudFront がオリジンレスポンスイベントでオリジンから受け取ったレスポンス

  • status (読み取り専用) – CloudFront がビューワーに返す HTTP ステータスコード (200 など)。

  • statusDescription (読み取り専用) – CloudFront がビューワーに返す HTTP ステータスの説明 (OK など)。

  • headers (読み取り/書き込み) – レスポンスのヘッダー。headers オブジェクトのキーは、HTTP レスポンスのヘッダー名を小文字にしたものです。これらの小文字のキーにより、大文字と小文字を区別せずにヘッダー値にアクセスできます。各ヘッダー (headers["set-cookie"]headers["server"] など) は、キーと値のペアの配列です。key は、HTTP レスポンスに含まれる、大文字と小文字が区別されるヘッダー名です。value はヘッダー値です。配列の要素の数は、ヘッダーが HTTP レスポンスに出現する回数です。

    ヘッダー使用の制限の詳細については、「ヘッダー制限」を参照してください。