Mule Maven プラグインを使用した CloudHub へのアプリケーションのデプロイ

Mule Maven プラグインバージョン 3.0.0、3.1.0、3.1.1、3.1.2、3.1.3、3.1.4、3.1.5、3.1.6、3.1.7 は非推奨です。

Anypoint Studio、Anypoint Runtime Manager、または Anypoint Platform CLI を使用してアプリケーションを CloudHub にデプロイすることに加えて、Mule Maven プラグインを使用してアプリケーションをデプロイ、再デプロイ、アンデプロイすることもできます。これを行うには、特定の前提条件を満たし、CloudHub デプロイメント戦略をプロジェクトの ​pom.xml​ ファイルで定義する必要があります。

別の方法を使用して CloudHub にアプリケーションをデプロイする場合は、以下を参照してください。

前提条件

Mule Maven プラグインを使用して CloudHub にデプロイする前に、次のタスクを完了する必要があります。

  • Mule Maven プラグインをプロジェクトに追加する

    手順については、​「Mule Maven プラグインを Mule プロジェクトに追加する」​を参照してください。

  • HTTP Listener をフローの提供元として使用している場合、そのホストを ​0.0.0.0​ に、そのポートを ​${http.port}​ に設定する必要があります。

  • すべての外部クラスおよびリソースを ​mule-artifact.json​ ファイルの ​exportedPackages​ および ​exportedResources​ 項目で宣言する

CloudHub デプロイメント戦略の設定

Mule Maven プラグインを使用して Mule アプリケーションをデプロイ、再デプロイ、アンデプロイできるようにプロジェクトの ​pom.xml​ ファイルで CloudHub デプロイメント戦略を設定します。

プロジェクトの ​pom.xml​ ファイルの ​plugin​ 要素内で CloudHub デプロイメントを設定し、プレースホルダの値を CloudHub 情報で置き換えます。

<plugin>
  <groupId>org.mule.tools.maven</groupId>
  <artifactId>mule-maven-plugin</artifactId>
  <version>3.5.2</version>
  <extensions>true</extensions>
  <configuration>
    <cloudHubDeployment>
      <uri>https://anypoint.mulesoft.com</uri>
      <muleVersion>${app.runtime}</muleVersion>
      <username>${username}</username>
      <password>${password}</password>
      <applicationName>${cloudhub.application.name}</applicationName>
      <environment>${environment}</environment>
      <region>${region}</region>
      <workers>${workers}</workers>
      <workerType>${workerType}</workerType>
      <properties>
        <key>value</key>
      </properties>
    </cloudHubDeployment>
  </configuration>
</plugin>

CloudHub へのデプロイ

プロジェクトのフォルダのコマンドラインから、アプリケーションをパッケージ化してデプロイゴールを実行します。

mvn clean package deploy -DmuleDeploy

CloudHub への再デプロイ

Mule Maven プラグインを使用して Mule アプリケーションを再デプロイするには、以前にアプリケーションをデプロイしたときと同様に ​mvn clean package deploy -DmuleDeploy​ を実行します。CloudHub は、デプロイしたアプリケーションを書き込み直します。

CloudHub からのアンデプロイ

Mule Maven プラグインを使用して Mule アプリケーションをアンデプロイするには、次のコマンドを実行します。

mvn mule:undeploy

undeploy コマンドにより、Mule Maven プラグイン 3.3.0 以降のバージョンのアプリケーションも削除されます。

Authentication のメソッド

Mule Maven プラグインを使用してアプリケーションをデプロイする場合には、デプロイメントプラットフォームに対して認証するためのログイン情報をいくつかの方法で提供できます。使用する認証方法に応じて、デプロイメント設定で指定するパラメータが異なります。

認証方法 説明 設定パラメータ

ユーザ名とパスワード

CloudHub のユーザ名とパスワードを使用して認証します。

  • username

  • password

サーバ

Maven サーバに保存されているログイン情報を使用します。Maven の ​settings.xml​ ファイル内で設定します。

  • server

認証トークン

認証トークンを使用してプラットフォームにアクセスします。
サポートされているシングルサインオン (SSO) 種別は​「ID 管理」​を参照してください。

  • authToken

接続アプリケーション

