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

Lambda 関数をトリガーできる CloudFront イベント

CloudFront ディストリビューションの各キャッシュ動作に、次の 1 つ以上の CloudFront イベントの発生時に Lambda 関数を実行するトリガー (関連付け) を 4 つまで追加できます。同じキャッシュ動作に複数のトリガーを追加する場合、それらのトリガーに対して同じ関数を使用することも、異なる関数を使用することもできます。複数のディストリビューションに対して同じ関数を使用することもできます。

注記

CloudFront イベントによって Lambda 関数の実行がトリガーされると、その関数が完了するまで CloudFront の処理は続行されません。たとえば、CloudFront ビューワーリクエストイベントに Lambda 関数を関連付けると、その Lambda 関数が完了するまで、ビューワーにレスポンスが返されることも、リクエストがオリジンに転送されることもありません。Lambda 関数をトリガーするリクエストではリクエストのレイテンシーが増加するため、関数をできるだけ速く実行することをお勧めします。

CloudFront ビューワーリクエスト

CloudFront がビューワーからリクエストを受け取った後、リクエストされたオブジェクトがエッジキャッシュにあるかどうかを確認する前に関数が実行されます。

CloudFront オリジンリクエスト

CloudFront がリクエストをオリジンに転送する場合にのみ関数が実行されます。リクエストされたオブジェクトがエッジキャッシュにある場合は実行されません。

CloudFront オリジンレスポンス

CloudFront がオリジンからのレスポンスを受け取った後、レスポンス内のオブジェクトをキャッシュする前に関数が実行されます。

次の場合には関数は実行されません。

  • リクエストされたオブジェクトがエッジキャッシュにある場合

  • オリジンが 400 以上の HTTP ステータスコードを返した場合

  • オリジンリクエストイベントによってトリガーされた関数からレスポンスが生成された場合

CloudFront ビューワーのレスポンス

リクエストされたオブジェクトがビューワーに返される前に関数が実行されます。オブジェクトがすでにエッジキャッシュに存在するかどうかに関係なく関数が実行されます。

次の場合には関数は実行されません。

  • オリジンが 400 以上の HTTP ステータスコードを返した場合

  • ビューワーリクエストイベントによってトリガーされた関数からレスポンスが生成された場合

  • CloudFront で HTTP リクエストが自動的に HTTPS にリダイレクトされる場合 ([ビューワープロトコルポリシー] の値が [Redirect HTTP to HTTPS] の場合)