Cloud Assembly의 단순 조건 목록을 사용하는 대신 고급 편집기로 더 복잡한 조건 표현식을 조합하여 작업 사용 시기를 제어할 수 있습니다.

새 리소스 작업을 생성할 때 조건 필요를 선택하고 고급 편집기 사용을 선택합니다. 그런 다음 원하는 조건 표현식을 입력합니다.

사용자 지정 작업 조건 고급 편집기

표현식은 절 또는 절의 목록으로, 각각 키-연산자-값 형식으로 되어 있습니다. 위 그림에는 대상의 전원을 켜고 표시해야 하는 조건이 나와 있습니다.

설명
표현식 결과가 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