翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
CloudFront Lambda@Edge 関数をトリガーできる イベント
CloudFront ディストリビューション内のキャッシュ動作ごとに、特定の CloudFront イベントが発生したときに Lambda 関数が実行されるトリガー (関連付け) を最大 4 つ追加できます。 CloudFront トリガーは、次の図に示すように、4 つの CloudFront イベントのいずれかに基づくことができます。
Lambda@Edge 関数をトリガーするために使用できる CloudFront イベントは次のとおりです。
- ビューワーリクエスト
-
関数は、ビューワーからリクエスト CloudFront を受信したときに実行され、リクエストされたオブジェクトが CloudFront キャッシュ内にあるかどうかを確認します。
- オリジンリクエスト
-
関数は、 がリクエストをオリジン CloudFront に転送する場合にのみ実行されます。リクエストされたオブジェクトが CloudFront キャッシュにある場合、関数は実行されません。
- オリジンレスポンス
-
関数は、オリジンからレスポンス CloudFront を受信した後、レスポンスでオブジェクトをキャッシュする前に実行されます。関数は、オリジンからエラーが返された場合でも実行されることに注意してください。
次の場合には関数は実行されません。
-
リクエストされたファイルが CloudFront キャッシュにあり、有効期限が切れていない場合。
-
オリジンリクエストイベントによってトリガーされた関数からレスポンスが生成された場合。
-
- ビューワーレスポンス
-
リクエストされたファイルがビューワーに返される前に関数が実行されます。ファイルが CloudFront キャッシュ内にすでに存在するかどうかに関係なく、関数が実行されることに注意してください。
次の場合には関数は実行されません。
-
オリジンが HTTP ステータスコードとして 400 以上を返した場合。
-
カスタムエラーページが返された場合。
-
ビューワーリクエストイベントによってトリガーされた関数からレスポンスが生成された場合。
-
が HTTP リクエストを HTTPS CloudFront に自動的にリダイレクトする場合 ( の値が HTTP を ビューワープロトコルポリシー HTTPS にリダイレクトする場合)。
-
同じキャッシュ動作に複数のトリガーを追加する場合、各トリガーに対して同じ関数を実行することも、異なる関数を実行することもできます。また、複数のディストリビューションに同じ関数を関連付けることもできます。
注記
CloudFront イベントによって Lambda 関数の実行がトリガーされると、 が CloudFront 続行する前に関数が終了する必要があります。例えば、Lambda 関数がCloudFront ビューワーリクエストイベントによってトリガーされた場合、Lambda CloudFront 関数の実行が終了するまで、ビューワーにレスポンスを返したり、リクエストをオリジンに転送したりすることはありません。つまり、Lambda 関数をトリガーするリクエストごとにリクエストのレイテンシーが長くなるため、関数をできるだけ速く実行する必要があります。