클라우드 프로비저닝 및 거버넌스에서 표현식 사용

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 13분
  • 정책 작업의 표현식은 값을 설정하거나 재정의할 수 있습니다. Blueprint의 표현식은 자원의 속성에 액세스할 수 있으며 요청 양식 필드에 값을 매핑할 수 있습니다. 표현식은 자원 블록, Blueprint, 정책 및 스크립트를 사용할 수 있는 클라우드 프로비저닝 및 거버넌스 모든 위치에서 사용할 수 있습니다.

    표현식 사용

    표현식에는 시스템에서 동적으로 생성되는 정보에 대한 값(예: 사용자가 에서 만드는 선택 항목의 값)을 저장할 수 있습니다.클라우드 사용자 포털 표현식은 자원 블록, Blueprint, 정책 및 스크립트를 사용할 수 있는 클라우드 프로비저닝 및 거버넌스 모든 위치에서 사용할 수 있습니다.

    자원 블록에서 표현식 사용

    각 자원 블록 작업은 표현식을 사용하여 각 매개변수의 값을 저장합니다. 이 식에서는 하드 코딩된 값, 사용자가 에서 프로비저닝하는 클라우드 사용자 포털스택의 데이터, CMDB의 데이터, 스크립트에서 파생된 데이터를 사용할 수 있습니다. 기본적으로 클라우드 프로비저닝 및 거버넌스 각 자원 블록 작업에 대해 매개변수 세트와 해당 표현식을 생성합니다.

    예를 들어 자원이 속한 데이터센터를 저장하는 매개변수 Location${parameter 표현식을 사용합니다. 위치}

    그림 1. 자원 블록의 표현식
    자원 블록의 위치 매개변수
    Blueprint에서 표현식 사용

    Blueprint는 표현식을 사용하여 자원 블록의 각 작업에 대한 입력 매개변수를 매핑할 수 있습니다. 기본적으로 Blueprint에는 자원 블록에 지정된 것과 동일한 매개변수와 값이 표시됩니다.

    표현식을 사용하여 Blueprint 속성에 액세스할 수 있습니다. 매핑 열의 표현식은 단계의 각 작업에 대한 Blueprint 속성을 정의합니다. 예를 들어 스택 요청 양식에 나타나는 위치 속성은 {$parameter를 통해 액세스할 수 있습니다 . Location} 표현식을 사용합니다. ${parameter가 있는 위치 매개변수 입니다. Location} 값은 Blueprint 작업을 선택하면 입력 탭에 나타납니다.

    그림 2. Blueprint에서의 표현식
    위치 매개변수 및 표현식
    정책 작업에서 표현식 사용

    정책 작업은 표현식을 사용하여 사용자가 요청 양식에서 클라우드 사용자 포털제출하는 매개변수 값을 재정의할 수 있습니다. 스택 작업에서 사용자 데이터에 액세스하고 이를 재정의할 수도 있습니다. 예를 들어 formData.Stackname = "your-naming-convention";이라는 식을 사용하여 스택의 이름을 바꿀 수 있습니다.

    그림 3. 정책 스크립트에서의 표현식
    정책 예시 스크립트

    표현식을 사용하여 Blueprint 속성에 액세스할 수 있습니다. 매핑 열의 표현식은 단계의 각 작업에 대한 Blueprint 속성을 정의합니다. 예를 들어, 가상 머신의 요청 양식에 나타나는 위치 속성은 {$parameter 표현식으로 액세스됩니다 . Location}을 참조하십시오.

    표현식 형식

    정의 표현식
    정의 표현식은 초기 바인딩(또는 정적 바인딩)의 한 형태입니다. 이러한 바인딩은 컴파일 타임 바인딩을 나타내며 사용자가 스택 요청 양식을 제출할 때(스택 또는 자원 프로비저닝이 시작될 때) 평가됩니다. 정의 표현식은 에서 작성 오케스트레이션되는 데이터에 액세스할 수 없습니다. 정의 표현식은 중괄호로 묶여 있습니다. 예: ${parameter. CloudAccount}
    런타임 표현식
    런타임 표현식은 후기 바인딩(또는 동적 바인딩)의 한 형태입니다. 이러한 바인딩은 런타임 바인딩을 참조하며 도중에 오케스트레이션 생성되는 데이터(예: 스택 항목)에 대한 액세스 권한을 갖습니다. 런타임 표현식은 실행 중에 호출될 때 계산됩니다 오케스트레이션 . 런타임 표현식은 일반적으로 테이블의 데이터를 닷워킹하는 데 사용됩니다. 런타임 표현식은 괄호로 묶여 있습니다. 예: $(Stack.items[VM1].attributes[node_id])
    정의/런타임 표현식
    일부 표현식에는 정의와 런타임 표현식이 모두 포함됩니다.
    복잡한 표현식
    다른 표현식 내에서 모든 형식의 표현식을 중첩할 수 있습니다.

    정의 표현식 구문 및 예시

    허용되는 구문에는 달러 기호와 중괄호가 사용됩니다. 다음과 같은 형식을 사용할 수 있습니다.
    • ${parameter.}. Blueprint 프로비저닝 같은 프로세스의 입력 속성에서 값을 검색하려면 이러한 유형의 표현식을 사용합니다. 테이블에서 데이터를 가져오지 않습니다.
    • ${Stack.items[]}. 이 구문을 사용하여 스택에 있는 특정 항목의 속성에 액세스합니다.
    • ${randomNumber}입니다. 이 구문을 사용하여 난수를 생성합니다. 예를 들어 임의의 노드 이름 또는 스택 이름을 사용하여 VM을 프로비저닝할 수 있습니다.
    표 1. 정의 표현식 예시
    예제 설명
    ${parameter. BillingCode} 이 표현식은 Blueprint에서 청구 코드 매개변수가 나타나는 방식을 보여줍니다.
    ${parameter.formData.CatalogAttributeType} 이 표현식은 사용자가 의 클라우드 사용자 포털카탈로그 항목 양식을 채우는 동안 사용자가 제출한 카탈로그 속성을 사용합니다.
    ${parameter.userData.userId} 이 표현식은 사용자가 카탈로그 항목 클라우드 사용자 포털의 양식을 채우는 동안 사용자 ID를 사용합니다.
    ${Stack.items[Virtual Server].attributes[sys_id]} 이 표현식은 스택과는 떨어진 가상 서버의 sys_id 가져옵니다. 가상 서버는 스택에 사용되는 자원 블록의 별칭입니다.

    런타임 표현식 구문 및 예시

    허용되는 구문에는 달러 기호와 괄호가 사용됩니다. 다음과 같은 형식을 사용할 수 있습니다.
    • $(ci.tablename) 여기서 tablename 은 시스템의 테이블이며 일반적으로 CMDB의 CI 테이블입니다. 이 구문을 사용하여 테이블의 필드 값에 액세스합니다.
    • $(Stack.items[])입니다. 이 구문을 사용하여 스택에 있는 특정 항목의 속성에 액세스합니다.
    표 2. 런타임 표현식 예시
    예제 설명
    $(ci.cmdb_ci_cloud_subnet[ sys_id=12231231231231231231].cidr) 이 표현식의 점은 클라우드 서브넷 테이블로 이동하고, 지정된 sys_id으로 특정 기록을 찾고, cidr 열의 값을 취합니다.
    $(ci.sn_cmp _ip_pool[subnet=${parameter.formData.Subnet Id}]) 이 표현식에는 런타임 및 정의 형식 표현식이 결합됩니다. 등호 =는 일치하는 값을 계산하는 데 사용됩니다. 표현식은 IP 풀 테이블로 점워킹하고 사용자가 제출한 서브넷 ID가 있는 서브넷을 찾습니다.
    $(ci.cmdb_ci_cloud_subnet[${parameter.formData.SubnetId}].cidr) 이 표현식에는 런타임 및 정의 형식 표현식이 결합됩니다. 이 표현식은 프로비저닝 중에 사용자가 선택한 서브넷의 cidr 필드 값을 사용합니다. 대괄호 [] 는 표현식이 클라우드 서브넷 테이블로 닷워킹한 다음 사용자가 Blueprint 프로비저닝에서 제출한 서브넷 값을 확인한다는 것을 나타냅니다. 표현식은 cidr 필드 값을 가져온 다음 서브넷 sys_id의 cidr 필드에 있는 값으로 이동합니다.
    $(Stack.items[Virtual Server].attributes[sys_id]) 정의 표현식 예시에서와 같이 이 표현식은 스택과는 떨어진 가상 서버의 sys_id를 사용합니다.

    예시 표현식

    $(ci.cmdb_ci_nic[$(Script:CMPVMNICs.getNICs[arg=$(Stack.items[Virtual Server].attributes[sys_id])])].private_ip)
    • $(ci: 테이블에서 데이터를 검색하는 런타임 표현식입니다.
    • cmdb_ci_nic: NIC(네트워크 인터페이스 카드)용 CI입니다.
    • $(Script: 스크립트 기반 표현식입니다.
    • CMPVMNICs: 스크립트 포함입니다.
    • getNICs: 스크립트 포함 내부의 함수입니다.
    • arg: 스크립트에 대한 인수는 함수를 포함합니다. 속성이 여러 개인 경우 인수는 ","로 구분됩니다.
    • $(Stack.items: 스택에서 스택 항목을 검색하는 런타임 스택 표현식입니다. 인수는 Blueprint에 지정된 별칭입니다.
    • Virtual Server: Blueprint에서 사용되는 자원의 별칭입니다.
    • $(Stack.items[Virtual Server].attributes[sys_id]): 스택에서 스택 항목("가상 서버") 자원 인스턴스 sys_id 검색합니다.
    • private_ip: cmdb_ci_nic의 속성입니다. 필요한 경우 공용 IP로 대체합니다.

    표현식

    Simple parameter mapping expression

    이 형식의 표현식은 Blueprint 작업, 자원 블록 및 정책과 같은 프로세스의 입력 속성에서 값을 검색합니다. 테이블에서 데이터를 가져오지 않습니다. Blueprint에서 클라우드 API 자원에 이르기까지 한 레이어에서 다른 레이어로 값을 매핑합니다.

    • 유형: 정의
    • 구문: ${parameter.}
    • 예제:
      • ${parameter. BillingCode} 는 청구 코드를 반환합니다.
      • ${parameter.formData.CatalogAttributeType} 은 의 요청 양식 클라우드 사용자 포털에 제출된 카탈로그 속성을 사용합니다.
      • ${parameter.userData.userId} 는 의 요청 양식 클라우드 사용자 포털에서 작업하는 사용자의 ID를 사용합니다.

    Stack item expression

    CMDB의 CI 인스턴스는 각 스택 항목을 나타냅니다. 스택 항목 표현식을 사용하여 스택 항목 또는 스택 항목 자체를 다시 검색하는 CI에서 첫 번째 수준의 속성을 찾습니다.

    • 유형: 정의/런타임
    • 구문: ${Stack.items[]} 또는 $(Stack.items[])
    • 예제:

      ${Stack.items[VirtualServer1].attributes[sys_id]} 는 스택에 있는 가상 서버의 sys_id 가져오는 정의 유형 표현식입니다. VirtualServer1 은 스택에 사용되는 자원 블록의 별칭입니다.

      $(Stack.items[VirtualServer2].attributes[sys_id]) 는 스택의 일부인 가상 서버의 sys_id 사용하는 런타임 유형 표현식입니다.

      ${Stack.items[vm1].attributes[node_id]} 는 VM에 대해 생성된 CI의 node_id 속성을 읽습니다. VM1 은 스택 항목 이름(또는 Blueprint 내 자원의 별칭)입니다.

      $(Stack.items[vm1].status)는 스택 항목의 상태를 읽습니다.

    Property override expressions in policies

    정책에서는 시스템에서 값을 끌어오거나 난수를 사용하여 속성을 재정의할 수 있습니다. 양식에 클라우드 사용자 포털 있는 데이터와 양식에서 작업을 수행한 사용자의 데이터를 모두 사용할 수 있습니다.

    • 유형: 정의/런타임
    • 구문: ${parameter.formData.xyz} 또는 ${this.parameter.userData.xyz}
    • 예제:

      다음 값은 스택 이름을 Stack_${parameter.userData.userId}로 설정할 수 있습니다.Stack_Bob.Smith@company.com

      IP 풀 테이블에서 서브넷을 가져와서 런타임 표현식을 사용하여 스택 또는 테이블 값을 설정합니다.

      $(ci.sn_cmp _ip_pool[subnet=${parameter.formData.Subnet Id}])

      스크립트에서 다음과 같이 값을 할당할 수 있습니다.

      formData.App_Server_NodeName = "MyNodeName";

      this.parameter.userData.userId == 'servicenowuserId';

    • 정책 작업 스크립트 만들기 또한 참조하십시오.

    Script expression

    이 예에서 VMPropertiesgetIP라는 함수가 포함된 스크립트입니다. 스크립트 표현식은 표현식이 중첩된 복잡한 표현식의 예이기도 합니다.

    • 유형: 런타임
    • 구문: $(Script:scriptName.function[])
    • 예제:

      $(Script:VMPropertiesUtil.getIP[ arg=$(Stack.items[VM1].attributes[object_id])])

      개인 IP 표현식:$(ci.cmdb_ci_nic[$(Script:CMPVMNICs.getNICs[arg=$(Stack.items[Virtual Server].attributes[sys_id])])].private_ip)

      공용 IP 표현식: $(ci.cmdb_ci_nic[$(Script:CMPVMNICs.getNICs[arg=$(Stack.items[Virtual Server].attributes[sys_id])])].public_ip)

      자격 증명 별칭을 가져오는 표현식: $(Script:CMPVMUtils.getCredentialAlias[arg=${Stack.items[Virtual Server].attributes[sys_id]}])

      IP 주소를 가져오는 표현식: $(Script:CMPVMUtils.getReachableIp[arg=$(Stack.items[Virtual Server].attributes[sys_id])])

    CI lookup expression

    일반적으로 CMDB의 CI 테이블에 있는 테이블의 필드 값에 액세스합니다.

    • 유형: 정의/런타임
    • 구문: $(ci.tableName)
    • 예제:

      $(ci.sn_cmp _ip_pool[subnet=${parameter.formData.Subnet Id}])는 런타임 및 정의 유형 표현식을 결합합니다. = 연산자는 일치하는 값을 계산합니다. 표현식은 IP 풀 테이블로 점워킹하고 사용자가 제출한 서브넷 ID가 있는 서브넷을 찾습니다.

      $(ci.cmdb_ci_cloud_subnet[${parameter.formData.SubnetId}].cidr)는 사용자가 프로비저닝 중에 지정한 서브넷에서 cidr 필드의 값을 사용합니다. 표현식은 클라우드 서브넷 테이블로 점워킹하고, Blueprint 프로비저닝에서 사용자가 제출한 서브넷 값을 보고, cidr 필드 값을 추출한 다음, 서브넷 sys_id의 cidr 필드 값으로 안내합니다.

    Random number expression

    임의의 수를 생성합니다. 예를 들어 임의의 노드 이름 또는 스택 이름을 사용하여 VM을 프로비저닝할 수 있습니다.

    • 유형: 런타임
    • 구문 및 예시: ${randomNumber}

    Scratchpad expression/Resource operation output attribute expression

    한 작업의 출력 속성을 다른 작업으로 읽어옵니다.

    • 유형: 런타임
    • 구문: 다양
    • 예: 한 작업의 출력을 설정하거나 노출하려면 다음을 수행합니다.

      ${Compute Interface.CreateNode.Output.resp.nodeId}

      출력 속성을 읽으려면( 여기서 VM1. 프로비저닝 은 출력 속성이 읽히는 작업입니다.)

      $(출력[VM1. 프로비저닝]. NodeId)

    Conditions in expressions

    Blueprint 단계 및 자원 운영 단계에서 조건부 표현식을 사용하여 단계를 조건부로 실행하거나 건너뛸 수 있습니다. 조건식은 Javascript 표현식이며 표현식 대체를 지원합니다.

    • 유형: 정의/런타임
    • 구문: 다양
    • 예제:

      '${매개변수. CloudAccount}'=='Amazon 클라우드 계정'

      '$(Stack.items[vm1].attributes[node_id]) '== 'VM1'

    Complex expression

    표현식을 중첩할 수 있습니다. 이 예시에서 ${parameter. ServerID} 는 CI의 sys_id을 매핑하고 외부 표현식이 사용되기 전에 대체됩니다.

    • 유형: 모두
    • 구문: 다양
    • 예: $(ci.cmdb_ci_vm_instance[${parameter. ServerID}].name)

    Order context

    이 표현식은 수명주기 작업에 유용하며 테이블의 일부로서 주문 속성을 닷워킹할 수 있도록 합니다.sn_cmp_order

    • 유형: 런타임
    • 구문: $(context.order.column_name)
    • 예제:
      • 요청 항목: $(context.order.sc_req_item)
      • 요청 항목 객체에서 닷워킹: $(context.order.sc_req_item.number)
      • 혼합 표현식(상수 + 표현식): "ram$(context.order.sc_req_item.number)"