接続アプリケーションを使用して Anypoint Platform と通信することで、プログラムによって認証を実行します。
接続アプリケーションのログイン情報に ​Design Center Developer​ アクセススコープが設定されている必要があります。
接続アプリケーションを作成する手順は、​「開発者向けの接続アプリケーション」​を参照してください。

  • connectedAppClientId

  • connectedAppClientSecret

  • connectedAppGrantType

設定パラメータの詳細は、「​​CloudHub デプロイメントリファレンス​」を参照してください。

CloudHub デプロイメントリファレンス

次の表に、プロジェクトの ​pom.xml​ ファイルで CloudHub デプロイメント戦略を設定するための使用可能なパラメータを示します。

パラメータ 説明 必須

cloudHubDeployment

最上位要素

はい

uri

Anypoint Platform URI
設定しない場合、デフォルトでこの値は ​https://anypoint.mulesoft.com​ に設定されます。.

いいえ

muleVersion

CloudHub インスタンスで実行する Mule Runtime Engine のバージョン。
この値がアプリケーションで最小限必要な Mule バージョン以上であることを確認します。
値の例: 4.3.0​、​4.2.2-hf4

はい

username

CloudHub ユーザ名

Anypoint Platform ログイン情報を使用してログインする場合のみ。

password

CloudHub パスワード

Anypoint Platform ログイン情報を使用してログインする場合のみ。

applicationName

CloudHub 内のアプリケーションの名前
この名前は、デプロイされるアプリケーションのドメインの一部です。たとえば、アプリケーションに application-1 という名前を付けると、アプリケーションの公開ドメインは ​application-1.cloudhub.io​ となります。.

はい

artifact

デプロイする JAR ファイルの絶対パス
設定しない場合、パスはデフォルトで、パッケージフェーズで生成された JAR ファイルの位置になります。

いいえ

environment

デプロイ先の CloudHub 環境
この値は、CloudHub アカウントで設定されたいずれかの環境に一致する必要があります。

<environment>Sandbox</environment>

はい

properties

最上位要素
デプロイする Mule アプリケーションのプロパティを設定する必要がある場合、最上位要素 ​<properties>​ を使用できます。

<properties>
  <key>value</key>
</properties>

次に例を示します。

<properties>
  <http.port>8081</http.port>
</properties>

いいえ

workers

ワーカーの数
デフォルトでは、この値は 1 です。

いいえ

workerType

各ワーカーのサイズ (次のいずれかの値)

  • MICRO​ (デフォルト、0.1 vCore)

  • SMALL​ (0.2 vCore)

  • MEDIUM​ (1 vCore)

  • LARGE​ (2 vCore)

  • XLARGE​ (4 vCore)

  • XXLARGE​ (8 vCore)

  • 4XLARGE​ (16 vCore)

いいえ

region

ワーカークラウドの地域 (次のいずれかの値)

  • us-east-1​ (デフォルト、米国東部、北バージニア)

  • us-east-2​ (米国東部、オハイオ)

  • us-west-1​ (米国西部、北カリフォルニア)

  • us-west-2​ (米国西部、オレゴン)

  • us-gov-west-1​ (MuleSoft Government Cloud)

  • eu-central-1​ (EU、フランクフルト)

  • eu-west-1​ (EU、アイルランド)

  • eu-west-2​ (EU、ロンドン)

  • ap-southeast-1​ (アジア太平洋、シンガポール)

  • ap-southeast-2​ (アジア太平洋、シドニー)

  • ap-northeast-1​ (アジア太平洋、東京)

  • ca-central-1​ (カナダ、中央部)

  • sa-east-1​ (南米、サンパウロ)

いいえ

objectStoreV2

Object Store V2 を有効にします。
デフォルトでは、この値は OSv2 の Runtime Manager 設定に一致するように設定されています。

いいえ

persistentQueues

永続的なキューを有効にします。
デフォルトでは、これは ​false​ に設定されます。.

いいえ

businessGroup

デプロイメントのビジネスグループパス
親組織から対象ビジネスグループへの完全な階層パスを指定します。次に例を示します。

<businessGroup>ParentOrg\SubOrg1\myBusinessGroup</businessGroup>

いいえ

businessGroupId

