Automation Service Brokerの申請フォームをカスタマイズするときに、VMware Aria Automation Orchestrator アクションの結果に基づいていくつかのフィールドの動作を設定することができます。

VMware Aria Automation Orchestratorアクションを使用する方法はいくつかあります。3 番目のソースからデータを取得するアクションや、サイズとコストを定義するスクリプトを使用できます。

最初の例では、手動で追加したフィールドを使用して基盤となるプロセスを理解します。2 つ目の例では、同じ前提の下でテンプレート フィールドを使用します。

3 つ目の例は、カタログ申請フォームに追加されるカスタム オプションに基づいています。ここでは、ユーザーはカスタム VMware Aria Automation Orchestratorアクションの結果に基づいてフォルダを選択します。

4 番目の例では、VMware Aria Automation Orchestratorワークフロー属性を使用して、申請フォームのフィールドをカスタマイズします。

次の例以外の例については、VMware Cloud Management ブログを参照してください。

手動で追加したフィールドのサイズとコストの例

この使用事例では、カタログ ユーザーが仮想マシンのサイズを選択したらそのマシンの 1 日あたりのコストを表示できるようにします。この例を実行するには、サイズとコストを関連付けるVMware Aria Automation Orchestratorスクリプトを使用します。次に、サイズ フィールドとコスト フィールドをテンプレートのカスタム フォームに追加します。コスト フィールドに表示される値は、サイズ フィールドによって決まります。

  1. VMware Aria Automation Orchestratorで、getWindows10Cost という名前のアクションを構成します。
    サイズとコストを操作する vRealize Orchestrator アクションの例
  2. スクリプトを追加します。

    次の例のスクリプトを使用できます。

    var cost = "Unknown";
    
    switch(deploymentSize) {
    	case 'small' : cost = "$15";break;
    	case 'medium' : cost = "$25";break;
    	case 'large' : cost = "$45";break ;
    	
    	default : break ;
    }
    
    return cost;
  3. deploymentSizeを入力文字列として追加します。
  4. Automation Service Brokerで、[サイズ] フィールドをテンプレートのカスタム フォームに追加し、設定します。

    サイズ フィールドは、Small、Medium、および Large の値を含むドロップダウン要素として設定します。

    カスタム フォームで入力された [サイズ] フィールドの値。

    [値] タブで、次のプロパティ値を構成します。

    • デフォルト値 = Large
    • 値のオプション
      • 値のソース = 定数
      • 値の定義 = small|Small,medium|Medium,large|Large
  5. [サイズ] フィールドで選択された値に基づいてVMware Aria Automation Orchestratorアクションに定義されているようにコストを表示する [コスト] フィールドを、テキスト フィールドとして追加します。
    カスタム フォームで入力された [コスト] フィールドの値。

    [値] タブで、次のプロパティ値を構成します。

    • デフォルト値 = 外部ソース
    • アクションの選択 = <VMware Aria Automation Orchestratorアクション フォルダ>/getWindows10Cost
    • アクションの入力
      • deploymentSize。この値は、アクションで入力として設定されています。
      • フィールド
      • サイズ:これは、以前に作成したフィールドです。
  6. カスタム フォームを有効にし、保存します。
  7. これが機能していることを確認するには、カタログ内のアイテムを要求します。選択した [サイズ] 値に基づいて [コスト] フィールドに値が入力されることを確認します。
    カタログの入力された例

スキーマ要素に基づくコストの例

この使用事例では、テンプレートのフレーバー プロパティに基づく 1 日あたりのマシンのコストがカタログ ユーザーに表示されるようにします。この例を実行するには、前の例のVMware Aria Automation Orchestratorスクリプトを使用します。ただし、この使用事例でのコストは、ユーザーが Automation Service Brokerカタログ アイテムを要求するときにカスタム フォームで選択したフレーバー サイズに基づいて計算されます。

この単純なテンプレートの例には、ユーザーがフレーバー プロパティを選択するサイズ入力フィールドが含まれています。
テンプレートでフレーバー マッピングを入力する例
この例では、カスタム フォームで Select machine sizeという名前のフィールドを使用します。
カスタム フォーム デザイナでの値オプション
コストの deploymentSize の入力は、[マシンサイズの選択] フィールドに基づきます。
カタログ申請のスキーマ サイズ フィールドに基づくコスト

カスタム アクションに基づくターゲット フォルダの例

