ポリシーのパッケージ化、スコープ、サイズ

ポリシーは次のもので構成されます。

  • YAML ファイル

    ポリシーの設定可能なパラメーターを定義します。ポリシーの入力を表示するために UI によってレンダリングされます。

  • XML テンプレート

    ポリシーの実装が含まれています。

  • テンプレートの POM

    ポリシーの連動関係を定義します。パッケージの種類は ​mule-policy​ である必要があります。

  • リソース

    (省略可能) ポリシーが証明書など他のリソースに依存する場合は、ポリシーの一部としてリソースを定義します。

  • mule-artifact.json 記述子

    分類子を ​mule-policy​ として指定します。

詳細は、ヘッダーポリシーを参照してください。

ポリシーのスコープ

ポリシーは、アプリケーションや他のポリシーから分離されていますが、ポリシーからの情報を公開する方法があります。ポリシーについての認証情報は、セキュリティコンテキストプリンシパルオブジェクトで伝播できます。

ポリシーはメッセージのコンテンツを変更できます。Mule 4.1.0 以降では、メッセージが ​source​ ポリシーの ​execute-next​ の前、または ​operation​ ポリシーの場合はその後で変更されると、デフォルトでは変更内容が伝播されません。変更内容の伝播を有効にするには、各ポリシーで ​propagateMessageTransformations​ フラグを有効にします。

<http-policy:proxy name="scope-payload">
    <http-policy:source propagateMessageTransformations="true">

        <http-policy:execute-next/>

    </http-policy:source>
    <http-policy:operation propagateMessageTransformations="true">

        <http-policy:execute-next/>

    </http-policy:operation>
</http-policy:proxy>

ポリシーは、​execute-next​ を定義しない、またはフローに到達しないようにする (たとえば、choice に配置する) ことで、フローの実行を避けることができます。

ポリシーに設定された変数にはポリシーのスコープのみがあります。また、フローで定義された変数はポリシーに表示されません。

ポリシーのサイズ

ポリシーのサイズは連動関係に基づいて異なります。Mule Runtime がポリシーをポーリングするとき、初回は取得するのに時間がかかりますが、取得されたポリシーはファイルシステムにキャッシュされます。オフラインでも使用可能になり、またポリシー取得時の待ち時間も短縮されます。

関連情報