アプリケーションデプロイメント

Exchange の各アクセラレーター実装テンプレートには、API を構築して CloudHub にデプロイするための Bash スクリプトと Windows スクリプトが含まれています。これらのスクリプトは、リポジトリ、グローバル設定、デプロイメントプロファイル、および Maven ​settings.xml​ ファイルで設定された関連プロパティに連動します。

多くのテンプレートは、実行/デバッグプロファイルをカスタマイズすることなく、Anypoint Studio から実行することもできます。ただし、一部のテンプレートはパスワードやシークレットキーなどの機密情報を保護するために、非表示のデプロイメントプロパティを利用します。設定プロファイルを更新して VM 引数として追加することで、これらのプロパティをランタイムに提供する必要があります。

Anypoint Studio からのアプリケーションの実行

次の手順は、Studio からアプリケーションを実行するためのものですが、デバッグにも適用されます。

  1. src/main/resources/config/config-local.yaml​ ファイルを更新し、そのアプリケーションにリストされている必須プロパティの上書きに適切な値を指定します。

  2. プロジェクトを右クリックし、​[Run As (別のユーザーとして実行)] → [Mule Application (configure) (Mule アプリケーション (設定))]​ を選択します。

  3. 非表示のデプロイメントプロパティ (Anypoint MQ ログイン情報など) が必要な場合は、次の例に示すように、​[Arguments (引数)]​ タブを選択してプロパティ定義を ​[VM arguments (VM 引数)]​ セクションに追加します。

     -M-Danypoint-mq.client-id=<client id> -M-Danypoint-mq.client-secret=<client secret>
    • [Run (実行)]​ をクリックしてアプリケーションを起動します。

アプリケーションをデバッグするには、代わりに 2 番目のステップで ​[Debug As (別のユーザーとしてデバッグ)] → [Mule Application (configure) (Mule アプリケーション (設定))]​ を選択します。

CloudHub のデプロイメント手順

次の手順は、CloudHub デプロイメントにのみ適用されます。

  1. 上述のように、​config-dev.yaml​ プロパティを更新します。代わりに、それらを ​settings.xml​ ファイルに追加することもできます。

  2. 次のいずれかのスクリプトを使用して、アプリケーションを CloudHub にデプロイします。

    • packageDeploy.sh​ (Mac/Linux) または ​packageDeploy.cmd​ (Windows) - アプリケーションをクリーンアップ、構築、およびデプロイする

    • deployOnly.sh​ (Mac/Linux) または ​deployOnly.cmd​ (Windows) - 以前に構築されたアプリケーションをデプロイする

  3. Anypoint で Runtime Manager コンソールを起動し、アプリケーションの適切な起動を監視します。

Maven プロファイルを使用した CloudHub デプロイメントの設定についての詳細な手順は、以下を参照してください。

デプロイメントプロファイルの設定

「Accelerator Common Resources - Source (アクセラレーター共通リソースプロジェクト - ソース)」アセットによって提供されるデフォルトの ​settings-accelerators.xml​ ファイルは、​CloudHub-DEV​ と呼ばれる 1 つのデプロイメントプロファイルを定義します。設定できる主要なプロパティについて、次の表で説明します。

プロパティ名 説明 必須

cloudhub.mavenServerId

対象 Anypoint インスタンスのログイン情報を提供する Maven サーバーエントリ

はい

cloudhub.region

対象デプロイメントリージョン

はい

cloudhub.businessGroupId

対象ビジネスグループの ID (名前ではない)

はい

cloudhub.environment

対象デプロイメント環境の正確な名前 (大文字と小文字を区別)

はい

cloudhub.applicationName

app/env プロパティからデプロイされたアプリケーション名を作成

はい

cloudhub.muleVersion

対象 Mule Runtime バージョン

はい

cloudhub.applyLatestPatch

デプロイメント時に最新のパッチを自動的に適用するには true に設定

いいえ

cloudhub.workerType

ワーカーサイズ (vCore に変換)

はい

cloudhub.workers

ワーカーの数

はい

