Code Stream でクラウド テンプレート タスクを使用するときに、一般的に問題となるのは、そのタスクの出力をパイプラインの後続のタスクで使用する方法です。クラウド マシンなど、クラウド テンプレート タスクの出力を使用するには、クラウド テンプレート タスクの展開の詳細内でリソース プロパティとクラウド マシンの IP アドレスを検索する方法を把握しておく必要があります。

たとえば、VMware クラウド テンプレートの展開の詳細には、クラウド マシン リソースとその IP アドレスが含まれています。パイプラインでは、クラウド マシンと IP アドレスを変数として使用して、クラウド テンプレート タスクを REST タスクにバインドすることができます。

展開の詳細を使用できるようにするには、VMware クラウド テンプレートの展開が完了している必要があるため、クラウド マシンの IP アドレスを検索する際に使用する方法は一般的ではありません。その後、VMware クラウド テンプレート展開のリソースを使用して、パイプライン タスクをバインドすることができます。

  • パイプラインのクラウド テンプレート タスクに表示されるリソース プロパティは、Cloud Assembly の VMware クラウド テンプレートで定義されます。
  • このクラウド テンプレートの展開が完了した時期が不明な場合があります。
  • 展開が完了した後に Code Stream のクラウド テンプレート タスクで表示できるのは、VMware クラウド テンプレートの出力プロパティのみです。

この例は、アプリケーションを展開し、さまざまな API を呼び出す場合に特に便利です。たとえば、VMware クラウド テンプレートを呼び出すクラウド テンプレート タスクを使用し、呼び出した VMware クラウド テンプレートで REST API を使用して Wordpress アプリケーションを展開するとします。この場合、展開の詳細内で展開されたマシンの IP アドレスを特定し、API を使用してテストすることができます。

クラウド テンプレート タスクでは、オート フィルによって事前入力された詳細を表示することにより、変数のバインドを使用することができます。変数のバインド方法はユーザーが選択できます。

次の例は、この選択方法を示します。

  • 実行されて成功したパイプライン内で、クラウド テンプレート タスクの展開の詳細とリソース プロパティを検索します。
  • 展開の詳細のリソース セクションで、クラウド マシンの IP アドレスを見つけます。
  • パイプラインのクラウド テンプレート タスクの後に REST タスクを追加します。
  • REST タスクの URL 内でクラウド マシンの IP アドレスを使用して、クラウド テンプレート タスクを REST タスクにバインドします。
  • パイプラインを実行して、クラウド テンプレート タスクから REST タスクまでのバインド作業を監視します。

前提条件

  • バージョン管理された稼動中の VMware クラウド テンプレートがあることを確認します。
  • Cloud Assembly で VMware クラウド テンプレートの展開に成功したことを確認します。
  • VMware クラウド テンプレートを使用するクラウド テンプレート タスクが含まれているパイプラインがあることを確認します。
  • パイプラインが実行されて、成功したことを確認します。

手順

  1. パイプラインで、クラウド テンプレート タスクの展開の詳細のリソース セクションで、クラウド マシンの IP アドレスを特定します。
    1. [アクション] > [実行の表示] の順にクリックします。
    2. 成功したパイプラインの実行中に、パイプラインの実行へのリンクをクリックします。
    3. パイプライン名の下にある [タスク] へのリンクをクリックします。
    4. [出力] 領域で、展開の詳細を特定します。
    5. 展開の詳細のリソース セクションで、クラウド マシンの名前を特定します。
      REST タスクの URL に、クラウド マシン名の構文を含めます。
    6. クラウド テンプレート タスクの出力プロパティのバインド式を検索するには、[JSON 出力の表示] をクリックし、アドレス プロパティを検索して、クラウド マシンの IP アドレスを特定します。
      バインド式は、JSON 出力のプロパティと検索アイコンの下に表示されます。
      アドレス リソース プロパティには、クラウド マシンの IP アドレスが表示されます。例:
      "resources": {
      		"Cloud_Machine_1[0]": {
      			"name": "Cloud_Machine_1[0]",
      			"powerState": "ON",
      			"address": "10.108.79.51",
      			"resourceName": "Cloud_Machine_1-mcm187515-152919380820"
  2. パイプライン モデルに戻り、REST タスクに URL を入力します。
    1. [アクション] > [パイプラインの表示] の順にクリックします。
    2. REST タスクをクリックします。
    3. REST 要求の URL 領域に、$ と入力し、[Stage][Task][output][deploymentDetails] を選択し、resources と入力します。
      オート フィルを使用して事前入力する機能は、 resources を入力する時点まで使用できます。
    4. 展開の詳細で、{'Cloud_Machine_1[0]'].address} のようにクラウド マシン リソースの残りの部分を入力します。
      クラウド マシンを入力する場合は、記載されている角括弧の表記を使用する必要があります。
    完全な URL の形式は、 ${Stage0.Task0.output.deploymentDetails.resources{'Cloud_Machine_1[0]'].address} です。
  3. パイプラインを実行し、REST タスクを監視して、クラウド テンプレート タスクの出力内のクラウド マシンと IP アドレスを、テストする URL として使用します。

結果

完了です。クラウド テンプレート タスクの展開の詳細と JSON 出力にクラウド マシン名と IP アドレスが見つかりました。これらを使用して、クラウド テンプレート タスクの出力をパイプラインの REST タスクの URL 入力にバインドしました。

次のタスク

引き続き、パイプライン内の他のタスクで、クラウド テンプレート タスク内のリソースのバインド変数を使用する方法について確認します。