この使用事例では、カタログ ユーザーがマシンをあるフォルダから別のフォルダに移動するときに、使用可能なフォルダから選択できるようにします。この例を実行するには、カタログでアクションを要求するユーザーが使用できるフォルダを返すカスタム アクションをVMware Aria Automation Orchestrator内で作成します。次に、カタログ申請フォームの [ターゲット フォルダ] フィールドをカスタマイズします。

カタログでは、この例で使用されている [仮想マシンをフォルダに移動] ワークフローは、Automation Assembler で作成されたカスタム リソース アクションとして公開されます。

  1. VMware Aria Automation Orchestratorで、getFolderForUser という名前のアクションを作成します。
    1. [スクリプト] タブで、アクションの入力を追加し、出力の戻り値のタイプを選択して、スクリプトを追加します。

      次の例のスクリプトを使用できます。

      var parentTargetDirName = "users";
      var sdkConnection = VcPlugin.findSdkConnectionForUUID(vcUuid);
      var rootFolder = sdkConnection.getAllVmFolders(null, "xpath:matches(name,'" + parentTargetDirName + "')")[0];
      var result = new Array();
      for each(var folder in rootFolder.childEntity) {
          if (folder instanceof VcFolder && folder.permission.length > 0) {
              var entityPrivilege = sdkConnection.authorizationManager.hasUserPrivilegeOnEntities([folder], username, ["System.Read"])[0];
              if (entityPrivilege.privAvailability[0].isGranted) {
                  result.push(folder);
              }
          }
      }
      return result;
    2. アクションの編集を終了したら、[保存] をクリックします。
  2. Automation Assemblerで、ChangeFolder という名前のカスタム リソース アクションを作成します。
    1. [Cloud.vSphere.Machine] リソース タイプを選択します。
    2. [仮想マシンをフォルダに移動] ワークフローを選択します。
  3. ユーザーがアクションを申請するときに表示される申請フォームをカスタマイズします。
    1. ChangeFolderアクションを開きます。
    2. [要求パラメータの編集] をクリックします。
    3. [ターゲット フォルダ] フィールドの表示方法をカスタマイズします。
      値のオプション サンプル値
      値のソース 外部ソース
      アクションの選択 getFolderForUser
      アクションの入力

      username Field

      [文字列の選択] > [申請情報フィールド] > [申請者] の順に移動します。

      [選択] をクリックします。

      アクションの入力

      vcUuid

      [文字列の選択] > [申請情報フィールド] > [リソースのプロパティ] > [vCenter UUID] の順にクリックします。

      [選択] をクリックします。

    4. [保存] をクリックします。

ユーザーはカタログ内のアクションを申請するとき、仮想マシンのターゲット フォルダを使用可能なフォルダから選択できます。

ワークフロー属性に基づくホスト名の例

この使用事例では、 VMware Aria Automation Orchestratorワークフロー属性を使用して申請フォームの URL フィールドをカスタマイズします。この例を実行するには、定数値を持つ属性または変数、あるいは構成要素にバインドされている属性または変数を使用する VMware Aria Automation Orchestratorワークフローが必要です。ワークフローを実行する前にバインドが実行されるため、属性または変数には初期値を設定する必要があります。
  1. VMware Aria Automation Orchestratorで、既存のワークフローを作成またはクローン作成します。たとえば、[REST ホストの追加] ワークフローのクローンを作成します。
    1. [変数] タブで、変数を追加して構成要素にバインドします。
      値のオプション サンプル値
      名前 hostname
      タイプ string
      設定 [構成にバインド] オプションを有効にします。

      [構成] テキスト ボックスで、変数をバインドする構成を選択します。たとえば、カスタムの [vRO 構成: hostname] 要素を選択します。

    2. ワークフローを保存します。
  2. Automation Service Brokerにワークフローをインポートします。
  3. 申請フォームをカスタマイズします。
    1. フォーム デザイナで [URL] 要素をクリックします。
    2. [値] タブで、値のソースを [バインド フィールド] に設定します。
    3. [値フィールド] > [申請情報フィールド] の順にクリックします。
    4. hostname 変数、または使用可能な任意のワークフロー属性を選択します。
  4. フォームを保存して有効にします。

ユーザーがカタログからワークフローを申請すると、URL フィールドは hostname 変数に基づいて入力されます。

別のプロジェクトに切り替えると、ワークフローの取得元が別の VMware Aria Automation Orchestrator統合に変更される可能性があるため、ワークフロー属性は再計算されます。