可以使用 Expire 動作以及現有事件主題管理到期的部署及其資源。

環境中的部署租用到期後,可以使用擴充性事件主題執行工作,例如停止備份或監控任何部署資源。為了執行這些第 2 天作業, vRealize Automation Cloud API 使用系統層級的 Expire 動作。只要組織中的部署租用到期,系統就會自動觸發此動作。 Expire 動作觸發器優先於與該部署關聯的任何資源的關閉電源事件。
備註: 在先前的產品版本中,租用到期後,會在部署層級觸發關閉電源事件。現在,會在資源層級對處於已開啟電源狀態的每個部署資源觸發關閉電源事件。
Expire 動作包含在現有事件主題 (例如 已請求的部署動作已完成的部署動作) 的裝載中,並使用 deploymentid 參數執行與部署資源相關聯的到期前和到期後工作。
備註: Expire 動作會在部署租用到期後大約 10 到 15 分鐘觸發。在實際租用到期之前,系統不會觸發租用到期事件。 Expire 動作是系統層級動作,使用者無法手動觸發與其相關聯的事件。

對於目前使用案例,您將使用已請求的部署動作事件主題以及 Expire 動作將部署中的虛擬機器作為範本進行備份。對於本案例,使用 vRealize Orchestrator 工作流程執行備份,但也可以使用擴充性動作作為訂閱的可執行項目來執行相同的工作。

程序

  1. 導覽到擴充性 > 訂閱,然後按一下新增訂閱
  2. 輸入訂閱的名稱。
  3. 狀態下,確認訂閱已啟用。
  4. 事件主題下,選取已請求的部署動作事件主題。
  5. 開啟條件選項,然後為到期動作新增篩選器:
    event.data.actionName == 'Expire'
    備註: 已請求的部署動作事件主題可由不同的部署第 2 天作業觸發,例如變更部署租用持續時間。新增租用到期動作篩選器可保證僅針對到期事件觸發訂閱。
  6. 動作/工作流程下,新增 vRealize Orchestrator 工作流程。
    此範例工作流程的架構包括可編寫指令碼的工作和工作流程元素,其中包括 複製虛擬機器,但不進行自訂工作流程,該工作流程預先設定了 vRealize Orchestrator。可編寫指令碼的工作元素包括以下範例指令碼:
    System.log("Lease expiry action triggered to clone a VM...")
    
    System.log("Deployment Id is: " + inputProperties.deploymentId);
    inputHeaders = new Properties();
    deploymentId = inputProperties.deploymentId;
    pathUriVariable = "/deployment/api/deployments/" +deploymentId +"/resources"; 
    var restClient = vRAHost.createRestClient();
    var request = restClient.createRequest("GET", pathUriVariable, null);
    var keys = inputHeaders.keys;
    for(var key in keys){
        request.setHeader(keys[key], inputHeaders.get(keys[key]));
    }
    var response = restClient.execute(request);
    System.log("Content as string: " + response.contentAsString);
    var content = response.contentAsString;
    var obj = JSON.parse(content);
    
    var object = new Properties(obj);
    var contentJson = object.content;
    for (var i = 0; i < contentJson.length; i++) {
        var resources = contentJson[i];
        
        var resourceProperties = resources.properties;
        System.log("Resource name is: " + resourceProperties.resourceName)
        resourceName = resourceProperties.resourceName;
    }
    
    var query = "xpath:name='" + resourceName + "'"; 
          var vms=Server.findAllForType("VC:VirtualMachine", query); 
          vcVM=vms[0]; 
         
          System.log("VM input is: " + vcVM);
          dataStoreOutput = datastore
          template= true;
          name="test-vm-name"
    
  7. 確定是將訂閱設定為封鎖還是非封鎖。
    備註: 如果將訂閱設定為封鎖,則意味著只有在可執行項目 (在本案例中為租用到期工作流程) 成功完成執行後,才會對部署資源觸發關閉電源事件。如果將訂閱設定為非封鎖,則意味著無論工作流程執行的狀態如何,都會對部署資源觸發關閉電源事件。
  8. 若要完成訂閱編輯,請按一下儲存

下一步

在租用到期事件觸發擴充性訂閱並且工作流程執行成功後,導覽到 vSphere Web Client 並驗證虛擬機器是否已轉換為範本。