Service Broker 요청 양식을 사용자 지정할 때 vRealize Orchestrator 작업의 결과를 기준으로 일부 필드의 동작을 설정할 수 있습니다.
vRealize Orchestrator 작업을 사용할 수 있는 방법에는 몇 가지가 있습니다. 제3의 소스에서 데이터를 가져오는 작업을 사용하거나 크기와 비용을 정의하는 스크립트를 사용할 수 있습니다.
첫 번째 예는 기본 프로세스를 이해하도록 수동으로 추가된 필드를 기반으로 합니다. 두 번째 예에서는 동일한 전제를 사용하지만 대신 템플릿 필드를 기반으로 합니다.
세 번째 예는 카탈로그 요청 양식에 추가된 사용자 지정 옵션을 기반으로 하며, 이 경우 사용자는 사용자 지정 vRealize Orchestrator 작업의 결과를 기반으로 폴더를 선택합니다.
네 번째 예는 vRealize Orchestrator 워크플로 특성을 사용하여 요청 양식의 필드를 사용자 지정합니다.
다음 예 외에도 VMware Cloud Management 블로그에서 다른 예를 사용할 수 있습니다.
수동으로 추가한 크기 및 비용 필드 예
이 사용 사례에서는 카탈로그 사용자가 가상 시스템 크기를 선택한 다음 해당 시스템의 일별 비용을 표시하게 하려고 합니다. 이 예제를 수행하기 위해 크기와 비용을 상호 연관시키는 vRealize Orchestrator 스크립트를 사용합니다. 그런 다음 크기 필드와 비용 필드를 템플릿 사용자 지정 양식에 추가합니다. 크기 필드는 비용 필드에 나타나는 값을 결정합니다.
- vRealize Orchestrator에서 getWindows10Cost라는 이름의 작업을 구성합니다.

- 스크립트를 추가합니다.
다음 예제 스크립트를 사용할 수 있습니다.
var cost = "Unknown"; switch(deploymentSize) { case 'small' : cost = "$15";break; case 'medium' : cost = "$25";break; case 'large' : cost = "$45";break ; default : break ; } return cost; - 입력 문자열로 deploymentSize를 추가합니다.
- Service Broker에서 크기 필드를 템플릿 사용자 지정 양식에 추가하고 구성합니다.
크기 필드를 Small, Medium 및 Large 값이 있는 드롭다운 요소로 구성합니다.
값 탭에서 다음 속성 값을 구성합니다.
- 기본값 = Large
- 값 옵션
- 값 소스 = 상수
- 값 정의 = small|Small,medium|Medium,large|Large
- 크기 필드에서 선택된 값을 기반으로 vRealize Orchestrator 작업에 정의된 대로 비용을 표시하도록 비용 필드를 텍스트 필드로 추가합니다.

값 탭에서 다음 속성 값을 구성합니다.
- 기본값 = 외부 소스
- 작업 선택 = <vRealize Orchestrator 작업 폴더>/getWindows10Cost
- 작업 입력
- deploymentSize. 이 값은 작업에 입력으로 구성되어 있습니다.
- 필드
- 크기. 이것은 이전에 생성한 필드입니다.
- 사용자 지정 양식을 사용하도록 설정하고 저장합니다.
- 작동하는지 확인하려면 카탈로그에서 항목을 요청합니다. 선택한 크기 값에 따라 비용 필드가 채워집니다.

스키마 요소에 기반한 비용 예
이 사용 사례에서는 카탈로그 사용자가 템플릿의 버전 속성을 기반으로 일별 시스템 비용을 볼 수 있습니다. 이 예제를 수행하기 위해 이전 예의 vRealize Orchestrator 스크립트를 사용합니다. 하지만 이 사용 사례에서 비용은 사용자가 Service Broker 카탈로그 항목을 요청할 때 사용자 지정 양식에서 선택한 버전 크기를 기반으로 합니다.
사용자 지정 작업 예제에 기반한 대상 폴더
이 사용 사례에서는 카탈로그 사용자가 한 폴더에서 다른 폴더로 시스템을 이동할 때 사용할 수 있는 폴더 중에서 선택하도록 할 수 있습니다. 이 예를 수행하려면 카탈로그에서 작업을 요청하는 사용자가 사용할 수 있는 폴더를 반환하는 사용자 지정 작업을 vRealize Orchestrator에서 생성합니다. 그런 다음 카탈로그 요청 양식에서 대상 폴더 필드를 사용자 지정합니다.
카탈로그에서 이 예에 사용되는 폴더로 여러 가상 시스템 이동 워크플로는 Cloud Assembly에서 생성된 사용자 지정 리소스 작업으로 노출됩니다.
- vRealize Orchestrator에서 getFolderForUser라는 이름의 작업을 생성합니다.
- 스크립트 탭에서 작업 입력을 추가하고 출력의 반환 유형을 선택한 다음, 스크립트를 추가합니다.
다음 예제 스크립트를 사용할 수 있습니다.
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; - 작업 편집을 마쳤으면 저장을 클릭합니다.
- 스크립트 탭에서 작업 입력을 추가하고 출력의 반환 유형을 선택한 다음, 스크립트를 추가합니다.
- Cloud Assembly에서 ChangeFolder라는 사용자 지정 리소스 작업을 생성합니다.
- Cloud.vSphere.Machine 리소스 유형을 선택합니다.
- 폴더로 여러 가상 시스템 이동 워크플로를 선택합니다.
- 사용자가 작업을 요청할 때 표시되는 요청 양식을 사용자 지정합니다.
- ChangeFolder 작업을 엽니다.
- 요청 매개 변수 편집을 클릭합니다.
- 대상 폴더 필드가 사용자에게 표시되는 방식을 사용자 지정합니다.
값 옵션 샘플 값 값 소스 외부 소스 작업 선택 getFolderForUser 작업 입력 username Field
을 클릭합니다. 선택을 클릭합니다.
작업 입력 vcUuid
를 클릭합니다. 선택을 클릭합니다.
- 저장을 클릭합니다.
사용자가 카탈로그에서 작업을 요청하면 사용 가능한 폴더에서 가상 시스템의 대상 폴더를 선택할 수 있습니다.
워크플로 특성에 기반한 호스트 이름 예
- vRealize Orchestrator에서 기존 워크플로를 생성하거나 복제합니다. 예를 들어 REST 호스트 추가 워크플로를 복제합니다.
- 변수 탭에서 변수를 추가하고 구성 요소에 바인딩합니다.
값 옵션 샘플 값 이름 hostname 유형 string 구성 구성에 바인딩 옵션을 사용하도록 설정합니다. 구성 텍스트 상자에서 변수를 바인딩할 구성을 선택합니다. 예를 들어 사용자 지정 vRO 구성: 호스트 이름 요소를 선택합니다.
- 워크플로를 저장합니다.
- 변수 탭에서 변수를 추가하고 구성 요소에 바인딩합니다.
- Service Broker에서 워크플로를 가져옵니다.
- 요청 양식을 사용자 지정합니다.
- 양식 디자이너에서 URL 요소를 클릭합니다.
- 값 탭에서 값 소스를 바인딩 필드로 설정합니다.
- 를 클릭합니다.
- hostname 변수 또는 사용 가능한 워크플로 특성을 선택합니다.
- 양식을 저장하고 사용하도록 설정합니다.
사용자가 카탈로그에서 워크플로를 요청하면 URL 필드가 hostname 변수를 기반으로 채워집니다.
다른 프로젝트로 전환하면 워크플로 속성이 다시 계산됩니다. 워크플로가 다른 vRealize Orchestrator 통합에서 올 수 있기 때문입니다.