您必須設定 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 中執行時,佈建或生命週期事件資料裝載會放入此參數中。您也可以包含單獨的輸入參數,這些參數符合事件裝載中的欄位的名稱和類型。