vRealize Orchestrator ワークフローは、IaaS サービス メッセージをサポートするように設定する必要があります。

プロビジョニングおよびライフサイクル イベント トピックのスキーマ

マシン プロビジョニングとマシン ライフサイクル イベント トピックでは、同じライフサイクル スキーマを使用します。違いは、トリガ状態にあります。マシン プロビジョニングでは、プロビジョニングの状態とイベントに基づいてメッセージを受信し、マシン ライフサイクルでは、アクティブな状態とイベントに基づいてメッセージを受信します。一部のプロビジョニングの状態には BuildingMachine および Disposing があります。一部のライフサイクルの状態には InstallTools および Off があります。

イベント メッセージは、イベント データ ペイロードです。イベント データ ペイロードの構造を次に示します。

{
  machine : {
      id                : STRING,      /* IaaS machine ID */
      name              : STRING,      /* machine name */
      externalReference : STRING,      /* machine ID on the hypervisor */
      owner             : STRING,      /* machine owner */ 
      type              : INTEGER,     /* machine type: 0 - virtual machine; 1 - physical machine; 2 - cloud machine */ 
      properties        : Properties   /* machine properties, see notes below how to expose virtual machine properties */            
  },
  blueprintName   : STRING,      /* blueprint name */
  componentId     : STRING,      /* component id */
  componentTypeId : STRING,      /* component type id */
  endpointId      : STRING,      /* endpoint id */
  requestId       : STRING,      /* request id */
  lifecycleState  : {												/* see Life Cycle State Definitions*/
      state : STRING,
      phase : STRING,
      event : STRING
  },
  virtualMachineEvent                 : STRING,     /* fire an event on that machine - only processed by Manager Service as consumer */
  workflowNextState                   : STRING,     /* force the workflow to a specific state - only processed by Manager Service as consumer */
  virtualMachineAddOrUpdateProperties : Properties, /* properties on the machine to add/update - only processed by Manager Service as consumer */
  virtualMachineDeleteProperties      : Properties  /* properties to remove from the machine - only processed by Manager Service as consumer */
}

vRealize Orchestrator パラメータは、名前とタイプによってイベント ペイロードにマップされます。

virtualMachineEventworkflowNextState を出力パラメータとして使用する場合、入力する値は、イベントをトリガし現在の vRealize Orchestrator ワークフローを開始したワークフローの状態またはイベントを表す必要があります。入力可能なライフサイクルの状態とイベントを確認するには、VMPS マスター ワークフローのライフサイクルの状態およびマシン タイプ別のプロビジョニング ライフサイクルの状態を参照してください。

拡張性のカスタム プロパティの使用

仮想マシンのカスタム プロパティは、ライフサイクルの状態に対する拡張性カスタム プロパティとして指定しない限り、イベント ペイロードには含まれません。これらのプロパティは、IaaS のエンドポイント、予約、ブループリント、申請、およびカスタム プロパティをサポートするその他のオブジェクトに追加できます。

オブジェクトに追加するカスタム プロパティの形式は Extensibility.Lifecycle.Properties.{workflowName}.{stateName} です。

たとえば、仮想マシンの状態が BuildingMachine の場合に、非表示のプロパティと「Virtual」で始まるすべてのプロパティを含める場合は、ブループリントのマシンにカスタム プロパティを追加します。この例のカスタム プロパティの名前は Extensibility.Lifecycle.Properties.VMPSMasterWorkflow32.BuildingMachine で、値は、コンマで区切られた __* および Virtual* です。

二重のアンダー スコア (__*) には、非表示のプロパティが含まれています。値 Virtual* には、virtual で始まるすべてのプロパティが含まれています。アスタリスク (*) はワイルドカードで、値として単独で使用することができますが、この方法でワイルドカードを使用すると大量のデータが転送されることになります。

カスタム プロパティを含む連続でトリガされる複数のワークフロー サブスクリプションがある場合は、ペイロード チェックにカスタム プロパティが保持されていることを確認するためのワークフローに適切なエントリを含める必要があります。

表 1. カスタム プロパティを保持するタスクのエントリ

状態

タスクのエントリ

追加または更新されたカスタム プロパティ

virtualMachineAddOrUpdateProperties = payload.virtualMachineAddOrUpdateProperties || new Properties();

削除されたカスタム プロパティ

virtualMachineDeleteProperties = payload.virtualMachineDeleteProperties || new Properties();

ライフサイクルまたはプロビジョニング スキーマに基づいた vRealize Orchestrator ワークフローの作成

作成するカスタム ワークフローには、タイプが Propertiespayload 入力パラメータが必要です。ワークフローが vRealize Orchestrator で実行されると、プロビジョニングまたはライフサイクル イベント データのペイロードがこのパラメータに配置されます。また、イベント ペイロードのフィールドに指定された名前とタイプに一致する個別の入力パラメータを含めることもできます。