Send Docs Feedback

Note: Most user interface tasks can be performed in Edge Classic or the New Edge experience. For an overview, getting started topics, and release notes specific to the New Edge experience, see the docs.

ProxyEndpoint または TargetEndpoint フローへのポリシーの添付

ポリシーは、フローに添付されるまで実行されません。ステップ構成でポリシーに名前を付けて、ポリシーの添付を作成できます。

API プロキシの動作には、添付ポイントの選択が重要になります。例えば、Quota ポリシーをレスポンスフローに添付すると、リクエストメッセージがバックエンドサービスに送信された、クォータが強制されるようになります。これでは、Quota ポリシーを適用する目的が果たされません! したがって、Quota ポリシーは処理ステップとしてリクエストフローに添付する必要があります。

ポリシー添付の形式 :

<Step>
    <Name>{policy_name}</Name>
</Step>

例:

<Step>
    <Name>QuotaPolicy</Name>
</Step>

{policy_name} 変数は、添付するポリシー (/policies の下に格納されます) 内の name 属性と同じにする必要があります。名前の照合では、大文字と小文字が区別されるため、名前は正確に一致する必要があります。

ProxyEndpoint または TargetEndpoint 構成で、ステップ構成を適切なリクエストまたはレスポンスフロー要素に追加することで、ポリシーはフローに添付されます。

ポリシーをリクエストまたはレスポンスフローに添付できます。リクエストおよびレスポンスフローは、PreFlow および PostFlow にさらに分類されます。

以下の例では、ポリシーの添付がない最小限の ProxyEndpoint 構成を示します。これは単に (受信) HTTPProxyConnection および RouteRule を定義しています。

<ProxyEndpoint name="default">
    <HTTPProxyConnection>
        <BasePath>/weather</BasePath>
        <VirtualHost>default</VirtualHost>
    </HTTPProxyConnection>
  <RouteRule name="default">
     <TargetEndpoint>default</TargetEndpoint>
  </RouteRule>
</ProxyEndpoint>

API プロキシが他の処理を実行する前に、ProxyEndpoint が Quota ポリシー (処理ステップとして) を強制するように、この構成を変更する必要があります。開発者がクォータを超えた場合、追加的なリクエストで電算リソースが浪費されることは望ましくありません。

この構成を強制するには、処理ステップを次のようにリクエスト PreFlow に添付します。

<ProxyEndpoint name="default">
  <PreFlow>
    <Request>
      <Step><Name>QuotaPolicy</Name></Step>
    </Request>
  </PreFlow>
  <HTTPProxyConnection> 
    <BasePath>/weather</BasePath> 
    <VirtualHost>default</VirtualHost> 
  </HTTPProxyConnection> 
  <RouteRule name="default"> 
    <TargetEndpoint>default</TargetEndpoint> 
  </RouteRule> 
</ProxyEndpoint>

ProxyEndpoint でのその他の初期処理を実行した後、ポリシーを実行する場合もあります。例えば、PreFlow でクォータを確認し、クォータの確認後に、JSON から XML にリクエストを変換するなど、別の一連の処理を実行します。これを実行するには、ポリシーを PostFlow リクエストパスに添付します。以下にリクエスト PostFlow 添付のサンプルを示します。このポリシーは、PreFlow (および条件付きフロー) の全ポリシーを実行した後、リクエストメッセージで実行します。

<PostFlow>
  <Request>
    <Step><Name>JSONtoXMLPolicy</Name></Step>
  </Request>
</PostFlow>

以下にレスポンス PostFlow 添付のサンプルを示します。このポリシーは、レスポンスメッセージで実行します。ProxyEndpoint レスポンス PostFlow は、レスポンスが要求元クライアントアプリに返される前の最終的な処理フェイズです。

<PostFlow>
  <Response>
    <Step><Name>XMLtoJSONPolicy</Name></Step>
  </Response>
</PostFlow>

また PreFlow フェーズと PostFlow フェーズので実行する条件付きフローを定義できます。この内容については、「フローの変数と条件」トピックで説明されています。

Help or comments?