Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerRuntime Manager REST API を使用して、独自のオンプレミスサーバーまたは他のクラウドサーバー (CloudHub の外部) への継続的デプロイメントができます。Runtime Manager REST API を使用すると、Runtime Manager が提供する多くの機能にプログラムでアクセスできます。CloudHub への継続的デプロイメントを実装する場合は、「CloudHub REST API」を参照してください。
ここで説明するプロセスを以下の方法で継続的デプロイメントパイプラインにタスクとして実装できます。
シェルとして (Microsoft PowerShell、Bash など)
スクリプトとして
Java で記述された Jenkins/Maven プラグインとして
API を介してサポートされるすべての操作、リソース、メソッド、必須プロパティ、および予想される応答の詳細なリファレンスは、 スタンドアロン Runtime Manager API リファレンスまたは Runtime Fabric API リファレンスを参照してください。
同じ機能を提供する Mule Maven プラグインも使用できます。したがって、ここで説明するプロセスは、Mule Maven プラグインを使用できない場合や、使用することが望まれない場合の代替方法として使用してください。
デプロイおよび CI 関連のアクティビティ専用の Anypoint Platform アカウントを作成することをお勧めします。
以下で説明するワークフローは、好みに応じてさまざまな方法で実行できますが、ステップは同じです。ステップの概要を以下に示します。
ユーザーを Anypoint Platform にサインインします。
そのアカウントで登録されているサーバー、サーバーグループ、およびクラスターに関する情報が取得されます。
アプリケーションがデプロイされます。
アプリケーションはアクセス管理および Runtime Manager の API とやり取りします。
ワークフローは以下の入力パラメーターを受け取る必要があります。
Username (ユーザー名) - Anypoint Platform アカウントのユーザー名
Password (パスワード) - Anypoint Platform ユーザー名のパスワード
Environment (環境) - デプロイ環境 (Dev (開発)、Test (テスト)、Prod (本番) など)
Target Name (対象名) - アプリケーションのデプロイ先の対象の名前
Target Type (対象種別) - 対象の種別 (Server (サーバー)、Cluster (クラスター)、ServerGroup (サーバーグループ)、Runtime Fabric)
Artifact Name (アーティファクト名) - デプロイする Mule アプリケーションの名前
File (ファイル) - デプロイする Mule アプリケーションのバイナリファイル
ワークフローは以下の API コールを順番に実行します。
Anypoint Platform アクセス管理 API の使用方法
有効な Anypoint Platform ユーザー名とパスワードを使用して、アクセス管理 API の /login
をコールし、後続のすべてのコールで使用する access_token
と token_type
を取得します。
Jenkins を使用する場合、タスク内で [Username (ユーザー名)] と [Password (パスワード)] を設定する必要があります。タスクでは、token_type と access_token を連結し、ワークフロープロセス全体の期間にわたってそれらを保存する必要があります。これらの項目は token = token_type + " " + access_token のように連結する必要があります (例: "bearer 895d1a05-ba24-44f2-a9df-3675c1bde97b" )。トークンはその連結された形式で、後続のすべての API コールでヘッダーとして渡す必要があります。 |
アクセス管理 API の /accounts
をコールし、組織 id
を取得します。
次に、タスクは「user.organisation.id」の場所から組織 ID を抽出し、これを後で使用する場合に備えて保存する必要があります。このステップは必須ではありません。組織 ID はその静的な性質のため、ローカルパラメーターとしてタスクに渡される可能性があるためです。 |
前のステップで取得した組織 id
を渡し、関連する環境名 (Dev
、Test
、Production
など) に基づいて正しい環境 id
を選択して、アクセス管理 API の /environments
をコールします。
ステップ 2 で取得した組織 id は API URI の一部として渡す必要があります。環境 id は、パス「data[i].id」から条件「data[i].name == inputEnvironment」を使用して抽出する必要があります (「Dev」、「Test」、「Production」、または Anypoint Platform でセットアップされた有効な環境名などの値が取得される可能性があります)。
|
スタンドアロン Runtime Manager API を使用する手順は、次のとおりです。
サーバー、クラスター、またはサーバーグループ名と、取得した組織 id
および環境 id
を渡して、Runtime Manager API の /servers
、/clusters
、または /serverGroups
をコールします。 このコールでは、targetId
を含め、このサーバー、クラスター、またはサーバーグループに関するすべてのデータが返されます。
このステップでは、後でデプロイの対象として使用する対象 id を取得します。このタスクでは、ワークフローの開始時に入力として設定された対象名に基づいて、適切なサーバー、サーバーグループ、またはクラスター ID を選択する必要があります。サーバー id は、data[i].id から条件 data[i].name == inputTargetName を使用して抽出する必要があります。
|
組織の id
と環境の id
を渡して、Runtime Manager API の /applications
をコールし、アプリケーションの id
とそのデータの残りを取得します。
このステップでは、アプリケーション id を取得し、次のステップが新規デプロイ (6a) または再デプロイ (6b) のどちらであるかを判別します。アプリケーション id は、「data[i].id」から条件「data[i].artifact.name == inputArtifactName」および「data[i].target.id == serverId」/「clusterId」/「serverGroupId」を使用して抽出する必要があります。
|
組織の id
、環境の id
、「artifactName」、targetId
(このセクションのステップ 1 で取得)、デプロイする Mule アプリケーションの .zip ファイル、および必要に応じてアプリケーション id
を渡して、Runtime Manager API の /applications
を POST します。
このステップでは、実際の Mule アプリケーションアーティファクトを対象環境およびサーバー/クラスター/サーバーグループに初めてデプロイします。ステップ 2 でアプリケーション ID を取得していない場合、POST 要求を使用します。ステップ 2 でアプリケーション ID を取得した場合、PATCH を使用して、実際の Mule アプリケーションアーティファクトを対象環境およびサーバー/クラスター/サーバーグループに再デプロイします。 |
以下で説明するワークフローは、好みに応じてさまざまな方法で実行できますが、ステップは同じです。ステップの概要を以下に示します。
まず、ユーザーを Anypoint Platform にログインします。
そのアカウントで登録されている Runtime Fabric に関する情報が取得されます。
アプリケーションがデプロイされます。
アプリケーションは MuleSoft Anypoint Platform のアクセス管理および Runtime Manager の API とやり取りします。
ワークフローは以下の入力パラメーターを受け取る必要があります。
Username (ユーザー名) - Anypoint Platform アカウントのユーザー名
Password (パスワード) - Anypoint Platform ユーザー名のパスワード
Environment (環境) - デプロイ環境 (Dev (開発)、Test (テスト)、Prod (本番) など)。
Target Settings (対象設定) - アプリケーションのデプロイ先の対象の種別 (MC) 名、および設定
Exchange Reference (Exchange 参照) - Exchange にデプロイする Mule アプリケーションの参照
Application Configuration (アプリケーション設定) - デプロイのアプリケーション設定
ワークフローは以下の API コールを順番に実行します。
Maven ツールの使用
Maven を使用して、アーティファクトを Exchange アセットマネージャーにパブリッシュします。
対象で障害が発生し、回復のためにコントロールプレーンでアーティファクトを再デプロイする必要がある場合、このステップを実行して高可用性を確保する必要があります。 |
Anypoint Platform アクセス管理 API の使用方法
有効な Anypoint Platform ユーザー名とパスワードを使用して、アクセス管理 API の /login
をコールし、後続のすべてのコールで使用する access_token
と token_type
を取得します。
Jenkins を使用する場合、タスク内で [Username (ユーザー名)] と [Password (パスワード)] を設定する必要があります。タスクでは、token_type と access_token を連結し、ワークフロープロセス全体の期間にわたってそれらを保存する必要があります。これらの項目は token = token_type + " " + access_token のように連結する必要があります (例: "bearer 895d1a05-ba24-44f2-a9df-3675c1bde97b" )。
|
トークンはその連結された形式で、後続のすべての API コールでヘッダーとして渡す必要があります。
アクセス管理 API の /accounts
をコールし、組織 id
を取得します。
次に、タスクは「user.organisation.id」の場所から組織 ID を抽出し、これを後で使用する場合に備えて保存する必要があります。このステップは必須ではありません。組織 ID はその静的な性質のため、ローカルパラメーターとしてタスクに渡される可能性があるためです。 |
前のステップで取得した組織 id
を渡し、関連する環境名 (Dev
、Test
、Production
など) に基づいて正しい環境 id
を選択して、アクセス管理 API の /environments
をコールします。
ステップ 2 で取得した組織 id は API URI の一部として渡す必要があります。環境 id は、パス「data[i].id」から条件「data[i].name == inputEnvironment」を使用して抽出する必要があります (「Dev」、「Test」、「Production」、または Anypoint Platform でセットアップされた有効な環境名などの値が取得される可能性があります)。
|
*https://anypoint.mulesoft.com/exchange/portals/anypoint-platform/f1e97bc6-315a-4490-82a7-23abe036327a.anypoint-platform/amc-application-manager/[Application Manager API^] の使用:
組織の id
と環境の id
を渡して、アプリケーションマネージャー API の deployments をコールし、アプリケーションの id
とそのデータの残りを取得します。
このステップでは、アプリケーション id を取得し、次のステップが新規デプロイ (6a) または再デプロイ (6b) のどちらであるかを判別します。アプリケーション id は、data[i].id から条件 data[i].artifact.name == inputArtifactName' and `data[i].target.targetId == `targetId` を使用して抽出する必要があります。
|
組織の id
、環境の id
、applicationName
、labels
、target
デプロイ設定 (このセクションのステップ 1 で取得した対象 ID を含む)、デプロイするパブリッシュ済み Mule アプリケーション「application」の Exchange 参照、アプリケーション configuration
、および必要に応じてアプリケーション id
を渡して、アプリケーションマネージャー API の /deployments
を POST します。
このステップでは、実際の Mule アプリケーションアーティファクトを対象環境および Runtime Fabric に初めてデプロイします。ステップ 2 でアプリケーション ID を取得していない場合、POST 要求を使用します。ステップ 2 でアプリケーション ID を取得した場合、PATCH 要求を使用して再デプロイします。
|