Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerMule 4 では、送信および受信 HTTP 要求の両方にポリシーを適用できます。
送信 HTTP 要求に適用されるポリシーはアウトバウンドポリシーと呼ばれます。アウトバウンドポリシーは、ポリシーテンプレートで http-policy:operation ブロックを定義して実行コンポーネントを指定することによって実装します。
Mule Runtime Engine は、API に適用されたすべてのポリシーの操作ブロックを、Mule アプリケーションで定義されているすべての HTTP リクエスター要素に適用します。
HTTP プロキシの場合は、アウトバウンドポリシーが適用される HTTP リクエスターが 1 つだけ定義されます。
API を実装する Mule アプリケーションはいくつかの外部サービスを呼び出す場合があるため、このような API では複数の HTTP リクエスターを定義できます。その場合、アウトバウンドポリシーは、アプリケーションが実行する各 HTTP 要求に適用されます。
次の例は、API を実装する Mule アプリケーションフローを示しています。
<flow name="implementation"> <http:listener config-ref="http-config" path="api"/> <http:request method="GET" url="http://service-1" /> <logger message="#[payload]" level="INFO"/> <http:request method="POST" url="http://service-2" /> </flow>
Mule アプリケーションが呼び出されるたびに、外部サービスに対して 2 つの HTTP 要求が実行されます。
次の例では、HTTP 要求にヘッダーを追加することで、前の例に Mule ポリシーが適用されています。
<http-policy:operation>
<http-transform:add-request-headers>
<http-transform:headers>#[{'new-header': 'the-value'}]</http-transform:headers>
</http-transform:add-request-headers>
<http-policy:execute-next/>
</http-policy:operation>
Mule アプリケーションが呼び出されるたびに、Mule ポリシーが 2 回 (service-1 を呼び出すときと service-2 を呼び出すときに 1 回ずつ) 実行されます。各 HTTP 要求には、ポリシーによって追加された new-header というヘッダーが含まれます。
次に、service-1 が認証用に追加のヘッダーを必要としているのに対して、service-2 は予期しないヘッダーを持つ受信要求を拒否するというシナリオを考えてみましょう。
Mule 4.3.0 では、任意の Mule アプリケーションの HTTP リクエスターにアノテーション api-gateway:disablePolicies="true" を指定し、アノテーションが付けられたリクエスターに対しては Mule ポリシーエンジンがポリシーを実行しないようにすることで、これらの要件に対応できます。
アノテーション api-gateway:disablePolicies="true" を使用する場合は、アプリケーションで次の名前空間を指定する必要があります。
xmlns:api-gateway="http://www.mulesoft.org/schema/mule/api-gateway"
その結果、アプリケーションフローは次のようになります。
<flow name="implementation"> <http:listener config-ref="http-config" path="api"/> <http:request method="GET" url="http://service-1" /> <logger message="#[payload]" level="INFO"/> <http:request method="POST" url="http://service-2" api-gateway:disablePolicies="true" /> </flow>
service-2 を呼び出す HTTP リクエスターでアノテーションを指定することで、ポリシーは適用されなくなります。したがって、その HTTP 要求には追加のヘッダーが付加されません。
アノテーションが付けられた Mule アプリケーションを 4.3.0 より前の Mule バージョンにデプロイした場合は、アノテーションは効果がなく、ポリシーは無効化されません。ただし、アプリケーションのデプロイは行われます。