API Shield Routing を使うと、1 つの外部 API を公開し、ゾーンとは異なるパスやホスト名を使う場合でも、リクエストを別々のバックエンドサービスへ振り分けられます。
ルートを作成する前に、スキーマのアップロード、API Discovery、または 手動追加 など、既存の方法で Source Endpoint を Endpoint Management に追加します。
ルートを作成するには、Source Endpoint の operation ID が必要です。ダッシュボードで operation ID を確認する手順は次のとおりです。
-
Cloudflare ダッシュボードで Web Assets ページを開きます。
Web assets を開く ↗ -
エンドポイントを絞り込み、Source Endpoint を探します。
-
Source Endpoint の行を展開し、operation ID を控えます。
-
コピーアイコンを選択し、operation ID をクリップボードにコピーします。
Source Endpoint を Endpoint Management に追加したら、次の手順で任意の operation ID に対してルートを作成し、確認します。
-
Cloudflare ダッシュボードで Web Assets ページを開きます。
Web assets を開く ↗ -
Endpoints で既存のエンドポイントを選び、詳細を展開します。
-
Routing の下で Create route を選択します。
-
エンドポイントの転送先となるターゲット URL または IP アドレスを入力します。
-
Deploy route を選択します。
既存のルートで Edit route を選択すると、編集や削除もできます。
Source Endpoint にリクエストを送ると、Target Endpoint を直接呼び出したときと同じバックエンドサービスの内容が返ります。
API Shield が想定と違う結果を返す場合は、Source Endpoint のホスト、メソッド、パスを確認し、ルートを検証 して Target Endpoint の値が正しいことを確認します。
API Shield Routing は現在オープンベータです。API Shield を契約している Enterprise のお客様だけが利用できます。API Shield を購入していない Enterprise のお客様は、Cloudflare ダッシュボードで API Shield を非契約サービスとしてプレビュー ↗ するか、アカウントチームへ問い合わせてください。
ルート先が同じゾーンの場合、Target Endpoint を Worker へルーティングできません。
リクエストのメソッドは変更できません。たとえば GET の Source Endpoint は、常に Target Endpoint へ GET リクエストを送ります。
Source Endpoint に含まれる変数は、すべて Target Endpoint で使う必要があります。たとえば /api/{var1}/users/{var2} を /api/users/{var2} へルーティングすることはできません。{var1} が Source Endpoint にあって Target Endpoint にないため、エラーになります。