Mule カスタムポリシーの作成方法
はじめに
本書は、カスタムポリシーの作成方法について説明する。
カスタムポリシーを作る要件は通常あまりないため、一連の流れを忘れないように備忘録の目的で記載する。
作成手順
作成手順は以下の通り。
- デプロイ先組織のログイン情報を設定する。
- カスタムポリシーのMavenプロジェクトを作成する。
- Anypoint Exchangeの表示情報を設定する。
- カスタムポリシーの設定画面を設定する。
- Muleフローを開発する。
- 各ビジネスグループのAnypoint Exchangeへデプロイする。
- APIインスタンスにカスタムポリシーの適応する。
- POSTMANを利用して動作を確認する。
手順詳細
1.デプロイ先組織のログイン情報を設定する。
Mavenのsettings.xmlにMuleSoftのログイン情報を設定する。
<server>
<id>exchange-server</id>
<username>{username}</username>
<password>{password}</password>
</server>
<server>
<id>releases-ee</id>
<username>{username}</username>
<password>{password}</password>
</server>
2.カスタムポリシーのMavenプロジェクトを作成する。
Mavenコマンドを実行して、カスタムプロキシーのMavenプロジェクトを作成する。
$mvn -Parchetype-repository archetype:generate -DarchetypeGroupId=org.mule.tools
-DarchetypeArtifactId=api-gateway-custom-policy-archetype -DarchetypeVersion=1.2.0
-DgroupId={Bussiness-Group-ID} -DartifactId={Custom-Policy-ID} -Dversion=1.0.0
-Dpackage=mule-policy
Mavenプロジェクトの構成は以下の通り。

※コマンドプロンプトの”policyName”と”policyDescription”の設定は、yamlファイルの”id”,”name”,”description”項目と、そして、pom.xmlファイルの”name”と”description”に反映される。
Define value for property 'policyDescription': command-prompt-description
Define value for property 'policyName': command-prompt-name
3. Anypoint Exchangeの表示情報を設定する。
Anypoint Exchangeの表示名を設定する場合は、Mavenプロジェクトのpom.xmlファイルの”Name”と”description”項目を編集する。

4.カスタムポリシーの設定画面を設定する。
API Managerのポリシー表示名やポリシーの設定画面を設定する場合は、yamlファイルを編集する。

5.Muleフローを開発する。
HTTPリスナーとHTTPリクエスター毎に処理するフローを設定する。

6.各ビジネスグループのAnypoint Exchangeへデプロイする。
APIインスタンスにカスタムポリシーを適応する場合、APIインスタンスと同じビジネスグループにデプロイする。
ビジネスグループのIDを取得する。

取得したビジネスグループIDをpom.xmlファイルに設定する。
<groupId>{Bussiness_Group_組織ID}</groupId> // Exchange登録情報
<artifactId>logging-policy</artifactId>
<version>{Custom_Policy_Version}</version>
<name>ログ出力ポリシー</name> // Exchangeのポリシー表示名
<description>任意のログを出力できるカスタムポリシー</description>
<packaging>mule-policy</packaging>
<properties>
<mule.maven.plugin.version>3.3.6</mule.maven.plugin.version>
<exchange.url>https://maven.anypoint.mulesoft.com/api/v1/organizations/{Business_Group_組織ID}/maven</exchange.url> // デプロイ用URL
<http.policy.transform.extension>3.1.0</http.policy.transform.extension>
</properties>
HTTPトランスフォーム拡張機能のライブラリを利用する場合、Muleのエンタープライズリポジトリを追加する。
<repositories>
<repository>
<id>releases-ee</id>
<name>Mule EE Repository</name>
<url>https://repository.mulesoft.org/nexus-ee/content/repositories/releases-ee/</url>
<layout>default</layout>
</repository>
<repository>
<id>mulesoft-releases</id>
<name>MuleSoft Repository</name>
<url>http://repository.mulesoft.org/releases/</url>
<layout>default</layout>
</repository>
<repository>
<id>mulesoft-snapshots</id>
<name>MuleSoft Snapshot Repository</name>
<url>http://repository.mulesoft.org/snapshots/</url>
<layout>default</layout>
</repository>
</repositories>
Mavenコマンドを実行して、カスタムポリシーをデプロイする。
$ mvn clean package
$ mvn clean deploy
正常にデプロイできたことを確認する。

7.APIインスタンスにカスタムポリシーの適応する。
API ManagerでカスタムポリシーをAPIインスタンスに適応する。

8.POSTMANを利用して動作を確認する。
POSTMANでAPIにアクセスする。

カスタムポリシーが実行されたことを確認する。

まとめ
いかがだったでしょうか?
カスタムポリシーの作成方法について全体像は理解できたでしょうか?
久々にカスタムポリシーを開発する場合は是非、本書を活用していただければと思います。
では






