Amazon ECS 작업에 대한 컨테이너 인스턴스를 정의하도록 표현식 생성
클러스터 쿼리는 객체를 그룹화할 수 있게 해 주는 표현식입니다. 예를 들어 가용 영역, 인스턴스 유형 또는 사용자 지정 메타데이터 같은 속성을 기준으로 컨테이너 인스턴스를 그룹화할 수 있습니다. 자세한 내용은 Amazon ECS 컨테이너 인스턴스 속성 섹션을 참조하세요.
컨테이너 인스턴스 그룹을 정의한 후 그룹을 기준으로 태스크를 컨테이너 인스턴스에 배치하도록 Amazon ECS를 사용자 지정할 수 있습니다. 자세한 정보는 애플리케이션을 Amazon ECS 태스크로 실행 및 콘솔을 사용하여 Amazon ECS 서비스 생성 섹션을 참조하세요. 컨테이너 인스턴스를 나열할 때 그룹 필터를 적용할 수도 있습니다.
표현식 구문
표현식에는 다음과 같은 구문이 있습니다.
subject
operator
[argument
]
제목
평가할 속성 또는 필드.
agentConnected
-
Amazon ECS 컨테이너 에이전트 연결 상태를 기준으로 컨테이너 인스턴스를 선택합니다. 이 필터를 사용하여 분리된 컨테이너 에이전트가 있는 인스턴스를 검색할 수 있습니다.
유효 연산자: equals (==), not_equals (!=), in, not_in (!in), matches (=~), not_matches (!~)
agentVersion
-
Amazon ECS 컨테이너 에이전트 버전을 기준으로 컨테이너 인스턴스를 선택합니다. 이 필터를 사용하여 오래된 Amazon ECS 컨테이너 에이전트 버전을 실행하는 인스턴트를 검색할 수 있습니다.
유효 연산자: equals (==), not_equals (!=), greater_than (>), greater_than_equal (>=), less_than (<), less_than_equal (<=)
attribute:
attribute-name
-
속성을 기준으로 컨테이너 인스턴스를 선택합니다. 자세한 내용은 Amazon ECS 컨테이너 인스턴스 속성 섹션을 참조하세요.
ec2InstanceId
-
Amazon EC2 인스턴스 ID로 컨테이너 인스턴스를 선택합니다.
유효 연산자: equals (==), not_equals (!=), in, not_in (!in), matches (=~), not_matches (!~)
registeredAt
-
컨테이너 인스턴스 등록일을 기준으로 컨테이너 인스턴스를 선택합니다. 이 필터를 사용하여 새로 등록된 인스턴스 또는 매우 오래된 인스턴스를 검색할 수 있습니다.
유효 연산자: equals (==), not_equals (!=), greater_than (>), greater_than_equal (>=), less_than (<), less_than_equal (<=)
유효한 날짜 형식: 2018-06-18T22:28:28+00:00, 2018-06-18T22:28:28Z, 2018-06-18T22:28:28, 2018-06-18
runningTasksCount
-
실행 중인 작업 수를 기준으로 컨테이너 인스턴스를 선택합니다. 이 필터를 사용하여 비었거나 거의 비어 있는(실행 중인 작업이 거의 없는) 인스턴스를 검색할 수 있습니다.
유효 연산자: equals (==), not_equals (!=), greater_than (>), greater_than_equal (>=), less_than (<), less_than_equal (<=)
task:group
-
작업 그룹을 기준으로 컨테이너 인스턴스를 선택합니다. 자세한 정보는 그룹 관련 Amazon ECS 작업 을 참조하세요.
연산자
비교 연산자. 다음의 연산자가 지원됩니다.
연산자 |
설명 |
---|---|
==, equals |
문자열 같음 |
!=, not_equals |
문자열 다름 |
>, greater_than |
초과 |
>=, greater_than_equal |
크거나 같음 |
<, less_than |
미만 |
<=, less_than_equal |
작거나 같음 |
exists |
주체 있음 |
!exists, not_exists |
주체 없음 |
인 |
인수 목록에 있는 값 |
!in, not_in |
인수 목록에 없는 값 |
=~, matches |
패턴 일치 |
!~, not_matches |
패턴 불일치 |
참고
단일 표현식은 괄호를 포함할 수 없습니다. 하지만 복합 표현식에서는 우선순위를 지정하기 위해 괄호를 사용할 수 있습니다.
인수
많은 연산자에서 인수는 리터럴 값입니다.
in
및 not_in
연산자에는 인수로 인수 목록이 필요합니다. 다음과 같이 인수를 지정합니다.
[argument1, argument2, ..., argumentN]
matches 및 not_matches 연산자에는 Java 정규식 구문을 준수하는 인수가 필요합니다. 자세한 내용은 java.util.regex.Pattern
복합 표현식
다음 부울 연산자를 사용하여 표현식을 결합할 수 있습니다.
-
&&, 및
-
||, 또는
-
!, not
괄호를 사용하여 우선순위를 지정할 수 있습니다.
(expression1 or expression2) and expression3
예제 표현식
다음은 예제 표현식입니다.
예제: 문자열 같음
다음 표현식은 지정된 인스턴스 유형을 가진 인스턴스를 선택합니다.
attribute:ecs.instance-type == t2.small
예제: 인수 목록
다음 표현식은 us-east-1a 또는 us-east-1b 가용 영역 내 인스턴스를 선택합니다.
attribute:ecs.availability-zone in [us-east-1a, us-east-1b]
예제: 복합 표현식
다음 표현식은 us-east-1d 가용 영역에 없는 G2 인스턴스를 선택합니다.
attribute:ecs.instance-type =~ g2.* and attribute:ecs.availability-zone != us-east-1d
예제: 태스크 선호도
다음 표현식은 service:production
그룹에서 태스크를 호스팅하고 있는 인스턴스를 선택합니다.
task:group == service:production
예제: 태스크 비선호도
다음 표현식은 database 그룹에서 태스크를 호스팅하고 있지 않은 인스턴스를 선택합니다.
not(task:group == database)
예: 실행 중인 태스크 개수
다음 표현식은 작업 한 개만 실행 중인 인스턴스를 선택합니다.
runningTasksCount == 1
예제: Amazon ECS 컨테이너 에이전트 버전
다음 표현식은 실행 중인 컨테이너 에이전트 버전이 1.14.5인 인스턴스를 선택합니다.
agentVersion < 1.14.5
예: 인스턴스 등록 시간
다음 표현식은 2018년 2월 13일 이전에 등록된 인스턴스를 선택합니다.
registeredAt < 2018-02-13
예제: Amazon EC2 인스턴스 ID
다음 표현식은 다음 Amazon EC2 인스턴스 ID를 갖는 인스턴스를 선택합니다.
ec2InstanceId in ['i-abcd1234', 'i-wxyx7890']