Edge Side Codeの非推奨
Edge Side Code (ESC) は、Cloudflareのグローバルネットワーク機能のカスタマイズオプションであり、いくつかのエンタープライズ顧客によって使用されています。このコードは、CloudflareのCDNの動作を変更し、特定の顧客のユースケースに対するロジックを有効にします。現在、いくつかの顧客がESCを使用して、ヘッダーの高度な操作やホストヘッダーの切り替えなどの特別な操作を実行しています。
Edge Side Codeは現在非推奨です。 現在ESCを介して行われているすべての設定は、2025-01-01に削除されます。ESCを使用している場合は、この日付までに現在のESC設定を置き換えるために他のCloudflare製品を設定する必要があります。
現在アカウントがESCを使用している場合、アカウントチームが連絡を取り、ESCから他の既存のCloudflare製品への移行について話し合うことができます。
以下の表には、ESCのさまざまなユースケースに対する推奨事項が含まれています:
| ユースケース | 説明 | 代替案 |
|---|---|---|
| URLへのリダイレクト | リクエストをオリジンサーバーに送信することなく、訪問者を別のURLにナビゲートします。 | Single Redirects または Bulk Redirectsを使用します。 |
| SNIの書き換え | オリジンサーバーに接続する際に使用されるTLS SNIのホスト名を上書きします。 | Origin Rulesを使用して、リクエストのサーバー名インディケーション(SNI)値を上書きします。 Cloudflare for SaaS顧客は、custom hostnamesを介してSNIの書き換えを実行できます。 |
| 解決の上書き | オリジンサーバーに到達するために使用される解決されたホスト名を上書きします。 | Origin Rulesを使用して、受信リクエストの解決されたホスト名を上書きします。 |
| URIの書き換え | 訪問者のブラウザに元のリクエストURLを表示しながら、オリジンサーバーから異なるURLをリクエストします。 | Transform Rulesを使用してURLをリライトします。 |
| リクエストヘッダーの設定/クリア | オリジンサーバーに送信されるHTTPヘッダーを設定(またはクリア)します。 | Transform Rulesを使用してリクエストヘッダーを変更します。 |
| 機能の例外 | 1つまたは複数のCloudflareセキュリティ製品から特定のリクエストを除外します。 | Configuration Rulesを使用します。 |
| カスタムエラーレスポンスの送信 | 現在のリクエストを中止し、特定のレスポンスボディおよび/またはHTTPステータスコードをクライアントに返します。 | custom error responsesを使用して、オリジンサーバーまたはCloudflare製品(Workersを含む)から返されるエラーに対するカスタムレスポンスを定義します。 |
| レスポンスヘッダーの設定/追加/削除 | オリジンサーバーから返されるレスポンスのヘッダーを更新、追加、または削除します。 | Transform Rulesを使用してレスポンスヘッダーを変更します。 |
| ステータスリダイレクト | オリジンからのレスポンスを受け取った後、オリジンのレスポンスコードが提供されたテーブルのキーと一致する場合に、条件付きでクライアントにリダイレクトを送信します。 | Cloudflare Workersを使用します。類似のユースケースについては、Modify responseの例を参照してください。 |
| レスポンスにクッキーを追加 | クライアントに送信されるレスポンスにクッキーを設定します。 | Transform Rulesを使用してレスポンスヘッダーを変更します(クッキーの設定を含む)。 |
より複雑なユースケースについては、Cloudflare Workersの使用を検討してください。
はい、APIを介してESCを無効にすることができます。APIを使用すると、次のことができます:
- アカウントまたはゾーンに対するESCの無効化の影響を理解します。
- サンセット日以前に、他のCloudflare製品(およびESCを無効にした状態)で代替設定をテストします。
利用可能なAPI操作を使用すると、次のことができます:
- 個別リクエストのESCを無効にする: 特定のシークレットを含むクッキーを持つテストリクエストは、ESCが無効にされた状態で処理されます。
- 特定のゾーンのESCを無効/有効にする: ゾーンのESCを無効にすると、そのゾーンへのすべての受信リクエストはすべてのESC設定が無効になります。
- アカウント全体のESCを無効/有効にする: アカウントのESCを無効にすると、そのアカウント内のすべてのゾーンへのすべての受信リクエストはすべてのESC設定が無効になります。
Cloudflareは、トリガーされたルールと得られたレスポンスが期待通りであることを確認するために、個別のHTTPリクエストを使用してテストを開始することを推奨しています。
まず、シークレットを設定し、特定のリクエストのためにESCを無効にするためにリクエストクッキーに含めます。
これらのテストが成功した場合は、ゾーン全体のESCを無効にします。ESCが無効になった状態で設定が意図した通りに機能することを確認するために、追加のテストを実施します。問題が検出された場合は、ゾーンのESCを再有効化します。
必要に応じて、アカウント全体のESCを無効にすることもできます。これにより、アカウント内のすべてのゾーンへのすべての受信リクエストに影響します。
利用可能なAPI操作を使用すると、アカウント/ゾーンのESCを無効にし、数秒でESCを再有効化することができます。
また、アカウントまたはゾーンのESCの状態(無効または有効)を変更せずに、リクエストごとのテストを実行するためのシークレットを設定することもできます。この機能を使用して、適切なルールがトリガーされているか、リクエスト/レスポンスが期待通りであるかを確認します。
個別リクエストのESCを無効/有効にするには、次の手順を実行します:
-
Create ESC secret for a zoneまたはCreate ESC secret for an account操作を使用して、シークレット(最大100文字)を作成します。
-
テストリクエストに
disable_escという名前のクッキーを使用してシークレットを含めます。これにより、前のステップで使用したエンドポイントのスコープ(ゾーンまたはアカウント)に応じて、これらのテストリクエストに対してのみESCが無効になります。以下の例のHTTPリクエストヘッダーは、現在のリクエストに対してESCを無効にするためのクッキーを定義しています:Cookie: disable_esc=<SECRET>
ゾーンのESCの状態を変更するには、次の操作を使用します:
アカウントのESCの状態を変更するには、次の操作を使用します:
| 名前 | HTTP動詞 | エンドポイント |
|---|---|---|
| ゾーンのESCシークレットまたはステータスを取得 | GET | /zones/{zone_id}/disable_esc |
| ゾーンのESCシークレットを作成 | POST | /zones/{zone_id}/disable_esc |
| ゾーンのESCを無効にする | POST | /zones/{zone_id}/disable_esc |
| ゾーンのESCを再有効化する | DELETE | /zones/{zone_id}/disable_esc |
| アカウントのESCシークレットまたはステータスを取得 | GET | /accounts/{account_id}/disable_esc |
| アカウントのESCシークレットを作成 | POST | /accounts/{account_id}/disable_esc |
| アカウントのESCを無効にする | POST | /accounts/{account_id}/disable_esc |
| アカウントのESCを再有効化する | DELETE | /accounts/{account_id}/disable_esc |
API操作を呼び出すには、操作エンドポイントをCloudflare APIのベースURLに追加します:
https://api.cloudflare.com/client/v4この例では、指定されたゾーンのDisable ESC設定の現在のステータスを取得します。同じエンドポイントは、設定されている場合、ゾーンの現在のESCシークレットも返します。
curl "https://api.cloudflare.com/client/v4/zones/{zone_id}/disable_esc" \--header "X-Auth-Key: <API_KEY>" \--header "X-Auth-Email: <EMAIL>"以下の例のレスポンスは、ESCが全体の{zone_id}ゾーンに対して無効であることを示しています:
{"always": true}以下の例のレスポンスには、Create ESC secret for a zone操作を使用して、ゾーンのために以前に設定されたシークレットが含まれています:
{"with_secret": "<SECRET>"}このPOSTリクエストの例は、特定のリクエストのためにESCを無効にするためのESCシークレットを{zone_id}ゾーンに設定し、シークレットをMySecretString321#に設定します。
curl "https://api.cloudflare.com/client/v4/zones/{zone_id}/disable_esc" \--header "X-Auth-Key: <API_KEY>" \--header "X-Auth-Email: <EMAIL>" \--header "Content-Type: application/json" \--data '{ "with_secret": "MySecretString321#" }'シークレットの最大長は100文字です。
シークレットを使用するには、ESCを無効にしたいリクエストにシークレット値を持つdisable_escという名前のクッキーを含めます:
curl "https://example.com/company_app" \--header "Cookie: disable_esc=MySecretString321#"これにより、クッキーを含むリクエストに対してのみESCが無効になります。
このPOSTリクエストの例は、{zone_id}ゾーンのすべての受信リクエストに対してESCを無効にします。
curl "https://api.cloudflare.com/client/v4/zones/{zone_id}/disable_esc" \--header "X-Auth-Key: <API_KEY>" \--header "X-Auth-Email: <EMAIL>" \--header "Content-Type: application/json" \--data '{ "always": true }'この例は、{zone_id}ゾーンのESCを再有効化します。
curl --request DELETE \"https://api.cloudflare.com/client/v4/zones/{zone_id}/disable_esc" \--header "X-Auth-Key: <API_KEY>" \--header "X-Auth-Email: <EMAIL>"この例では、指定されたアカウントのDisable ESC設定の現在のステータスを取得します。同じエンドポイントは、設定されている場合、アカウントの現在のESCシークレットも返します。
curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/disable_esc" \--header "X-Auth-Key: <API_KEY>" \--header "X-Auth-Email: <EMAIL>"以下の例のレスポンスは、ESCが全体の{account_id}アカウントに対して無効になっていることを示しています:
{ "always": true }以下の例のレスポンスには、Create ESC secret for an account操作を使用してアカウントのために以前に設定されたシークレットが含まれています:
{ "with_secret": "<SECRET>" }この例では、{account_id}アカウントの特定のリクエストでESCを無効にするためのESCシークレットを設定し、シークレットをMySecretString321#に設定します。
curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/disable_esc" \--header "X-Auth-Key: <API_KEY>" \--header "X-Auth-Email: <EMAIL>" \--header "Content-Type: application/json" \--data '{ "with_secret": "MySecretString321#" }'最大シークレット長は100文字です。
シークレットを使用するには、ESCを無効にしたいリクエストにシークレット値を持つdisable_escという名前のクッキーを含めます:
curl "https://example.com/company_app" \--header "Cookie: disable_esc=MySecretString321#"これは、クッキーを含むリクエストに対してのみESCを無効にします。
このPOSTリクエストの例は、{account_id}アカウントのすべての受信リクエストに対してESCを無効にします。
curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/disable_esc" \--header "X-Auth-Key: <API_KEY>" \--header "X-Auth-Email: <EMAIL>" \--header "Content-Type: application/json" \--data '{ "always": true }'この例は、{account_id}アカウントのESCを再有効化します。
curl --request DELETE \"https://api.cloudflare.com/client/v4/accounts/{account_id}/disable_esc" \--header "X-Auth-Key: <API_KEY>" \--header "X-Auth-Email: <EMAIL>"現在ESCを使用して行われている一部の設定は、他のCloudflare製品では直接利用できません。この稀な状況では、CloudflareはESCを通じて現在得られているカスタム動作を中止し、あなたのユースケースに対する代替ソリューションを理解する手助けをします。