パイプライン タスクをバインドすることは、パイプラインの実行時にタスクの依存関係を作成することを意味します。パイプライン タスクのバインドは、いくつかの方法で作成できます。タスクを別のタスクにバインドしたり、変数と式にバインド、または条件にバインドしたりできます。

クラウド テンプレート タスクでドル記号によるバインドをクラウド テンプレート変数に適用する方法

Code Stream パイプライン クラウド テンプレート タスクでは、ドル記号によるバインドをクラウド テンプレート変数に適用できます。Code Stream で変数を変更する方法は、クラウド テンプレートでの変数プロパティのコーディングによって異なります。

ドル記号によるバインドをクラウド テンプレート タスクで使用する必要があるにもかかわらず、クラウド テンプレート タスクで現在使用しているバージョンのクラウド テンプレートではそれができない場合は、Cloud Assembly クラウド テンプレートを変更し、新しいバージョンを展開します。次に、クラウド テンプレート タスクで新しいバージョンのクラウド テンプレートを使用し、必要に応じてドル記号によるバインドを追加します。

Cloud Assembly クラウド テンプレートで利用できるプロパティ タイプにドル記号によるバインドを適用するには、適切な権限が必要です。

  • Cloud Assembly でクラウド テンプレートの展開を作成したユーザーと同じロールを持っていることが必要です。
  • パイプラインをモデル化したユーザーとパイプラインを実行したユーザーが別々のユーザーで、ロールも異なる場合があります。
  • 開発者が Code Stream の実行者ロールを持ち、パイプラインをモデル化する場合、その開発者は、クラウド テンプレートを展開したユーザーと同じ Cloud Assembly ロールも持っている必要があります。たとえば、Cloud Assembly 管理者のロールが必要な場合があります。
  • パイプラインの作成および展開の作成を行えるのは、パイプラインをモデル化したユーザーのみです。これは、必要な権限を持っているためです。

クラウド テンプレート タスクで API トークンを使用するには、次の操作を実行します。

  • パイプラインをモデル化したユーザーは、Code Stream 実行者ロールを持つ別のユーザーに API トークンを提供できます。実行者がパイプラインを実行する場合、API トークンと、API トークンで作成された認証情報が使用されます。
  • ユーザーがクラウド テンプレート タスクで API トークンを入力すると、パイプラインで必要な認証情報が作成されます。
  • API トークンの値を暗号化するには、[変数の作成] をクリックします。
  • API トークンの変数を作成せずに、API トークンをクラウド テンプレート タスクで使用する場合、API トークンの値は、プレーン テキストで表示されます。

クラウド テンプレート タスクでドル記号によるバインドをクラウド テンプレート変数に適用するには、次の手順を実行します。

入力変数プロパティ(integerVarstringVarflavorVarBooleanVarobjectVararrayVar など)が定義されているクラウド テンプレートを基礎として使用します。resources セクションで定義されているイメージ プロパティを確認できます。クラウド テンプレート コードのプロパティは、次のようになります。

formatVersion: 1
inputs:
  integerVar:
    type: integer
    encrypted: false
    default: 1
  stringVar:
    type: string
    encrypted: false
    default: bkix
  flavorVar:
    type: string
    encrypted: false
    default: medium
  BooleanVar:
    type: boolean
    encrypted: false
    default: true
  objectVar:
    type: object
    encrypted: false
    default:
      bkix2: bkix2
  arrayVar:
    type: array
    encrypted: false
    default:
      - '1'
      - '2'
resources:
  Cloud_Machine_1:
    type: Cloud.Machine
    properties:
      image: ubuntu
      flavor: micro
      count: '${input.integerVar}'

image および flavor には、ドル記号の変数 ($) を使用できます。例:

resources:
  Cloud_Machine_1:
    type: Cloud.Machine
    properties:
      input: '${input.image}'
      flavor: '${input.flavor}'