デプロイメントのビジネスグループ ID
ビジネスグループパスを指定する代わりにビジネスグループ ID を指定してアプリケーションをデプロイできます。
特定のビジネスグループへのアクセス権のみがあり、親組織へのアクセス権がない場合は、ビジネスグループ ID は必須パラメータです。
このパラメータは、プラグインバージョン 3.2.7 以降で使用できます。

いいえ

deploymentTimeout

デプロイメントプロセスの開始からアーチファクトがデプロイされたことの確認までの許容される経過時間 (ミリ秒)

デフォルト値は ​1000000​ です。.

いいえ

server

Anypoint Platform ログイン情報を持つ Maven サーバ
これは、Maven ​settings.xml​ ファイルに保存されたログイン情報を使用する場合のみ必要です。これは Mule サーバ名ではありません。

いいえ

skip

true​ に設定すると、プラグインデプロイメントゴールをスキップします。
デフォルト値は ​false​ です。.

いいえ

skipDeploymentVerification

true​ に設定すると、デプロイされるアプリケーションの検証をスキップします。
デフォルト値は ​false​ です。.

いいえ

authToken

プラットフォームにアクセスするための認証トークンを指定します。ユーザ名とパスワードを設定する代わりに、この認証方式を使用できます。
サポートされているシングルサインオン (SSO) 種別は​「ID 管理」​を参照してください。

認証トークンを使用してログインする場合のみ。

connectedAppClientId

接続アプリケーションの ​clientID​ 値を指定します。

接続アプリケーションログイン情報を使用してログインする場合のみ。

connectedAppClientSecret

接続アプリケーションのシークレットキーを指定します。

接続アプリケーションログイン情報を使用してログインする場合のみ。

connectedAppGrantType

サポートされている唯一の接続種別、​client_credentials​ を指定します。

接続アプリケーションログイン情報を使用してログインする場合のみ。

applyLatestRuntimePatch

true​ に設定すると、プラグインは CloudHub に、デプロイメント設定で指定された Mule Runtime Engine バージョンで使用可能な最新のパッチにワーカーを更新してからアプリケーションをデプロイするように指示します。
デフォルトでは、これは ​false​ に設定されます。.

いいえ

ログイン情報の暗号化

デプロイするときに暗号化ログイン情報を使用するには、Maven マスタ暗号化パスワードおよび ​settings-security.xml​ ファイルをセットアップする必要があります。

  1. Maven 設定のマスタパスワードを作成します。

    mvn --encrypt-master-password <yourMasterPassword>

    Maven はマスタパスワードを暗号化して返します。

    {l9vZ2uM5SdgHy+H12z4pX7LEOZn3Kbnqmt3kIquLjnQ=}
  2. ~/.m2 リポジトリで ​settings-security.xml​ ファイルを作成し、暗号化マスタパスワードを追加します。

    <settingsSecurity>
      <master>{l9vZ2uM5SdgHy+H12z4pX7LEOZn3Kbnqmt3kIquLjnQ=}</master>
    </settingsSecurity>
  3. Anypoint Platform パスワードを暗号化します。

    mvn --encrypt-password <yourAnypointPlatformPassword>

    Maven は Anypoint Platform パスワードを暗号化して返します。

    {HTWFGH5BG9QmvJ1B=}
  4. 暗号化 Anypoint Platform パスワードを ​settings.xml​ ファイルの <server> セクションに追加します。

    <settings>
     ...
      <servers>
       ...
        <server>
          <id>my.anypoint.credentials</id>
          <username>my.anypoint.username</username>
          <password>{HTWFGH5BG9QmvJ1B=}</password>
        </server>
       ...
      </servers>
     ...
    </settings>
  5. 設定デプロイメントで、​settings.xml​ ファイルで設定されたサーバ ID を挿入するログイン情報を参照します。

    <plugin>
      ...
      <configuration>
        ...
        <cloudHubDeployment>
          ...
          <server>my.anypoint.credentials</server>
          ...
        </cloudHubDeployment>
        ...
      </configuration>
      ...
    <plugin>

    注意: ユーザ名とパスワードがデプロイメント設定で設定されていると、定義されたサーバ ID が上書きされるため、設定されていないことを確認してください。