您可以剪下、貼上和編輯 JavaScript 範例來撰寫指令碼,用於擷取 vRealize Automation 佈建的資源實際實體。

CatalogResource 類型代表 vRealize Automation 中的佈建資源。這個類型有 ProviderBinding 類型的屬性,代表目錄資源與其提供者之間的關係,其屬性如下:

  • bindingId - 代表提供者唯一的實體識別碼

  • providerRef - 識別直接與 vRealize Automation 元件登錄中登錄的服務相對應的目錄提供者

如需有關 vRealize Orchestrator 中指令碼處理的詳細資訊,請參閱《使用 VMware vRealize Orchestrator 進行開發》

取得做為 vRealize Automation 目錄資源佈建的虛擬機器

這個範例使用 vRealize Automation 主機及其 IaaS 主機做為輸入參數,而且,對於提供的資源識別碼,傳回相對應的 IaaS 虛擬機器。指令碼代碼僅取用 iaas-service 提供者佈建的 Virtual Machine 類型目錄資源。

表格 1. 輸入變數

變數

類型

vcacHost

vCACCAFE:VCACHost

iaasHost

vCAC:VCACHost

// Id of the catalog resource (or vCACCAFECatalogResource_instance.getId())
var resourceId = "c222629c-6f90-4458-8c92-8ece0ba06173";

var resource = vCACCAFEEntitiesFinder.getCatalogResource(vcacHost, resourceId);

var resourceType = resource.getResourceTypeRef().getLabel();
System.log("resource type: " + resourceType);

var providerBinding = resource.getProviderBinding();

var bindingId = providerBinding.getBindingId();
System.log("provider binding id: " + bindingId);

var provider = providerBinding.getProviderRef();
System.log("provider id: " + provider.getId());
System.log("provider name: " + provider.getLabel());

if ((resourceType == "Virtual Machine") && (provider.getLabel() == "iaas-service")) {
    System.log("It is an IaaS VM!");

    // IaaS virtual machine
    var vm = Server.findForType("vCAC:VirtualMachine", bindingId);
    System.log("IaaS VM id: " + vm.virtualMachineID);
    System.log("IaaS VM name: " + vm.displayName);
    
    // IaaS Entity
    var entity = System.getModule("com.vmware.library.vcac").getVirtualMachineEntityFromId(iaasHost, bindingId);
    System.log("IaaS entity id: " + entity.keyString);
}