Code Stream パイプラインでクラウド テンプレートを使用してドル記号によるバインドを追加するには、次の手順を実行します。

  1. Code Stream で、[パイプライン] > [空白のキャンバス] の順にクリックします。
  2. パイプラインに [クラウド テンプレート] タスクを追加します。
  3. クラウド テンプレート タスクで、[クラウド テンプレート ソース] として [Cloud Assembly クラウド テンプレート] を選択し、クラウド テンプレート名を入力して、クラウド テンプレートのバージョンを選択します。
  4. パイプラインの認証情報を提供する API トークンを入力できます。クラウド テンプレート タスクで API トークンを暗号化する変数を作成するには、[変数の作成] をクリックします。
  5. 表示される [パラメータと値] テーブルで、パラメータの値を確認します。flavor のデフォルト値は smallimage のデフォルト値は ubuntu です。
  6. Cloud Assembly のクラウド テンプレートを変更する必要があるとします。その場合は、たとえば、次のような操作を行います。
    1. array タイプのプロパティを使用するように flavor を設定します。Cloud AssemblyFlavor に対してコンマ区切り値を使用できるのは、タイプが array の場合です。
    2. [[展開]] をクリックします。
    3. [展開タイプ] 画面で、展開名を入力し、クラウド テンプレートのバージョンを選択します。
    4. [展開の入力] 画面では、Flavor の値を 1 つ以上定義できます。
    5. [展開の入力] には、クラウド テンプレート コードで定義されているすべての変数が含まれています。[展開の入力] は、クラウド テンプレート コードで定義されているとおりに表示されます。たとえば、Integer VarString VarFlavor VarBoolean VarObject VarArray Var などがあります。String VarFlavor Var は文字列の値で、Boolean Var はチェックボックスです。
    6. [[展開]] をクリックします。
  7. Code Stream で新しいバージョンのクラウド テンプレートを選択して、[パラメータと値] テーブルに値を入力します。クラウド テンプレートでは、次のタイプのパラメータがサポートされます。これらのパラメータにより、ドル記号変数を使用して Code Stream バインドを有効にできます。Code Stream クラウド テンプレート タスクのユーザー インターフェイスと Cloud Assembly クラウド テンプレートのユーザー インターフェイスには、若干の違いがあります。Cloud Assembly のクラウド テンプレートのコーディングによっては、Code Stream のクラウド テンプレート タスクで値を入力できない場合があります。
    1. [flavorVar] の場合、クラウド テンプレートで定義されているタイプが文字列または配列であるときは、文字列またはコンマ区切り値の配列を入力します。配列は、たとえば test, test のように入力します。
    2. [BooleanVar] の場合は、ドロップダウン メニューで [true] または [false] を選択します。変数のバインドを使用するには、$ を入力して、リストから変数のバインドを選択します。BooleanVar テキスト領域にドル記号を入力してバインド変数を追加すると、使用可能なブール変数が選択項目として表示されます。
    3. [objectVar] の場合は、入力する値を中括弧と引用符で囲みます({"bkix":"bkix":} のような形式になります)。
    4. クラウド テンプレートに渡された [objectVar] は、そのクラウド テンプレートに基づいたさまざまな方法で使用できます。JSON オブジェクトに対して文字列形式を使用できるため、キーと値のペアをコンマで区切ってキーと値のテーブルに追加できます。JSON オブジェクトには、プレーン テキストを入力することも、JSON の標準文字列形式であるキーと値のペアを入力することもできます。
    5. [arrayVar] の場合は、コンマ区切り入力値を配列として入力します(["1","2"] のような形式になります)。
  8. パイプラインで、入力パラメータを配列にバインドできます。
    1. [入力] タブをクリックします。
    2. 入力の名前を入力します。たとえば、arrayInput のように入力します。
    3. [パラメータと値] テーブルで [arrayVar] をクリックして、${input.arrayInput} と入力します。
    4. パイプラインを保存して有効にした後、パイプラインを実行するときに配列の入力値を指定する必要があります。たとえば、["1","2"] と入力して [実行] をクリックします。

ここまで、Code Stream パイプライン クラウド テンプレート タスクでドル記号 ($) 変数のバインドをクラウド テンプレート内で使用する方法について説明しました。

パイプラインの実行時にパラメータをパイプラインに渡す方法

パイプラインに入力パラメータを追加すると、Code Stream が入力パラメータをパイプラインに渡すことができます。この場合、ユーザーは、パイプラインの実行時、入力パラメータの値を入力する必要があります。パイプラインに出力パラメータを追加すると、パイプライン タスクは、タスクからの出力値を使用できます。Code Stream では、独自のパイプライン ニーズに対応したさまざまな方法で各種のパラメータを使用することがサポートされています。

たとえば、REST タスクを含むパイプラインの実行時に Git サーバの URL を入力するためのプロンプトを表示するには、REST タスクを Git サーバの URL にバインドします。

