Azure SRE 에이전트의 HTTP 트리거는 외부 시스템에서 요청 시 에이전트를 호출하는 데 사용하는 웹후크 엔드포인트입니다. CI/CD(연속 통합 및 지속적인 업데이트) 파이프라인이 실패하면 경고 도구가 변칙을 검색하거나 HTTP 클라이언트가 POST 요청을 보내면 에이전트가 이벤트 컨텍스트를 수신하고 즉시 작업을 시작합니다.
문제: 경고 및 파이프라인 오류에는 수동 심사가 필요합니다.
팀에는 이미 Datadog, Dynatrace, Jira, Splunk, Grafana와 같은 경보, 가시성, 워크플로 도구와 장애가 발생하는 CI/CD 파이프라인이 있습니다. 문제가 발생하면 응답은 매번 동일합니다.
- 엔지니어가 페이징됩니다. 엔지니어는 모니터링 도구를 열고 경고를 읽은 다음 여러 대시보드에서 로그, 메트릭 및 배포 기록을 수동으로 열어 발생한 작업을 파악합니다.
- 파이프라인이 실패합니다. 누군가가 수행 중인 작업을 중지하고, 빌드 출력을 확인하고, 최근 변경 내용과 상관 관계를 지정하고, 롤백할지 또는 앞으로 수정할지 결정해야 합니다.
- 컨텍스트가 분산되어 있습니다. Datadog 경고에는 "prod-api의 CPU 스파이크"가 표시됩니다. 근본 원인에는 세 가지 서비스의 로그 상관 관계를 지정하고, 최근 배포를 확인하고, Dynatrace 추적을 검토해야 합니다.
HTTP 트리거 작동 방식
HTTP 트리거를 사용하면 웹후크를 지원하는 모든 도구를 SRE 에이전트 인스턴스에 직접 연결할 수 있습니다. 수동 심사를 수행하는 엔지니어 대신 Datadog 경고, Dynatrace 변칙, Jira 워크플로 전환 또는 파이프라인 오류 등 문제를 감지한 시스템은 에이전트에 조사를 지시합니다. 컨텍스트가 자동으로 전달됩니다.
각 트리거는 고유한 URL이 지정된 에이전트의 웹후크 엔드포인트입니다. 외부 시스템이 HTTP POST를 통해 해당 URL을 호출하면 에이전트는 요청 본문의 JSON 데이터로 보강되는 트리거의 구성된 프롬프트를 실행합니다.
주요 개념
| 개념 | 작동 방식 |
|---|---|
| Trigger | 프롬프트가 있는 명명된 엔드포인트, 할당된 에이전트(기본 또는 하위 에이전트) 및 자율성 수준(자율 또는 검토)입니다. |
| 트리거 URL | 트리거를 만들 때 생성되는 고유한 웹후크 URL입니다. 이 웹후크 URL은 외부 도구에서 호출하는 URL입니다. |
| JSON 컨텍스트 | 요청과 함께 전송된 선택적 JSON 본문입니다 POST . 에이전트의 프롬프트의 일부가 되어 전체 컨텍스트를 제공합니다. |
| 실행 기록 | 모든 호출은 타임스탬프, 스레드 링크, 성공 또는 실패 상태로 기록됩니다. |
| 사용/사용 안 함 | 삭제하지 않고 트리거를 켜거나 끕니다. 비활성화된 트리거는 404를 반환합니다. |
트리거 호출
HTTP POST 요청을 사용하여 트리거 URL을 호출합니다.
curl -X POST \
https://your-agent.sre.azure.com/api/v1/httptriggers/trigger/<TRIGGER_ID> \
-H "Authorization: Bearer <ARM_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"source": "datadog",
"alert_title": "High error rate on checkout-api",
"severity": "critical",
"service": "checkout-api",
"region": "eastus2",
"metric": "error_rate",
"value": "8.2%",
"threshold": "5%"
}'
| 부품 | 그것이 무엇인지 |
|---|---|
| URL | 트리거의 고유한 웹후크 엔드포인트입니다. 트리거 URL 아래의 트리거 세부 정보 보기에서 찾습니다. |
| Authorization | Azure Resource Manager 전달자 토큰입니다. 트리거 호출에 대한 인증을 참조하세요. |
| 콘텐츠-타입 | JSON 본문을 보내려면 application/json여야 합니다. |
| JSON 본문(선택 사항) | 에이전트가 보려는 모든 JSON 데이터입니다. 이 데이터는 에이전트 프롬프트의 일부가 됩니다. 에이전트가 조사하는 데 도움이 되는 컨텍스트(예: 경고 이름, 심각도 및 영향을 받는 서비스)를 포함합니다. |
JSON 본문은 선택 사항입니다. 본문 없이 트리거를 호출하는 경우 에이전트는 트리거의 구성된 프롬프트만 사용하여 실행됩니다. 본문이 있으면 에이전트는 프롬프트와 사용자가 전송한 데이터를 모두 확인합니다.
트리거 호출에 대한 인증
트리거 엔드포인트에는 헤더에 Azure Resource Manager 전달자 토큰이 Authorization: Bearer <TOKEN> 필요합니다. 호출자에게 에이전트 리소스에 대한 권한이 필요합니다 Microsoft.App/agents/threads/write .
토큰을 가져오는 방법
| 메서드 | 적합한 대상 | 세부 정보 |
|---|---|---|
| 서비스 프린시펄 | CI/CD 파이프라인, 자동화된 시스템 | 앱 등록을 만들고, 에이전트 리소스에 역할을 할당하고, 클라이언트 자격 증명 흐름을 사용하여 토큰을 가져옵니다. |
| 관리되는 아이덴티티 | Azure 호스팅 서비스(Azure Functions, Azure Virtual Machines, Azure Container Apps) | 관리할 비밀이 없습니다. Azure 리소스는 자동으로 인증됩니다. |
| Azure 커맨드 라인 인터페이스 (CLI) | 테스트 및 개발 |
az account get-access-token --resource https://management.azure.com --query accessToken -o tsv를 실행합니다. |
Azure 인증을 지원하지 않는 외부 도구 연결
Datadog, Dynatrace, Jira 및 Splunk와 같은 도구는 Azure Resource Manager 토큰이 아닌 고유한 인증 형식으로 웹후크를 보냅니다. 격차를 해소하려면 다음 중개자 중 하나를 사용합니다.
| 중간 | 작동 방식 |
|---|---|
| Azure Functions | 웹후크를 수신하고, 관리 ID를 사용하여 Azure Resource Manager 토큰을 획득하고, 호출을 트리거 URL로 전달합니다. |
| Azure Logic Apps | 모든 원본에서 웹후크를 수신하고 기본 제공 Azure Resource Manager 인증을 사용하여 Azure API를 호출하는 코드 없는 워크플로입니다. |
| Azure API Management | 트리거 URL 앞에 앉아 정책을 통해 토큰 유효성 검사 및 변환을 처리합니다. |
응답
{
"message": "HTTP trigger execution initiated",
"executionTime": "2026-03-13T10:30:00Z",
"threadId": "thread-abc123",
"success": true
}
트리거는 HTTP 202(수락됨)를 즉시 반환합니다. 에이전트는 요청을 비동기적으로 처리합니다.
이 접근 방식이 다른 이유
HTTP 트리거는 기존 경고 및 CI/CD 도구를 루프의 엔지니어 없이 에이전트에 직접 연결합니다. 문제를 감지한 시스템은 에이전트에 조사하도록 지시하고 전체 컨텍스트를 자동으로 전달합니다. 페이징, 대시보드 전환, 수동 컨텍스트 수집이 없습니다.
이전 및 이후
| 이전(수동 심사) | 이후(HTTP 트리거) |
|---|---|
| Datadog 경고 발생. 엔지니어가 호출을 받고, 세 개의 대시보드를 열어 조사를 시작합니다. | Datadog 웹후크 호출이 트리거됩니다. 에이전트는 조사 결과를 자동으로 조사하고 게시합니다. |
| 파이프라인 중단. 엔지니어는 빌드 로그를 확인하고, PR을 검토하고, 다음 단계를 결정합니다. | 파이프라인 오류 처리기 발동입니다. 에이전트는 실패를 분석하고 근본 원인을 게시합니다. |
| Dynatrace는 이상을 감지합니다. 엔지니어는 서비스 간에 수동으로 상관 관계를 지정합니다. | Dynatrace 웹후크 호출이 이상 징후 컨텍스트와 함께 트리거됩니다. 에이전트는 로그, 메트릭 및 배포의 상관 관계를 지정합니다. |
예약된 작업과 HTTP 트리거 비교
| 예약된 작업 | HTTP 트리거 |
|---|---|
| 시간 기준(시간순 일정). | 이벤트 구동(주문형). |
| 설사 어떤 일이 발생하지 않더라도 실행됩니다. | 호출된 경우에만 실행됩니다. |
| 실행당 외부 입력이 없습니다. | 각 호출에 삽입된 페이로드 데이터입니다. |
| 되풀이 검사에 가장 적합합니다. | 이벤트 기반 반응에 가장 적합합니다. |
둘 다 함께 사용합니다. 사전 모니터링에 예약된 작업을 사용하고 사후 이벤트 처리를 위해 HTTP 트리거를 사용합니다.
사용 사례
CI/CD 파이프라인 통합
배포 파이프라인이 실패하면 에이전트를 호출하여 오류를 분석합니다.
# In your pipeline's failure handler
curl -X POST "$AGENT_TRIGGER_URL" \
-H "Authorization: Bearer $ARM_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"pipeline\": \"$PIPELINE_NAME\", \"run_id\": \"$RUN_ID\", \"error\": \"$ERROR_MESSAGE\"}"
경고 기반 조사
경고 시스템을 연결하여 중요한 경고가 발생할 때 자동화된 조사를 트리거합니다.
{
"alert_name": "Error rate > 5%",
"severity": "P1",
"service": "checkout-api",
"region": "eastus2",
"start_time": "2026-03-13T10:15:00Z"
}
배포 규정 준수 검사
배포가 완료되면 준수 검토를 트리거합니다.
curl -X POST "$AGENT_TRIGGER_URL" \
-H "Authorization: Bearer $ARM_TOKEN" \
-d '{"deployment_id": "deploy-456", "environment": "production", "changes": ["config update", "image bump"]}'
API 참조
| 엔드포인트 | 메서드 | 설명 |
|---|---|---|
/api/v1/httptriggers |
GET |
모든 트리거를 나열합니다. |
/api/v1/httptriggers/create |
POST |
새 트리거를 만듭니다. |
/api/v1/httptriggers/{id} |
GET |
트리거 세부 정보를 가져옵니다. |
/api/v1/httptriggers/{id} |
PUT |
트리거 속성을 업데이트합니다. |
/api/v1/httptriggers/{id} |
DELETE |
트리거를 삭제합니다. |
/api/v1/httptriggers/{id}/enable |
POST |
트리거를 사용하도록 설정합니다. |
/api/v1/httptriggers/{id}/disable |
POST |
트리거를 사용하지 않도록 설정합니다. |
/api/v1/httptriggers/{id}/execute |
POST |
트리거를 수동으로 실행합니다. |
/api/v1/httptriggers/{id}/executions |
GET |
실행 기록을 가져옵니다. |
/api/v1/httptriggers/trigger/{id} |
POST |
외부 웹훅 엔드포인트. |
Troubleshooting
트리거는 404를 반환합니다.
- 트리거가 사용으로 설정되어 있는지 확인합니다. 비활성화된 트리거는 404를 반환합니다.
- URL의 트리거 ID가 올바른지 확인합니다.
401 권한 없음
- 토큰 대상은
https://management.azure.com가 아니라 SRE 에이전트 앱 ID와 일치해야 합니다. - 테스트용 토큰을 가져오려면 .를 사용합니다
az account get-access-token --resource 59f0a04a-b322-4310-adc9-39ac41e9631e --query accessToken -o tsv.
트리거가 실행되지만 에이전트가 작동하지 않음
- 에이전트 프롬프트를 확인합니다. 빈 프롬프트가 유용한 출력을 생성하지 못할 수 있습니다.
- 선택한 스바겐트에게 작업에 필요한 도구가 있는지 확인합니다.
- 실행 기록에서 오류 세부 정보를 확인합니다.
제한
| Resource | Limit |
|---|---|
| 에이전트당 트리거 | 하드 제한이 없습니다. |
| 실행당 최대 회전 수 | 250회 회전. |
| Authentication | 전달자 토큰은 각 트리거 URL에 필요합니다. |