alpacon event wait
이벤트 결과가 정해질 때까지 기다린 뒤 결과를 출력하고 종료합니다.
사용법
alpacon event wait [flags]
핵심 사항
--type필수, 작업 세션은--target에 세션 ID도 지정- 종료 코드
0은 성공,6은 거부,4는 결과 미정,2는 명령줄 오류 - 기본 종료 조건이 없는 타입은
--until필요, 지정하면 기본 성공·실패 조건 모두 대체 - 기본 대기 시간은 5분
플래그
| 플래그 | 유형 | 설명 | 기본값 |
|---|---|---|---|
-h, --help | bool | 명령 도움말 표시 | false |
--target | string | 대상 리소스 ID. 대상 없는 구독을 허용하는 경우에만 생략 가능 | — |
--timeout | duration | 결과를 기다릴 최대 시간 | 5m0s |
--type | string | 구독할 이벤트 타입. 예: work_session. 필수 | — |
--until | strings | 대기를 끝낼 하위 타입을 쉼표로 구분. 기본 종료 조건을 대체하며, 기본 조건이 없는 이벤트 타입에는 필수 | — |
--output | string | 출력 형식: table 또는 json. 상위 명령에서 상속 | table |
예제
작업 세션 승인 대기
alpacon event wait --type work_session --target a1b2c3d4-5678-abcd-ef01-234567890abc최대 30분 대기
alpacon event wait --type work_session --target a1b2c3d4-5678-abcd-ef01-234567890abc --timeout 30m승인 이벤트만 기다리기
alpacon event wait --type work_session --target a1b2c3d4-5678-abcd-ef01-234567890abc --until approved종료 코드 (Exit codes)
| 코드 | 뜻 |
|---|---|
| 0 | 성공 집합에 해당하는 이벤트가 도착함 |
| 1 | 대기를 시작하지 못함: 로그인하지 않았거나 로그인이 만료되어 갱신하지 못했거나, 이벤트 채널에 15초 안에 연결하지 못했거나, 구독이 거부됨. 알 수 없는 플래그, 불필요한 인자, 기간 형식이 아닌 --timeout처럼 CLI가 해석하지 못한 플래그나 인자도 1로 끝남 |
| 2 | 명령줄이 거부됨: --type 누락, 올바른 ID가 아닌 --target, 빈 --until, 0 이하의 --timeout, 기본 종료 조건이 없는 타입에 --until 누락 |
| 4 | 타임아웃 또는 중단. 결과는 아직 정해지지 않음 |
| 6 | 실패 집합에 해당하는 이벤트가 도착함 |
종료 코드 4는 실패가 아니라 결과가 아직 미정이라는 뜻입니다. --output json을 쓰면 alpacon exec와 같은 형태로 stdout에 {"status": "pending_approval", ...}을 출력합니다.
종료 조건
내장 종료 조건이 있는 타입은 work_session 하나뿐입니다.
| 집합 | 서브 타입 | 종료 코드 |
|---|---|---|
| 성공 | approved, activated | 0 |
| 실패 | rejected, expired, revoked, cancelled, completed | 6 |
그 밖의 타입은 대기를 끝낼 서브 타입을 --until로 지정하세요. --until은 내장 조건도 덮어씁니다. 실패 집합이 함께 사라지므로 종료 코드 6은 나오지 않습니다.
--until은 이벤트의 서브 타입과 맞춰 보므로 서브 타입을 내보내는 이벤트 타입에서만 대기를 끝낼 수 있습니다. 서브 타입이 없는 타입에 쓰면 타임아웃까지 기다린 뒤 종료 코드 4로 끝납니다.
결과를 놓치지 않는 방법
내장 종료 조건이 있는 타입에 --target까지 주면 구독한 직후 현재 상태를 한 번 읽습니다. 구독과 첫 이벤트 사이에 결과가 지나가 버려도 놓치지 않습니다. 끊긴 동안 발행된 이벤트는 유실되므로 재연결할 때마다 다시 읽습니다. 다른 타입은 현재 상태를 조회하지 않습니다.
출력
stdout에 한 줄이 나가고, 형식은 alpacon event watch와 같습니다. 나머지는 모두 stderr로 나갑니다.
대상 ID 찾기
alpacon work-session ls를 실행하거나 Alpacon 콘솔에서 확인하세요.