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 バージョンにデプロイした場合は、アノテーションは効果がなく、ポリシーは無効化されません。ただし、アプリケーションのデプロイは行われます。