コンテンツにスキップ

Edge Side Codeの非推奨

Edge Side Code (ESC) は、Cloudflareのグローバルネットワーク機能のカスタマイズオプションであり、いくつかのエンタープライズ顧客によって使用されています。このコードは、CloudflareのCDNの動作を変更し、特定の顧客のユースケースに対するロジックを有効にします。現在、いくつかの顧客がESCを使用して、ヘッダーの高度な操作やホストヘッダーの切り替えなどの特別な操作を実行しています。

Edge Side Codeは現在非推奨です。 現在ESCを介して行われているすべての設定は、2025-01-01に削除されます。ESCを使用している場合は、この日付までに現在のESC設定を置き換えるために他のCloudflare製品を設定する必要があります。

この非推奨は私のアカウントに影響しますか?

現在アカウントがESCを使用している場合、アカウントチームが連絡を取り、ESCから他の既存のCloudflare製品への移行について話し合うことができます。

代わりにどの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の使用を検討してください。

現在ESCを無効にして非推奨の影響を理解できますか?

はい、APIを介してESCを無効にすることができます。APIを使用すると、次のことができます:

  • アカウントまたはゾーンに対するESCの無効化の影響を理解します。
  • サンセット日以前に、他のCloudflare製品(およびESCを無効にした状態)で代替設定をテストします。

どのようなテストを実行できますか?

利用可能なAPI操作を使用すると、次のことができます:

  • 個別リクエストのESCを無効にする: 特定のシークレットを含むクッキーを持つテストリクエストは、ESCが無効にされた状態で処理されます。
  • 特定のゾーンのESCを無効/有効にする: ゾーンのESCを無効にすると、そのゾーンへのすべての受信リクエストはすべてのESC設定が無効になります。
  • アカウント全体のESCを無効/有効にする: アカウントのESCを無効にすると、そのアカウント内のすべてのゾーンへのすべての受信リクエストはすべてのESC設定が無効になります。

推奨されるテスト戦略は何ですか?

Cloudflareは、トリガーされたルールと得られたレスポンスが期待通りであることを確認するために、個別のHTTPリクエストを使用してテストを開始することを推奨しています。

まず、シークレットを設定し、特定のリクエストのためにESCを無効にするためにリクエストクッキーに含めます。

これらのテストが成功した場合は、ゾーン全体のESCを無効にします。ESCが無効になった状態で設定が意図した通りに機能することを確認するために、追加のテストを実施します。問題が検出された場合は、ゾーンのESCを再有効化します

必要に応じて、アカウント全体のESCを無効にすることもできます。これにより、アカウント内のすべてのゾーンへのすべての受信リクエストに影響します。


APIを介してESCを無効にする

利用可能なAPI操作を使用すると、アカウント/ゾーンのESCを無効にし、数秒でESCを再有効化することができます。

また、アカウントまたはゾーンのESCの状態(無効または有効)を変更せずに、リクエストごとのテストを実行するためのシークレットを設定することもできます。この機能を使用して、適切なルールがトリガーされているか、リクエスト/レスポンスが期待通りであるかを確認します。

個別リクエストのESCを無効/有効にするには、次の手順を実行します:

  1. Create ESC secret for a zoneまたはCreate ESC secret for an account操作を使用して、シークレット(最大100文字)を作成します。

  2. テストリクエストにdisable_escという名前のクッキーを使用してシークレットを含めます。これにより、前のステップで使用したエンドポイントのスコープ(ゾーンまたはアカウント)に応じて、これらのテストリクエストに対してのみESCが無効になります。以下の例のHTTPリクエストヘッダーは、現在のリクエストに対してESCを無効にするためのクッキーを定義しています:

    Cookie: disable_esc=<SECRET>

ゾーンのESCの状態を変更するには、次の操作を使用します:

アカウントのESCの状態を変更するには、次の操作を使用します:

API操作

名前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

APIの例

ゾーンのESCステータスを取得

この例では、指定されたゾーンのDisable ESC設定の現在のステータスを取得します。同じエンドポイントは、設定されている場合、ゾーンの現在のESCシークレットも返します。

Terminal window
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>"}

ゾーンのESCシークレットを作成

このPOSTリクエストの例は、特定のリクエストのためにESCを無効にするためのESCシークレットを{zone_id}ゾーンに設定し、シークレットをMySecretString321#に設定します。

Terminal window
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という名前のクッキーを含めます:

Terminal window
curl "https://example.com/company_app" \
--header "Cookie: disable_esc=MySecretString321#"

これにより、クッキーを含むリクエストに対してのみESCが無効になります。

ゾーンのESCを無効にする

このPOSTリクエストの例は、{zone_id}ゾーンのすべての受信リクエストに対してESCを無効にします。

Terminal window
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 }'

ゾーンのESCを再有効化する

この例は、{zone_id}ゾーンのESCを再有効化します。

Terminal window
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>"

アカウントのESCステータスを取得

この例では、指定されたアカウントのDisable ESC設定の現在のステータスを取得します。同じエンドポイントは、設定されている場合、アカウントの現在のESCシークレットも返します。

Terminal window
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>" }

アカウントのためのESCシークレットを作成

この例では、{account_id}アカウントの特定のリクエストでESCを無効にするためのESCシークレットを設定し、シークレットをMySecretString321#に設定します。

Terminal window
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という名前のクッキーを含めます:

Terminal window
curl "https://example.com/company_app" \
--header "Cookie: disable_esc=MySecretString321#"

これは、クッキーを含むリクエストに対してのみESCを無効にします。

アカウントのESCを無効にする

このPOSTリクエストの例は、{account_id}アカウントのすべての受信リクエストに対してESCを無効にします。

Terminal window
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 }'

アカウントのESCを再有効化

この例は、{account_id}アカウントのESCを再有効化します。

Terminal window
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を通じて現在得られているカスタム動作を中止し、あなたのユースケースに対する代替ソリューションを理解する手助けをします。