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、3.8.3 は非推奨です。

可能な場合は、Equality の会社の値に一致するように、含めない用語を変更しました。顧客の実装に対する影響を回避するために、一部の用語は変更されていません。

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.7.1</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 deploy -DmuleDeploy

CloudHub への再デプロイ

Mule Maven プラグインを使用して Mule アプリケーションを再デプロイするには、以前にアプリケーションをデプロイしたときと同様に ​mvn clean 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

Mule 4.5 以降では、CloudHub へのデプロイメントに最新バージョンの Mule Runtime がデプロイされる Major.Minor バージョンが必要です。 値の例: 4.5

はい

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 設定に一致するように ​true​ に設定されています。

いいえ

persistentQueues

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

いいえ

businessGroup

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

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

この値は、​businessGroupId​ が設定されている場合は省略されます。​businessGroup​ と ​businessGroupId​ が設定されていない場合、値はデフォルトでユーザーのメインビジネスグループになります。

いいえ

businessGroupId

デプロイメントのビジネスグループ ID
ビジネスグループパスを指定する代わりにビジネスグループ ID を指定してアプリケーションをデプロイできます。​businessGroupId​ と ​businessGroup​ が設定されていない場合、値はデフォルトでユーザーのメインビジネスグループになります。
特定のビジネスグループへのアクセス権のみがあり、親組織へのアクセス権がない場合は、ビジネスグループ 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​ に設定されます。

いいえ

disableCloudHubLogs

true​ に設定した場合、プラグインは、CloudHub ログを無効化して代わりに ​log4j2.xml​ ファイルで設定されたアプリケーションを使用するように CloudHub に指示します。
デフォルトでは、これは ​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 が上書きされるため、設定されていないことを確認してください。