CycleCloud 클러스터 템플릿 파일 구문 분석
CycleCloud는 매개 변수 값을 resolve 함수의 논리적 평가를 수행할 수 있습니다.
매개 변수 형식
CycleCloud는 몇 가지 기본 형식의 매개 변수를 처리합니다. 대부분의 경우 예상대로 처리합니다.
Attribute = foo # string
Attribute = 1 # integer
Attribute = 1.1 # double
Attribute = false # boolean
Attribute = foo, bar # string[]
보다 명시적이려면 문자열 값을 큰따옴표로 묶을 수 있습니다(예: Attribute = "foo"
). 값이 숫자처럼 보이지만 문자열(예: 버전 번호)로 해석되어야 하는 경우에 유용할 수 있습니다. 부울 값은 bare 토큰 true
또는 false
(대/소문자를 구분하지 않음)로 설정할 수 있습니다. 쉼표로 구분된 값은 목록으로 해석되고 요소는 위와 동일한 규칙을 사용하여 해석됩니다.
매개 변수 값 평가
CycleCloud는 또는 ${}
표기법을 사용하는 $
매개 변수 값을 직접 해석합니다.
MyAttribute = $MyParameter
MyAttribute2 = ${MyParameter2}
MyAttributeList = $Param1, $Param2
매개 변수를 사용하는 함수
CycleCloud 템플릿 파서는 아래와 같이 수학을 수행하고 삼항 논리 분석을 수행할 수 있습니다.
MaxCoreCount = ${HyperthreadedCoreCount/2}
SubnetId = ${ifThenElse($Autoscale, $BurstSubnet, $FixedSubnet)}
JetpackPlatform = ${imageselect == "windows" ? "windows" : "centos-7"}
사용 가능한 함수:
참고
이 목록은 포괄적이지는 않지만 가장 일반적으로 사용되는 함수 중 일부를 다룹니다.
ifThenElse
삼항 연산자 역할을 수행합니다. true 또는 false로 계산되는 식이 지정된 경우 두 값 중 하나를 반환합니다.
구문
ifThenElse(predicate, trueValue, falseValue)
인수:
이름 | 필수 | Description |
---|---|---|
predicate | 예 | true 또는 false로 계산되는 식입니다. |
trueValue | 예 | true로 계산할 때 predicate 사용할 값입니다. |
falseValue | 예 | false로 계산할 때 predicate 사용할 값입니다. |
ifUndefined
지정된 식을 계산한 결과가 정의되지 않은 경우 대신 다른 값을 반환합니다. 그렇지 않으면 단순히 결과를 반환합니다.
구문
ifUndefined(expression, value)
인수:
이름 | 필수 | Description |
---|---|---|
식 | 예 | 계산할 식입니다. |
값 | 예 | 정의되지 않은 값으로 계산할 때 expression 반환할 값입니다. |
Regexp
지정된 문자열에서 정규식 일치를 수행하고 일치하는 항목이 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
구문
regexp(pattern, target, [options])
인수:
이름 | 필수 | Description |
---|---|---|
pattern | 예 | Java 스타일 정규식입니다. |
대상 | 예 | 입력 문자열입니다. |
옵션 | 아니요 | 정규식을 평가할 때 사용할 옵션입니다. 자세한 내용은 Java의 정규식 플래그 켜 java.util.regex.Pattern 기를 참조하세요. |
regexps
지정된 문자열에서 정규식 대체를 수행하고 새 문자열을 반환합니다.
구문
regexps(pattern, target, substitution, [options])
인수:
이름 | 필수 | Description |
---|---|---|
pattern | 예 | 대체할 문자열과 일치하는 Java 스타일 정규식입니다. |
대상 | 예 | 입력 문자열입니다. |
substitution | 예 | 정규식과 일치하는 부분 target 대신 대체할 새 문자열입니다. |
옵션 | 아니요 | 정규식을 평가할 때 사용할 옵션입니다. 자세한 내용은 Java의 정규식 플래그 켜 java.util.regex.Pattern 기를 참조하세요. |
크기
지정된 문자열의 길이를 반환합니다.
구문
size(string)
인수:
이름 | 필수 | Description |
---|---|---|
문자열 | 예 | 확인할 문자열입니다. |
strjoin
구분 기호를 사용하여 여러 문자열을 함께 연결합니다.
구문
strjoin(separator, strings)
인수:
이름 | 필수 | Description |
---|---|---|
구분 기호 | 예 | 문자열 사이에 추가할 문자열 구분 기호입니다. |
문자열 | 예 | 연결할 문자열 목록입니다. 함수 인수의 가변 수로 지정할 수도 있습니다. strjoin(separator, string1, string2, string3...) |
substr
시작 인덱스에서 끝 인덱스로 문자열의 일부를 반환합니다(또는 끝 인덱스가 지정되지 않은 경우 문자열의 끝).
구문
substr(string, startIndex, [endIndex])
인수:
이름 | 필수 | Description |
---|---|---|
문자열 | 예 | 입력 문자열입니다. |
startIndex | 예 | 사용할 시작 인덱스입니다. |
endIndex | 아니요 | 선택적 끝 인덱스입니다. |
trim
문자열의 시작과 끝에서 모든 공백 문자를 제거하고 결과를 반환합니다.
구문
trim(string)
인수:
이름 | 필수 | Description |
---|---|---|
문자열 | 예 | 잘라낼 문자열입니다. |
사용 가능한 연산자
연산자 | 정의 |
---|---|
-, +, /, * | 산술 |
<, <=, >=, > | 비교 |
==, != | 같음 평가자 |
&&, || | 복합 부울 연산자 |
특수 ClusterName 변수
항상 제공되는 변수는 입니다 ${ClusterName}
. 이는 CycleCloud 클러스터의 이름으로 평가됩니다.
EmailAddress = ${strcat("myuser", "@", ClusterName)}
ResourceId = ${ClusterName}-00-resource
상대 시간
CycleCloud는 시간 전후의 백틱을 상대 시간으로 해석합니다. 은(는) 초, 분 및 일을 지원합니다.
ThrottleCapacityTime=`10m`
Attribute1=`30s`
Attribute2=`7d`