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

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

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

前提条件

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

plugin​ 要素内に Runtime Fabric デプロイメント用の設定を追加し、次のプレースホルダーの値を Runtime Fabric 情報で置き換えます。

<plugin>
  <groupId>org.mule.tools.maven</groupId>
  <artifactId>mule-maven-plugin</artifactId>
  <version>3.7.1</version>
  <extensions>true</extensions>
  <configuration>
    <runtimeFabricDeployment>
      <uri>https://anypoint.mulesoft.com</uri>
      <muleVersion>4.3.0</muleVersion>
      <username>user</username>
      <password>pass</password>
      <applicationName>newapp</applicationName>
      <target>rtf</target>
      <environment>Sandbox</environment>
      <provider>MC</provider>
      <replicas>1</replicas>
      <properties>
        <key>value</key>
      </properties>
      <deploymentSettings>
        <enforceDeployingReplicasAcrossNodes>false</enforceDeployingReplicasAcrossNodes>
        <updateStrategy>recreate</updateStrategy>
        <clustered>false</clustered>
        <forwardSslSession>false</forwardSslSession>
        <lastMileSecurity>false</lastMileSecurity>
        <resources>
          <cpu>
            <reserved>20m</reserved>
            <limit>1500m</limit>
          </cpu>
          <memory>
            <reserved>700Mi</reserved>
          </memory>
        </resources>
        <http>
          <inbound>
            <publicUrl>url</publicUrl>
          </inbound>
        </http>
      </deploymentSettings>
    </runtimeFabricDeployment>
  </configuration>
</plugin>

Runtime Fabric へのデプロイ

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

mvn clean deploy -DmuleDeploy

Exchange のスナップショットアセット

Exchange のスナップショットアセットを Runtime Fabric にデプロイすることもできます。

開発フェーズとテストフェーズで Anypoint Exchange の ​SNAPSHOT​ バージョンアセットを使用して、些細な変更でアプリケーションのバージョン番号を増分することを回避できます。​SNAPSHOT​ バージョンのアプリケーションが Anypoint Exchange で上書きされたら、Mule Maven プラグインを使用して ​SNAPSHOT​ バージョンのアプリケーションを Runtime Fabric に再デプロイし、最新の変更をデプロイできます。

スナップショットアセットを Anypoint Exchange にパブリッシュする方法についての詳細は、​アセットライフサイクル状態​を参照してください。

アプリケーションのスナップショットを更新するたびに、アプリケーションを再デプロイして最新のスナップショットバイナリで更新します。

スナップショットアセットはデプロイ後に変更される可能性があるため、本番環境にはデプロイしないでください。

Runtime Fabric への再デプロイ

アプリケーションを再デプロイするには、デプロイしたときと同じコマンドを実行します。
Runtime Fabric は、デプロイしたアプリケーションを書き込み直します。

Authentication のメソッド

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

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

ユーザー名とパスワード

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

  • username

  • password

サーバー

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

  • server

認証トークン

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

  • authToken

接続アプリケーション

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

  • connectedAppClientId

  • connectedAppClientSecret

  • connectedAppGrantType

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

Runtime Fabric デプロイメントのパラメーターリファレンス

パラメーター 説明 必須

runtimeFabricDeployment

最上位要素

はい

uri

Anypoint Platform URI。
設定しない場合、デフォルトの https://anypoint.mulesoft.com になります。

いいえ

muleVersion

Runtime Fabric インスタンスで実行する Mule Runtime Engine のバージョン。
この値がアプリケーションで最小限必要な Mule バージョン以上であることを確認します。 デフォルトでは、使用可能な最新の Mule バージョンが選択されます。
値の例: 4.6.0​ ではデフォルトで Edge チャネルと Java 8 になる最新のビルドが選択されます。異なる LTS または Edge の選択や Java バージョンを選択する場合は、​4.6.0:1e-java17​ のように完全な Mule バージョン名を指定します。
デプロイメントに Mule Maven プラグインバージョン 3.8.0 および 4.0.0 を使用している場合、​muleVersion​ プロパティで ​releaseChannel​ と ​javaVersion​ を指定できません。これらのプロパティを指定するには、プラグインをバージョン 4.1.1 以降にアップグレードします。

いいえ

username

Anypoint Platform ユーザー名

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

password

Anypoint Platform パスワード

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

applicationName

アプリケーションのデプロイ後に Runtime Manager に表示されるアプリケーション名。

はい

target

アプリケーションをデプロイする Runtime Fabric 対象名。

はい

provider

Runtime Fabric では ​MC​ に設定。

はい

environment

対象の Anypoint Platform 環境。
この値は、次のように Anypoint Platform アカウントで設定された環境に一致する必要があります。

<environment>Sandbox</environment>

はい

replicas

デプロイする Mule アプリケーションのレプリカまたはインスタンスの数を指定します。アプリケーションあたりのレプリカの最大数は 8 です。

はい

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 サーバー名ではありません。

いいえ

properties

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

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

次に例を示します。

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

いいえ

secureProperties