cloudhub.objectStoreV2

ObjectStore V2 を使用するには true に設定

いいえ

cloudhub.persistentQueues

永続的なキューを使用するには true に設定

いいえ

cloudhub.skipDeploymentVerification

アプリケーションが完全にデプロイされるまで待機してから続行するには、false に設定

いいえ

cloudhub.deploymentTimeout

アプリケーションのデプロイメントが完了するまでの待機時間 (ミリ秒)

いいえ

mule.environment

使用する設定プロパティファイルを指定

はい

mule.encryptionKey

セキュアプロパティが使用される場合、暗号化キーは必須

いいえ

anypoint.platform.clientId

対象環境またはビジネスグループのクライアント ID

はい

anypoint.platform.clientSecret

対象環境またはビジネスグループのクライアントシークレット

はい

anypoint.platform.enableMonitoring

監視と視覚化を有効にするには true に設定

いいえ

前述のテンプレートは汎用です。多くのアクセラレーターには、共通リソースプロジェクトの独自のバージョンがあり、そのアクセラレーター専用の類似したテンプレートが含まれています。

アプリケーションの命名

cloudhub.applicationName​ プロパティのデフォルト設定では、次のセグメントに基づいてアプリケーション名が作成されます。

  • グローバルプレフィックス (デフォルトは ​org-​)

  • Maven アーティファクト ID (プロジェクト pom.xml から)

  • API コンプライアンスバージョン (プロジェクト pom.xml から)

  • 対象環境名 (プロファイル用にハードコード)

デフォルト設定を使用してデプロイされたアプリケーション名の一例は、​org-notifications-prc-api-v1-dev​ です。

CloudHub アプリケーション名は​グローバル​に一意である必要があります。そのため、​global-settings​ プロファイルで定義されている ​global.cloudhub.appPrefix​ プロパティを組織に固有の 2 ~ 4 文字の略語に設定することを強くお勧めします。4 文字を超えると、CloudHub 1.0 ランタイムを使用するときにデプロイメントが失敗する可能性があります (下記参照)。

Maven プロファイルを使用したアプリケーションのデプロイ

環境プロファイルのプロパティに適切な値を定義したら、Maven コマンドラインでプロファイル名を指定するだけで、個々のアプリケーションをその環境にデプロイできます。たとえば、コマンド ​mvn clean deploy -DskipTests -PCloudHub-DEV​ は、​CloudHub-DEV​ プロファイルの設定を使用してアプリケーションを構築およびデプロイします。

トラブルシューティング

次のセクションでは、一般的なデプロイメントの問題の解決策を紹介します。

Anypoint Studio にインポートされたプロジェクトのデプロイエラー

アクセラレータープロジェクトを Anypoint Studio にインポートすることを選択した場合は、Studio によってアプリケーションの ​pom.xml​ ファイルが自動的に変更される可能性があり、デプロイメントに影響する可能性があります。特に、プロジェクトをインポートするときは、[Upgrade your workspace (ワークスペースをアップグレード)] というプロンプトを必ずキャンセルしてください。問題が発生した場合は、​pom.xml​ ファイルで ​mule-maven-plugin​ の設定が次のようになっていることを確認します。

<plugin>
    <groupId>org.mule.tools.maven</groupId>
    <artifactId>mule-maven-plugin</artifactId>
    <extensions>true</extensions>
    <configuration>
        <cloudHubDeployment>
        ...
        </cloudHubDeployment>
        <classifier>${mule.app.classifier}</classifier>
    </configuration>
</plugin>

<version>​ 要素が含まれていないこと、および ​<classifier>​ 要素に上記のプロパティ参照が含まれていることを確認します。

未承認のときのエラー

unauthorized​ エラーによりデプロイメントが失敗した場合、完全なアプリケーション名が CloudHub デプロイメント名の 42 文字の制限を超えている可能性があります。プレフィックス、プロジェクト pom.xml の ​artifactId​ 値、またはデプロイメント名パターンを調整して、完全なアプリケーション名の長さが 42 文字を超えないようにします。