Automation Assembler의 단순 조건 목록을 사용하는 대신 고급 편집기로 더 복잡한 조건 표현식을 조합하여 작업 사용 시기를 제어할 수 있습니다.
새 리소스 작업을 생성할 때 조건 필요를 선택하고 고급 편집기 사용을 선택합니다. 그런 다음 원하는 조건 표현식을 입력합니다.
표현식은 절 또는 절의 목록으로, 각각 키-연산자-값 형식으로 되어 있습니다. 위 그림에는 대상의 전원을 켜고 표시해야 하는 조건이 나와 있습니다.
절
| 절 | 설명 | 예 |
|---|---|---|
| 및 | 표현식 결과가 true가 되려면 모든 하위 절이 true여야 합니다. | properties.powerState가 ON이고 syncStatus가 MISSING이 아닌 경우에만 true로 평가합니다. matchExpression:
- and:
- key: properties.powerState
operator: eq
value: ON
- key: syncStatus
operator: notEq
value: MISSING
|
| 또는 | 표현식 결과가 true가 되려면 하나 이상의 하위 절이 true여야 합니다. | properties.powerState가 ON 또는 OFF인지 여부를 true로 평가합니다. matchExpression:
- or:
- key: properties.powerState
operator: eq
value: ON
- key: properties.powerState
operator: eq
value: OFF
|
연산자
| 연산자 | 설명 | 예 |
|---|---|---|
| eq | 같음. 정확히 일치하는 항목을 찾습니다. | properties.powerState가 ON일 때 true로 평가합니다. matchExpression:
- and:
- key: properties.powerState
operator: eq
value: ON
|
| notEq | 같지 않음. 정확히 일치하는 항목을 피합니다. | properties.powerState가 OFF가 아닐 때 true로 평가합니다. matchExpression:
- and:
- key: properties.powerState
operator: notEq
value: OFF
|
| hasAny | 개체 모음에서 일치 항목을 찾습니다. | storage.disks 어레이에 100 IOPS EBS 개체가 있을 때 true로 평가합니다. matchExpression:
- key: storage.disks
operator: hasAny
value:
matchExpression:
- and:
- key: iops
operator: eq
value: 100
- key: service
operator: eq
value: ebs
|
| in | 값 집합에서 일치 항목을 찾습니다. | properties.powerState가 OFF 또는 SUSPEND인 경우 true로 평가합니다. matchExpression:
- and:
- key: properties.powerState
operator: in
value: OFF, SUSPEND
|
| notIn | 일치하는 값 집합을 피합니다. | properties.powerState가 OFF도 아니고 SUSPEND도 아닌 경우 true로 평가합니다. matchExpression:
- and:
- key: properties.powerState
operator: notIn
value: OFF, SUSPEND
|
| greaterThan | 지정된 임계값을 초과하는 일치 항목을 찾습니다. 숫자 값에만 적용됩니다. | storage.disks 어레이의 첫 번째 개체에 50을 초과하는 IOPS가 있는 경우 true로 평가합니다. matchExpression:
- and:
- key: storage.disks[0].iops
operator: greaterThan
value: 50
|
| lessThan | 지정된 임계값 미만의 일치 항목을 찾습니다. 숫자 값에만 적용됩니다. | storage.disks 어레이의 첫 번째 개체에 200 미만의 IOPS가 있는 경우 true로 평가합니다. matchExpression:
- and:
- key: storage.disks[0].iops
operator: lessThan
value: 200
|
| greaterThanEquals | 지정된 임계값보다 크거나 같은 일치 항목을 찾습니다. 숫자 값에만 적용됩니다. | storage.disks 어레이의 첫 번째 개체에 100 이상의 IOPS가 있는 경우 true로 평가합니다. matchExpression:
- and:
- key: storage.disks[0].iops
operator: greaterThanEquals
value: 100
|
| lessThanEquals | 지정된 임계값보다 작거나 같은 일치 항목을 찾습니다. 숫자 값에만 적용됩니다. | storage.disks 어레이의 첫 번째 개체에 100 이하의 IOPS가 있는 경우 true로 평가합니다. matchExpression:
- and:
- key: storage.disks[0].iops
operator: lessThanEquals
value: 100
|
| matchesRegex | 정규식을 사용하여 일치 항목을 찾습니다. | properties.zone이 us-east-1a 또는 us-east-1c인 경우 true로 평가합니다. matchExpression:
- and:
- key: properties.zone
operator: matchesRegex
value: (us-east-1)+(a|c){1,2}
|
예
다음 조건 표현식은 properties.tags에 키 key1 및 값 value1의 태그가 포함되어 있을 때 true로 평가합니다.
외부 표현식은 properties.tags가 어레이이므로 hasAny를 사용하며, 어레이의 키-값 쌍에 key1=value1이 나타날 때마다 true로 평가하려고 합니다.
내부 표현식에는 두 개의 절, 즉 키 필드에 대한 절 하나와 값 필드에 대한 절 하나가 있습니다. properties.tags 어레이는 키-값 태그 지정 쌍을 보유하며, 키 필드와 값 필드를 모두 일치시켜야 합니다.
matchExpression:
- key: properties.tags
operator: hasAny
value:
matchExpression:
- and:
- key: key
operator: eq
value: key1
- key: value
operator: eq
value: value1
다음 조건 표현식은 이전 예제와 유사하지만 이제 properties.tags에 key1=value1 또는 key2=value2의 태그가 포함될 때마다 true로 평가됩니다.
matchExpression:
- or:
- key: properties.tags
operator: hasAny
value:
matchExpression:
- and:
- key: key
operator: eq
value: key1
- key: value
operator: eq
value: value1
- key: properties.tags
operator: hasAny
value:
matchExpression:
- and:
- key: key
operator: eq
value: key2
- key: value
operator: eq
value: value2