変数のバインドを作成するには、REST タスクに URL バインド変数を追加します。パイプラインが実行され、REST タスクに到達すると、ユーザーは Git サーバの URL の入力を求められます。バインドを作成するには、次の手順を実行します。

  1. パイプラインで、[入力] タブをクリックします。
  2. パラメータを設定するには、[パラメータの自動挿入][Git] をクリックします。

    Git パラメータのリストが表示されます。このリストに [GIT_SERVER_URL] が含まれています。Git サーバの URL にデフォルト値を使用する必要がある場合は、このパラメータを編集します。

  3. [モデル] をクリックし、REST タスクをクリックします。
  4. [タスク] タブの [URL] 領域に $ と入力し、[input] を選択してから [GIT_SERVER_URL] を選択します。

    URL テキスト領域にドル記号を入力してバインド変数を追加し、入力 を選択すると、使用可能な Git 入力パラメータが選択項目として表示されます。

    エントリは [${input.GIT_SERVER_URL}] のようになります。

  5. タスクの変数バインドの整合性を確認するには、[タスクの検証] をクリックします。

    Code Stream は、タスクが正常に検証されたことを示します。

  6. パイプラインが REST タスクを実行するときに、ユーザーは Git サーバの URL の入力を求められます。そうしないと、タスクの実行が終了しません。

入力および出力パラメータを作成して 2 つのパイプライン タスクをバインドする方法

タスクをまとめてバインドするときは、受信タスクの入力設定にバインド変数を追加します。その後、パイプラインが実行されたら、バインド変数を必要な入力に置き換えます。

パイプライン タスクをまとめてバインドするには、入力パラメータと出力パラメータでドル記号変数 ($) を使用します。その方法を次の例で示します。

パイプラインで REST タスクの URL を呼び出し、応答を出力する必要があるとします。URL を呼び出して応答を出力するには、REST タスクに入力パラメータと出力パラメータの両方を含める必要があります。また、タスクを承認できるユーザーも必要です。ユーザー操作タスクを含めることで、パイプラインの実行時に別のユーザーがタスクを承認できるようにします。この例は、入力パラメータと出力パラメータで式を使用し、パイプラインにタスクの承認を待機させる方法を示しています。

  1. パイプラインで、[入力] タブをクリックします。

    パイプラインの 入力 タブには、Gerrit、Git、および Docker 入力パラメータの選択項目が表示され、各選択項目で使用可能なパラメータが一覧表示されます。

  2. [パラメータの自動挿入][なし] のままにします。
  3. [追加] をクリックし、パラメータ名、値、および説明を入力してから、[OK] をクリックします。例:
    1. URL 名を入力します。
    2. 値として {Stage0.Task3.input.http://www.docs.vmware.com} を入力します。
    3. 説明を入力します。
  4. [出力] タブをクリックし、[追加] をクリックして、出力パラメータ名とマッピングを入力します。

    パイプラインの 出力 タブでは、出力パラメータを追加し、表示される一覧から REST 応答パラメータを選択できます。

    1. 一意の出力パラメータ名を入力します。
    2. [リファレンス] 領域をクリックし、$ と入力します。
    3. ポップアップ表示されたオプションを選択して、タスク出力マッピングを入力します。[Stage0][Task3][output][responseCode] の順に選択します。[OK] をクリックします。

      出力パラメータを追加すると、出力 タブに、追加したパラメータの名前と、パイプライン ステージおよびタスクでのそのリファレンスが表示されます。

  5. パイプラインを保存します。
  6. [アクション] メニューから [実行] をクリックします。
  7. [アクション] > [実行の表示] の順にクリックします。
  8. パイプラインの実行をクリックし、定義した入力パラメータと出力パラメータを確認します。

    パイプラインの実行には、URL 入力パラメータと入力された URL、および応答出力パラメータと選択された応答コードが表示されます。

  9. パイプラインを承認するには、[ユーザー操作] をクリックし、[アクティブなアイテム] タブで承認のリストを表示します。あるいは、[実行] に留まったままタスクをクリックし、[承認] をクリックします。
  10. [承認] ボタンと [拒否] ボタンを有効にするには、実行の横にあるチェック ボックスをクリックします。
  11. 詳細を表示するには、ドロップダウンの矢印を展開します。
  12. タスクを承認するには、[承認] をクリックし、理由を入力して [OK] をクリックします。

    ユーザー操作の詳細には、承認申請者、承認申請日時、必須の承認者、および承認の有効期限が表示されます。

  13. [実行] をクリックし、パイプラインが続行されることを確認します。

    ユーザー操作を承認すると、パイプラインは続行され、パイプライン実行のステータスは [実行中] になります。

  14. パイプラインが失敗した場合は、エラーを修正してからパイプラインを保存し、再度実行します。

    パイプラインが完了すると、パイプライン実行のステータスは [完了] になります。

変数と式の詳細情報

パイプライン タスクをバインドするときに変数と式を使用する方法の詳細については、Code Stream でパイプライン タスクをバインドするときに使用できる変数と式を参照してください。

条件変数バインドでパイプライン タスクの出力を使用する方法については、条件タスクで変数バインドを使用して、Code Stream でパイプラインを実行または停止する方法を参照してください。