트리거
트리거는 ADK Studio에서 워크플로우가 시작되는 방식을 정의합니다. 모든 워크플로우는 진입점을 결정하는 Trigger 노드로 시작합니다 — 사용자 입력, HTTP 웹훅, cron 스케줄 또는 외부 이벤트로부터 시작되는지 여부와 관계없이.

트리거 유형
| 유형 | 설명 | 사용 사례 |
|---|---|---|
| 수동 | 채팅 입력을 통한 사용자 시작 | 대화형 에이전트, 테스트 |
| 웹훅 | HTTP 엔드포인트 (POST/GET) | API 통합, CI/CD 파이프라인 |
| 스케줄 | Cron 기반 타이밍 | 주기적 보고서, 데이터 동기화 |
| 이벤트 | 외부 시스템 이벤트 | 마이크로서비스 오케스트레이션, 이벤트 기반 워크플로 |
수동 트리거
기본 트리거 유형입니다. 워크플로우에 수동 트리거가 있는 경우, 채팅 입력은 구성 가능한 레이블과 플레이스홀더와 함께 표시됩니다.
구성:
| 속성 | 타입 | 기본값 |
|---|---|---|
inputLabel | string | "메시지를 입력하세요" |
defaultPrompt | string | "오늘 ADK-Rust으로 무엇을 만들 수 있도록 도와드릴까요?" |
채팅 입력 필드 위에 입력 레이블이 나타나며, 기본 프롬프트가 플레이스홀더 텍스트로 사용됩니다.
웹훅 트리거
호출될 때 워크플로우를 시작하는 HTTP 엔드포인트를 노출합니다. 외부 서비스, CI/CD 파이프라인 또는 다른 애플리케이션과 통합하는 데 유용합니다.
구성:
| 속성 | 타입 | 설명 |
|---|---|---|
path | string | URL 경로 (예: /my-webhook) |
method | GET, POST | HTTP 허용할 메서드 |
auth | none, bearer, api_key | 인증 요구 사항 |
엔드포인트
각 웹훅 트리거는 두 개의 엔드포인트를 생성합니다:
| 엔드포인트 | 동작 |
|---|---|
/api/projects/:id/webhook/*path | 비동기 — 세션 ID를 즉시 반환 |
/api/projects/:id/webhook-exec/*path | 동기 — 워크플로 완료를 기다린 후 결과를 반환 |
GET 웹훅도 작동합니다:
GET /api/projects/:id/webhook/my-path?message=Hello
인증
베어러 토큰:
curl -X POST "http://localhost:3000/api/projects/{id}/webhook/my-path" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"message": "Process this"}'
API 키:
curl -X POST "http://localhost:3000/api/projects/{id}/webhook/my-path" \
-H "X-API-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{"message": "Process this"}'
웹훅 이벤트 알림
SSE를 통해 실시간 웹훅 실행 이벤트를 구독하세요:
GET /api/projects/:id/webhook-events
이 스트림은 웹훅이 수신되고 처리될 때 이벤트를 방출합니다.
스케줄 트리거
cron 표현식을 사용하여 반복적인 스케줄로 워크플로를 실행합니다.
구성:
| 속성 | 타입 | 설명 |
|---|---|---|
cron | string | 5-필드 cron 표현식 |
timezone | string | IANA 시간대 (예: America/New_York) |
defaultPrompt | string? | 스케줄이 실행될 때 전송되는 입력 텍스트 |
Cron 구문
표준 5필드 cron 표현식:
┌───────────── minute (0-59)
│ ┌───────────── hour (0-23)
│ │ ┌───────────── day of month (1-31)
│ │ │ ┌───────────── month (1-12)
│ │ │ │ ┌───────────── day of week (0-6, Sun=0)
│ │ │ │ │
* * * * *
예시:
| 표현 | 의미 |
|---|---|
* * * * * | 매분 |
0 9 * * * | 매일 오전 9시 |
0 0 * * 0 | 매주 일요일 자정 |
0 */6 * * * | 6시간마다 |
30 8 * * 1-5 | 주중 오전 8시 30분 |
스케줄 서비스는 last_executed 타임스탬프를 추적하여 중복 실행을 방지합니다.
이벤트 트리거
외부 시스템 이벤트에 응답하여 워크플로를 시작합니다. 이벤트는 source 및 eventType를 통해 일치되며, 이벤트 데이터에 대한 선택적 JSONPath 필터링이 가능합니다.
구성:
| 속성 | 타입 | 설명 |
|---|---|---|
source | string | 이벤트 소스 식별자 (예: payment-service) |
eventType | string | 일치시킬 이벤트 타입 (예: payment.completed) |
filter | string? | 이벤트를 필터링하기 위한 JSONPath 표현식 |
이벤트 전송
curl -X POST "http://localhost:3000/api/projects/{id}/events" \
-H "Content-Type: application/json" \
-d '{
"source": "payment-service",
"eventType": "payment.completed",
"data": {
"orderId": "12345",
"amount": 99.00,
"status": "active"
}
}'
JSONPath 필터
특정 조건이 충족될 때만 워크플로우가 트리거되도록 이벤트를 필터링합니다:
| 필터 표현식 | 일치 조건 |
|---|---|
$.data.status == 'active' | 상태 필드가 "active"와 같을 때 |
$.data.amount > 100 | 금액이 100을 초과할 때 |
$.data.priority == 'high' | 우선순위가 "high"일 때 |
필터와 일치하지 않는 이벤트는 자동으로 무시됩니다.
트리거 인식 실행 버튼
Studio UI는 활성 트리거 유형에 따라 조정됩니다:
- 수동 — 구성된 레이블과 플레이스홀더가 있는 표준 채팅 입력
- Webhook — 실행 버튼이 시뮬레이션된 Webhook 페이로드를 전송합니다
- 예약 — 실행 버튼이 구성된 기본 프롬프트를 전송합니다
- 이벤트 — 실행 버튼이 시뮬레이션된 이벤트 페이로드를 전송합니다
마지막 빌드 이후 워크플로가 변경된 경우, 보내기 버튼은 재컴파일을 유도하기 위해 빌드 버튼으로 변환됩니다.
API 참조
| 엔드포인트 | 메서드 | 설명 |
|---|---|---|
/api/projects/:id/webhook/*path | POST, GET | 비동기 웹훅 트리거 |
/api/projects/:id/webhook-exec/*path | POST | 동기 웹훅 트리거 (결과를 기다림) |
/api/projects/:id/webhook-events | GET | SSE 스트림 (웹훅 알림용) |
/api/projects/:id/events | POST | 이벤트 트리거 |
이전: ← 액션 노드 | 다음: 개발 가이드라인 →