最上位要素
secureProperties​ 最上位要素を使用して Mule アプリケーションのプロパティを設定し、値を保存する前に暗号化するように Runtime Fabric に指示します。

<secureProperties>
  <key>value</key>
</secureProperties>

次に例を示します。

<secureProperties>
  <http.port>8081</http.port>
</secureProperties>

いいえ

skip

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

いいえ

skipDeploymentVerification

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

いいえ

authToken

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

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

connectedAppClientId

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

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

connectedAppClientSecret

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

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

connectedAppGrantType

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

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

deploymentSettings

deploymentSettings リファレンス​で説明されているいずれかのパラメーター

いいえ

deploymentSettings パラメーターリファレンス

パラメーター 説明

enforceDeployingReplicasAcrossNodes

異なるノード間でレプリカのデプロイメントを適用します。デフォルト値は ​false​ です。

設定例:

<deploymentSettings>
  <enforceDeployingReplicasAcrossNodes>false</enforceDeployingReplicasAcrossNodes>
</deploymentSettings>

updateStrategy

使用可能な値 説明

rolling

レプリカを増分的に更新することで、可用性を維持します。成功するには、レプリカに相当する 1 つの追加リソースが必要です。
enforceDeployingReplicasAcrossNodes​ が有効になっている場合、設定できるレプリカの最大数はノードの総数より 1 つ少なくなります。

recreate

再デプロイメントの前にレプリカを終了します。再デプロイメントは ​rolling​ よりも迅速で、追加リソースは必要ありません。
enforceDeployingReplicasAcrossNodes​ が有効になっている場合、設定できるレプリカの最大数はノードの数と同じです。

デフォルト値は ​rolling​ です。

設定例:

<deploymentSettings>
  <updateStrategy>recreate</updateStrategy>
</deploymentSettings>

forwardSslSession

セッション中に SSL 転送を有効にします。デフォルト値は ​false​ です。

設定例:

<deploymentSettings>
  <forwardSslSession>true</forwardSslSession>
</deploymentSettings>

clustered

アプリケーションの複数のレプリカでのクラスタリングを有効にします。デフォルト値は ​false​ です。

設定例:

<deploymentSettings>
    <clustered>true</clustered>
</deploymentSettings>

lastMileSecurity

Last-Mile セキュリティを有効化して、このアプリケーションによって復号化される HTTPS 接続を転送します。
このためには SSL 証明書を Mule アプリケーションに含む必要があり、より多くの CPU リソースも必要です。デフォルト値は ​false​ です。
設定例:

<deploymentSettings>
    <lastMileSecurity>true</lastMileSecurity>
</deploymentSettings>

resources

cpu

reserved

アプリケーションの各レプリカに割り当てるコア数を指定します。デフォルト値は 0.5 vCore です。

limit

アプリケーションの各レプリカに割り当てる最大コア数を指定します。
reserved​ 設定が存在する場合、この値がそれ以上であることを確認してください。

memory

reserved

アプリケーションの各レプリカに割り当てるメモリ量を指定します。デフォルト値は 700 MB です。

設定例:

<deploymentSettings>
  <resources>
    <cpu>
      <reserved>20m</reserved>
      <limit>1500m</limit>
    </cpu>
    <memory>
      <reserved>700Mi</reserved>
    </memory>
  </resources>
</deploymentSettings>

http

inbound

publicURL

デプロイされるアプリケーションの URL。

ワイルドカード URL を使用した設定例:

<deploymentSettings>
  <http>
    <inbound>
      <publicUrl>myapp.example.com</publicUrl>
    </inbound>
  </http>
</deploymentSettings>

単一証明書の単一 URL を使用した設定例:

<deploymentSettings>
  <http>
    <inbound>
      <publicUrl>wwww.example.com/myapp</publicUrl>
    </inbound>
  </http>
</deploymentSettings>

persistentObjectStore

永続的なオブジェクトストアを使用するように Mule アプリケーションを設定します。デフォルトでは、これは ​false​ に設定されます。

jvm

args

アプリケーションのデプロイ時に Runtime Fabric に渡す JVM 引数を指定します。各引数を区切るには空白を使用します。

設定例:

<deploymentSettings>
  <jvm>
    <args>
      -XX:MaxMetaspaceSize=500m -XX:MaxRAMPercentage=60.0
    </args>
  </jvm>
</deploymentSettings>

generateDefaultPublicUrl

このパラメーターが true に設定されている場合、Runtime Fabric は、デプロイ済みアプリケーションの公開 URL を生成します。

disableAmLogForwarding

Anypoint Monitoring へのアプリケーションレベルログの転送を無効にします。デフォルトでは、これは ​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>
        ...
        <runtimeFabricDeployment>
          ...
          <server>my.anypoint.credentials</server>
          ...
        </runtimeFabricDeployment>
        ...
      </configuration>
      ...
    <plugin>
    ユーザー名とパスワードがデプロイメント設定で設定されていると、定義されたサーバー ID が上書きされるため、設定されていないことを確認してください。