CloudFront Lambda@Edge 関数をトリガーできる イベント - Amazon CloudFront

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

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

CloudFront ディストリビューション内のキャッシュ動作ごとに、特定の CloudFront イベントが発生したときに Lambda 関数が実行されるトリガー (関連付け) を最大 4 つ追加できます。 CloudFront トリガーは、次の図に示すように、4 つの CloudFront イベントのいずれかに基づくことができます。


					と統合する Lambda 関数の CloudFront トリガーイベントを示す概念図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 関数をトリガーするリクエストごとにリクエストのレイテンシーが長くなるため、関数をできるだけ速く実行する必要があります。