トリガーは、ルーチンを呼び出すためのメソッドです。 エッジルーチン は、カスタムドメインまたはルートを使用する 2 つのトリガーメソッドをサポートしています。ルーチンをドメイン名に関連付けると、そのドメイン名を使用してルーチンにアクセスできます。リクエストされた URL のルートを追加すると、ルーチンがエッジから呼び出されてリクエストに応答します。
始める前に
[ドメイン名] または [ルート] でトリガーを使用する場合は、アカウントに有効状態の Web サイトが必要です。
アクティブであるとは、Web サイトがプランを購入済みであり、NS または CNAME 設定を使用して接続されていることを示します。
トリガーを構成する
ドメイン名を追加してトリガーを構成する
Web サイトのドメイン名をルーチンに関連付けることで、Web サイトをルーチンに接続できます。これにより、ドメイン名を使用してルーチンにアクセスできます。
ESA コンソール にログオンし、左側のナビゲーションウィンドウで、 を選択します。 [エッジルーチン] ページで、作成したルーチンを見つけ、[操作] 列の [詳細] をクリックします。
ルーチンの詳細ページで、[トリガー] タブをクリックします。ドメイン名を関連付けたり、特定のドメイン宛てのトラフィックをルーチンに転送するルートを追加したりできます。
ルーチンに関連付けるドメイン名(
example.com
など)を入力します。ドメイン名が設定されると、ESA はドメイン名に関連付けられた Web サイトの DNS レコードを自動的に作成します。説明追加されたドメイン名は、対応する Web サイトの構成に従います。そのため、Web サイトに SSL/TLS 証明書が構成されていない場合、HTTPS を使用してドメイン名にアクセスすることはできません。 Web サイトの SSL/TLS を有効にする方法の詳細については、「SSL/TLS」をご参照ください。
ルートを追加してトリガーを構成する
リクエスト URL をルーチンにマッピングするルートを作成できます。リクエストがルーチンにマッピングされている指定された URL と一致する場合、リクエストはルーチンに送られます。
その他の場合、ESA はリクエストをオリジンサーバーに転送し、必要なコンテンツをプルします。
次の図では、ルーチンの example.com
Web サイトに example.com/a*
ルートを追加すると、ルート (/a
、/a1
、および /a2
) と一致するすべてのリクエストがルーチンによって処理されます。ルート (/b,
/c
、および /d
) と一致しないリクエストは、オリジンサーバーまたは Points of Presence (POP) に転送されます。
ESA コンソール にログオンし、左側のナビゲーションウィンドウで、 を選択します。 [エッジルーチン] ページで、作成したルーチンを見つけ、[操作] 列の [詳細] をクリックします。
ルートの詳細ページで、[トリガー] タブをクリックします。 [トリガー] タブの [ルート] セクションで、[ルートを追加] をクリックします。
example.com
などの Web サイトを選択します。[ルートモード] を設定します。
シンプルモード
[ルート名] を指定し、Web サイトを選択します。
[ルートモード] を [シンプルモード] に設定し、ルーティングルールを指定します。
カスタムモード
[ルート名] を指定し、Web サイトを選択します。
[ルートモード] を [カスタムモード] に設定します。
[リクエストが以下のルールと一致する場合...] エリアで、着信リクエストと一致する条件を指定します。詳細については、「ルール」をご参照ください。
[以下を実行する...] セクションで、[エッジルーチン] が実行されます。
例 1:[ルート] に
*.example.com/*
と入力すると、ルートドメイン名example.com
を持つ URL(http://www.example.com/
やhttp://example.com/
など)に送信されるすべてのリクエストが Edge Routine に転送されます。例 2:[ルート] に
example.com/a*
と入力すると、接尾辞がa
で始まる URL(http://example.com/a
、http://example.com/a1
、http://example.com/api
など)に送信されるすべてのリクエストが Edge Routine に転送されます。例 3:[ルート] に
www.example.com/api/*
と入力すると、http://www.example.com/api/
およびそのサブ URL(http://www.example.com/api/users
やhttp://www.example.com/api/products/123
など)に送信されるすべてのリクエストが Edge Routine に転送されます。
*.example.com
やwww.example.com
などのプレフィックス付き URL を [ルート] に入力する場合、ESA の DNS レコードに DNS レコードを手動で追加する 必要があります。そうしないと、アクセスは失敗します。複数の Edge Routine ルートを構成した場合、ルートは順番に照合されます。ルートが一致すると、後続のルートの照合は実行されなくなります。
一致ルール
ルートを構成する場合は、ドメイン名のホスト名と URI パスの両方を指定する必要があります。
/path
などの URI のみを含むルートは構成できません。ルートを構成する場合は、アスタリスク (
*
) をプレフィックスまたは接尾辞として追加して、より多くの URL を照合できます。アスタリスク (*
) は、ゼロ個以上の文字と一致させることができます。たとえば、example.com/*
は、example.com
にアクセスするすべてのリクエストと一致します。ルートでは大文字と小文字が区別されます。たとえば、
example.com/a
とexample.com/A
は 2 つの異なるルートを指定します。ルート内にアスタリスク (
*
) やパラメーターを含めることはできません。たとえば、example.com/*/path
やexample.com/path?param=1
は許可されていません。リクエストが複数のルートと同時に一致する場合、最も早い時点で構成されたルートが優先的に使用されます。
トリガーを変更する
トリガーに関連付けられたドメイン名とルートがビジネス要件を満たしていない場合は、ドメイン名とルートを編集または削除できます。
ESA コンソール にログオンし、左側のナビゲーションペインで、 を選択します。
[エッジルーチン] ページで、作成したルーチンを見つけ、[詳細] 列の [操作] をクリックします。ルートの詳細ページで、[トリガー] タブをクリックします。
[トリガー] タブで、削除するドメイン名の [操作] 列の [削除] をクリックするか、ルートを削除するには、ルートの [操作] 列の [編集] または [削除] をクリックします。
バイパスモード
バイパスモードが有効になっている場合、リクエストがルーチンルーティングポリシーと一致すると、リクエストは子リクエストとして Edge Routine をバイパスします。
次の図は、バイパスモードがオンまたはオフの場合のフローを示しています。
クライアントは [ESA] POP へのアクセス要求を開始します。
ルートルーティングポリシーと一致するリクエストは、エッジルーチン に転送されます。バイパスモードがオンの場合、リクエスト本文は エッジルーチン に転送されないことに注意してください。
エッジルーチン から返された応答の状態コードが
200
の場合、リクエストの処理は続行されます。そうでない場合、ESA はリクエストの処理を停止し、状態コード403
をクライアントに返します。リクエストは、後続のポリシーに基づいてリクエストと一致し、[ESA] キャッシュマッチングまたはオリジンフェッチの高速化ロジックの実行を継続します。
キャッシュヒット後の応答、またはオリジンからの応答は、ESA POP に返されます。この場合、応答はエッジルーチンによって処理されません。
応答はクライアントに転送されます。
シナリオ
ログ追跡
特定のリクエストのログを生成する場合、バイパスモードでリクエストを エッジルーチン に転送し、エッジルーチンでロギングロジックをカスタマイズできます。
大きなファイルのダウンロード
エッジルーチンがクライアントに応答を転送する場合、予想よりも多くの CPU 時間を消費する可能性があり、追加料金が発生します。バイパスモードを使用して認証を完了することで、これを回避できます。