DataScript は仮想サービスに適用されます。各 DataScript は、仮想サービスが HTTP 要求や HTTP 応答を受信するときなど、イベントがトリガされたときに実行されます。各 DataScript オブジェクトには、少なくとも 1 つ以上のイベントが含まれます。
1 つの仮想サービスに、複数の DataScript が適用される場合があります。複数の DataScript が HTTP 要求などの同じイベントを使用する場合、仮想サービスに割り当てられた DataScript の順序は、DataScript の処理順序と見なされます。たとえば、最初の DataScript が /secure ディレクトリへのすべてのクライアント要求を破棄するように設定されていて、2 つ目の DataScript が、/secure ディレクトリへの要求を行う認証されたすべてのクライアントを別のパスにリダイレクトするように設定されている場合、2 つ目の DataScript は実行されません。
次のイベントがサポートされます。
イベント |
説明 |
---|---|
HTTP_REQ |
このイベントは、HTTP 要求の要求行とすべてのヘッダーが正常に解析された場合に、潜在的な POST 本文が受信される前にトリガされます。 |
HTTP_RESP |
このイベントは、HTTP 応答の応答状態行とすべてのヘッダーが正常に解析された場合に、応答本文が受信される前にトリガされます。 |
RESP_FAILED |
このイベントは、サーバから有効な応答ヘッダーを受信してクライアントに転送する前に、エラー/タイムアウトが発生するとトリガされます。RESP_FAILED イベントから呼び出すことができる HTTP 関数は、次の 3 つのみです。
|
LB_DONE |
このイベントは、サーバの選択が完了した後、バックエンド サーバへの接続を確立する前にトリガされます。このイベントによって、サーバの選択が完了すると、さまざまなポリシーの構成が有効になります。 このイベントでサポートされている DataScript API は次のとおりです。 |
各仮想サービス オブジェクトは、任意の数の DataScript を参照できます。構成時にすべての DataScript が解析されます。したがって、誤った DataScript を使用すると、ユーザーが新しい DataScript または変更された DataScript を保存しようとすると失敗します。構成時のエラーは、デバッグの補助として報告されます。
DataScript の実行に失敗すると、その HTTP 要求または応答のスクリプト実行は途中で終了します。HTTP 内部サーバ エラーがクライアントに送信され、デバッグに役立つ途中で終了したスクリプトのスタック トレースを使用してクライアント ログが生成されます。