カスタムポリシー

ポリシーのデフォルトセットに含まれていない API ポリシーが必要な場合、独自のカスタムポリシーを作成できます。カスタムポリシーには次のファイルが必要です。

  • ポリシー定義 - ポリシーと設定可能なパラメーターが記述された YAML ファイル

  • ポリシー設定 - ポリシーを実装するバックエンドプロセスが含まれる XML ファイル

カスタムポリシーにはポイントカット宣言も含める必要があります。詳細は、下記のポイントカットリファレンスを参照してください。

次のいずれかのランタイムを使用している場合にカスタムポリシーを作成できます。

  • Mule 3.8 以降の統合ランタイム

  • Mule ゲートウェイランタイム 2.x 以降

Studio 6.1 以降では、Studio カスタムポリシーエディター (ベータ) を使用できます。

制限事項

カスタムポリシーは自己完結型である必要があります。カスタムポリシーから、別の連動ポリシー、アプリケーション上のコネクタ、共有コネクタ、またはその他の実行時に使用できるか外部ライブラリで使用できる連動関係を参照しないでください。

Mule Runtime の要素を使用してカスタムポリシーを作成することで、HTTP コールと応答を評価して処理できます。ポリシーによって API へのコールが絞り込まれ、要求のクエリパラメーターのいずれかが、設定可能な正規表現に一致します。一致しない要求は却下されます。要求が検索条件に一致しなかった場合にエラーを示す HTTP 状況とペイロードを設定します。

カスタムポリシーの適用

ユーザーがカスタムポリシーを使用できるようにするには、API Manager でポリシーを Anypoint Platform に追加します。ユーザーは、API の API バージョン詳細ページで、[Policies (ポリシー)] を選択し、リストからカスタムポリシーを選択して、そのポリシーを API に適用できます。

Anypoint Platform からダウンロードした .zip ファイルを使用して非公開サーバーに API をデプロイすると、オンプレミスサーバーユーザーが新しいポリシーを適用できるようになります。ポリシーを作成する前にすでにプロキシがデプロイされていた場合でも、再ダウンロードまたは再デプロイする必要はありません。新しいポリシーは、Mule ゲートウェイまたは Mule 3.8 統合ランタイムがインストールされている場所の ​/policies​ フォルダーに自動的にダウンロードされます。​wrapper.conf​ ファイル内で組織のクライアント ID とトークンを設定します。

失敗したポリシー

Mule Runtime 3.8 以降と Mule ゲートウェイランタイム 2.1 以降では、オンラインポリシーの形式が無効である場合や解析の例外が発生した場合は、ポリシーがレビューのために ​policies​ ディレクトリ内の ​failedPolicies​ ディレクトリに保存されます。次回のポリシーのポーリングでは、そのポリシーは解析されません。そのポリシーを削除すると、そのフォルダーからも削除されます。フォルダーにポリシーがない場合は、フォルダーが削除されます。

既存のポリシーの使用

デフォルトで存在する既存のポリシーを変更したり組み合わせたりすることができます。XML ソースコードを表示して、カスタムポリシー設定内でそれを使用できます。

オンプレミスランタイムのインストールで既存のポリシーを見つけるには、​examples>policies​ フォルダーを検索します。