Mule カスタムポリシーの作成方法

Stay hungry. Stay foolish. Your time is limited, so don't waste it living someone else's life.

Mule カスタムポリシーの作成方法

はじめに

 本書は、カスタムポリシーの作成方法について説明する。
 カスタムポリシーを作る要件は通常あまりないため、一連の流れを忘れないように備忘録の目的で記載する。

作成手順

作成手順は以下の通り。

  1. デプロイ先組織のログイン情報を設定する。
  2. カスタムポリシーのMavenプロジェクトを作成する。
  3. Anypoint Exchangeの表示情報を設定する。
  4. カスタムポリシーの設定画面を設定する。
  5. Muleフローを開発する。
  6. 各ビジネスグループのAnypoint Exchangeへデプロイする。
  7. APIインスタンスにカスタムポリシーの適応する。
  8. 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にアクセスする。

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

まとめ

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