ADC
ご意見をお寄せいただきありがとうございました

この記事は機械翻訳されています.免責事項

HTTP コールアウトを呼び出す

HTTP コールアウトを設定したら、詳細ポリシールールにSYS.HTTP_CALLOUT(<name>)式を含めることによってコールアウトを呼び出します。この式で、<name>は、呼び出す HTTP コールアウトの名前です。

コールアウト式で高度なポリシー式演算子を使用して、応答を処理し、適切なアクションを実行できます。HTTP コールアウトエージェントからの応答の戻り値の型によって、応答に使用できる演算子のセットが決まります。分析する応答の一部がテキストの場合、テキスト演算子を使用して応答を分析できます。たとえば、CONTAINS (<string>) 演算子を使用して、次の例のように、レスポンスの指定された部分に特定の文字列が含まれているかどうかを確認できます。

SYS.HTTP_CALLOUT(mycallout).contains("Good IP address")

レスポンダーポリシーで前述の式を使用する場合は、適切なレスポンダーアクションを構成できます。

同様に、評価する応答の一部が数値である場合は、GT (int) などの数値演算子を使用できます。応答にブール値が含まれている場合は、ブール演算子を使用できます。

注:HTTP コールアウトは自身を再帰的に呼び出すことができます。HTTP コールアウトの再帰を回避するには、HTTP コールアウト式を再帰を防止する高度なポリシー式と組み合わせます。HTTP コールアウトの再帰を回避する方法については、「HTTP コールアウトの再帰を回避する」を参照してください。

以前に生成されたコールアウトを評価した後にコールアウトを呼び出すポリシーを設定することで、HTTP コールアウトをカスケードすることもできます。このシナリオでは、1つのポリシーがコールアウトを呼び出した後、NetScalerアプライアンスがコールアウトを解析してからコールアウトをコールアウトサーバーに送信すると、2つ目のポリシーセットがコールアウトを評価して追加のコールアウトを呼び出し、さらにコールアウトが3つ目のポリシーセットで評価されるというようになります。このような実装を次の例で説明します。

まず、myCallout1 という名前の HTTP コールアウトを設定し、次に myCallout1 を呼び出すようにレスポンダーポリシー Pol1 を構成します。次に、2 番目の HTTP コールアウト myCallout2 とレスポンダーポリシー Pol2 を設定できます。myCallout1 を評価し、myCallout2 を呼び出すように Pol2 を設定するとします。両方のレスポンダーポリシーをグローバルにバインドします。

HTTP コールアウトの再帰を避けるために、myCallout1 は「Request1」という一意のカスタム HTTP ヘッダーで設定されています。Pol1 は、高度なポリシー式を使用して HTTP コールアウトの再帰を回避するように設定されています。

HTTP.REQ.HEADER("Request1").EQ("Callout Request").NOT.

Pol2は同じ詳細ポリシー式を使用しますが、.NOT演算子は除外されるため、NetScaler ADCアプライアンスが解析しているときにポリシーがMyCallout1を評価します。myCallout2 は「Request2」と呼ばれる独自のヘッダーを識別し、Pol2 には myCallout2 が自身を再帰的に呼び出さないようにする高度なポリシー式が含まれています。

例:

> add policy httpCallout myCallout1 Done > set policy httpCallout myCallout1 -IPAddress 10.102.3.95 -port 80 -returnType TEXT -hostExpr ""10.102.3.95"" -urlStemExpr ""/cgi-bin/check_clnt_from_database.pl"" -headers Request1 ("Callout Request") -parameters cip(CLIENT.IP.SRC) -resultExpr "HTTP.RES.BODY(100)" Done > add responder policy Pol1 "HTTP.REQ.HEADER("Request1").EQ("Callout Request").NOT && SYS.HTTP_CALLOUT(myCallout1).CONTAINS("IP Matched")" RESET Done > bind responder global Pol1 100 END -type OVERRIDE Done > add policy httpCallout myCallout2 Done > set policy httpCallout myCallout2 -IPAddress 10.102.3.96 -port 80 -returnType TEXT -hostExpr ""10.102.3.96"" -urlStemExpr ""/cgi-bin/check_clnt_location_from_database.pl"" -headers Request2 ("Callout Request") -parameters cip(CLIENT.IP.SRC) -resultExpr "HTTP.RES.BODY(200)" Done > add responder policy Pol2 "HTTP.REQ.HEADER("Request2").EQ("Callout Request").NOT && HTTP.REQ.HEADER("Request1").EQ("Callout Request") && SYS.HTTP_CALLOUT(myCallout2).CONTAINS ("APAC")" RESET Done > bind responder global Pol2 110 END -type OVERRIDE Done
このコンテンツの正式なバージョンは英語で提供されています。Cloud Software Groupドキュメントのコンテンツの一部は、お客様の利便性のみを目的として機械翻訳されています。Cloud Software Groupは機械翻訳されたコンテンツを管理していないため、誤り、不正確な情報、不適切な用語が含まれる場合があります。英語の原文から他言語への翻訳について、精度、信頼性、適合性、正確性、またはお使いのCloud Software Group製品またはサービスと機械翻訳されたコンテンツとの整合性に関する保証、該当するライセンス契約書またはサービス利用規約、あるいはCloud Software Groupとのその他すべての契約に基づき提供される保証、および製品またはサービスのドキュメントとの一致に関する保証は、明示的か黙示的かを問わず、かかるドキュメントの機械翻訳された範囲には適用されないものとします。機械翻訳されたコンテンツの使用に起因する損害または問題について、Cloud Software Groupは責任を負わないものとします。
HTTP コールアウトを呼び出す