

# CloudFront Functions を使用してエッジでカスタマイズする
<a name="cloudfront-functions"></a>

CloudFront Functions を使用すると、JavaScript で軽量な関数を記述し、レイテンシーの影響を受けやすい CDN カスタマイズを大規模に実行できます。関数を使用して、CloudFront を通過するリクエストとレスポンスの操作、基本認証と認可の実行、エッジでの HTTP レスポンスの生成などを行うことができます。CloudFront Functions の runtime 環境は、起動時間が 1 ミリ秒未満、毎秒数百万のリクエストを処理するようにすぐにスケールでき、高い安全性を誇ります。CloudFront Functions は、CloudFront のネイティブ関数です。つまり、CloudFront 内でコードを完全に構築、テスト、デプロイできます。

CloudFront 関数を CloudFront ディストリビューションに関連付けると、CloudFront が CloudFront エッジロケーションでリクエストとレスポンスをインターセプトし、この関数に送ります。以下のイベントが発生したら、CloudFront Functions を呼び出すことができます。
+ CloudFront がビューワーからリクエストを受信したとき (ビューワーリクエスト)
+ CloudFront がビューワーにレスポンスを返す前 (ビューワーレスポンス)
+ TLS 接続の確立 (接続リクエスト) 中 - 相互 TLS (mTLS) 接続で現在利用可能です

CloudFront Functions の詳細については、以下のトピックを参照してください。

**Topics**
+ [チュートリアル: CloudFront Functions でシンプルな関数を作成する](functions-tutorial.md)
+ [チュートリアル: キー値を含む関数を作成する](functions-tutorial-kvs.md)
+ [関数コードを記述する](writing-function-code.md)
+ [関数を作成する](create-function.md)
+ [関数をテストする](test-function.md)
+ [関数を更新する](update-function.md)
+ [関数を発行する](publish-function.md)
+ [関数をディストリビューションに関連付ける](associate-function.md)
+ [Amazon CloudFront KeyValueStore](kvs-with-functions.md)