Cloudflare Snippets を使うと、Cloudflare のネットワーク上で短い JavaScript を実行し、サイトやアプリケーションのリクエストとレスポンスの扱いをカスタマイズできます。Snippets では、HTTP レスポンスヘッダーの変更、JWT の検証、複雑な リダイレクト などを実装できます。
よくある用途向けのコードサンプルは、Examples を参照してください。
スニペットを作成してデプロイするには、次の要素を定義します。
- Snippet rule: Snippet を適用するリクエストを決める フィルター式 です。各スニペットに関連付けられる snippet rule は 1 つだけです。
- Code snippet: 関連する snippet rule にリクエストが一致したときに、Cloudflare ネットワーク上で動く JavaScript です。
詳細は Snippets の仕組み と ダッシュボードでスニペットを作成する を参照してください。
Cloudflare は、よくあるユースケース向けのルールテンプレートを提供しています。
-
Cloudflare ダッシュボードで、Rules の Overview ページを開きます。
Overview を開く ↗ -
Templates を選び、利用可能なテンプレートのいずれかを選びます。
開発者向けドキュメントの Examples ギャラリー も参照できます。
| Free | Pro | Business | Enterprise | |
|---|---|---|---|---|
| 利用可否 | 不可 | 可 | 可 | 可 |
| スニペット数 | 0 | 25 | 50 | 300 |
| スニペットのサブリクエスト数 | 0 | 2 | 3 | 5 |
リダイレクトチェーン内の各 サブリクエスト は、サブリクエスト上限に加算されます。サブリクエストがリダイレクトされると、2 回分として数えられます。問題を避けるため、リダイレクトチェーンの最終到達先へサブリクエストしてください。
現在、Version Management は Snippets に対応していません。
Cloudflare Snippets は、Cloudflare ネットワーク上で動く、高速で軽量なロジック向けです。次の制限が適用されます。
| 説明 | 全プラン |
|---|---|
| 最大実行時間 | 5 ms |
| 最大メモリ | 2 MB |
| パッケージサイズの上限 | 32 KB |
Snippets と Workers のどちらを選ぶか迷っていますか?
ベストプラクティス、実際のユースケース、実装例は 詳細ガイド を参照してください。
Rules 機能の実行順序は次のとおりです。
- Single Redirects
- URL Rewrite Rules
- Configuration Rules
- Origin Rules
- Bulk Redirects
- Managed Transforms
- Request Header Transform Rules
- Cache Rules
- Snippets
- Cloud Connector
上記の各種ルールは Page Rules より優先されます。Page Rules と上記の Rules 製品の両方に一致する場合、Page Rules は上書きされます。
一般的に、終了しないアクション では、同じ フェーズ 内のルールによる最後の変更が優先されます(後のルールは、前のルールによる変更を上書きできます)。一方、終了アクション(Block、Redirect、またはチャレンジアクションのいずれか)では、ルールの評価が止まり、そのアクションがすぐに実行されます。
たとえば、Redirect アクションを持つ複数のルールが一致した場合、Cloudflare は常に最初に一致したルールの URL リダイレクトを使います。また、異なる Cloudflare 製品(Single Redirects と Bulk Redirects)で URL リダイレクトを設定している場合、ルールが一致すれば、先に実行される製品が適用されます(この場合は Single Redirects)。
製品の実行順序については、フェーズ一覧 を参照してください。