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