클라우드 프로비저닝 및 거버넌스에서 표현식 사용
정책 작업의 표현식은 값을 설정하거나 재정의할 수 있습니다. 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을 프로비저닝할 수 있습니다.
| 예제 | 설명 |
|---|---|
| ${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[])입니다.이 구문을 사용하여 스택에 있는 특정 항목의 속성에 액세스합니다.
| 예제 | 설명 |
|---|---|
$(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 자원에 이르기까지 한 레이어에서 다른 레이어로 값을 매핑합니다.
|
Stack item expression CMDB의 CI 인스턴스는 각 스택 항목을 나타냅니다. 스택 항목 표현식을 사용하여 스택 항목 또는 스택 항목 자체를 다시 검색하는 CI에서 첫 번째 수준의 속성을 찾습니다.
|
Property override expressions in policies 정책에서는 시스템에서 값을 끌어오거나 난수를 사용하여 속성을 재정의할 수 있습니다. 양식에 클라우드 사용자 포털 있는 데이터와 양식에서 작업을 수행한 사용자의 데이터를 모두 사용할 수 있습니다.
|
Script expression 이 예에서
|
CI lookup expression 일반적으로 CMDB의 CI 테이블에 있는 테이블의 필드 값에 액세스합니다.
|
Random number expression 임의의 수를 생성합니다. 예를 들어 임의의 노드 이름 또는 스택 이름을 사용하여 VM을 프로비저닝할 수 있습니다.
|
Scratchpad expression/Resource operation output attribute expression 한 작업의 출력 속성을 다른 작업으로 읽어옵니다.
|
Conditions in expressions Blueprint 단계 및 자원 운영 단계에서 조건부 표현식을 사용하여 단계를 조건부로 실행하거나 건너뛸 수 있습니다. 조건식은 Javascript 표현식이며 표현식 대체를 지원합니다.
|
Complex expression 표현식을 중첩할 수 있습니다. 이 예시에서
|
Order context 이 표현식은 수명주기 작업에 유용하며 테이블의 일부로서 주문 속성을 닷워킹할 수 있도록 합니다.sn_cmp_order
|