Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wyzwalacze HTTP w agencie Azure SRE to punkty końcowe webhook, które systemy zewnętrzne używają do wywołania agenta na żądanie. Gdy potok ciągłej integracji i ciągłego dostarczania (CI/CD) kończy się niepowodzeniem, narzędzie do zgłaszania alertów wykrywa anomalię lub dowolny klient HTTP wysyła POST żądanie, agent odbiera kontekst zdarzenia i natychmiast zaczyna działać.
Problem: Alerty i awarie procesów wymagają ręcznej klasyfikacji
Twój zespół ma już narzędzia do alertowania, obserwacji i przepływu pracy, takie jak Datadog, Dynatrace, Jira, Splunk i Grafana oraz potoki CI/CD, które ulegają awarii. Gdy coś pójdzie nie tak, odpowiedź jest taka sama za każdym razem:
- Inżynier otrzymuje powiadomienie: Inżynier otwiera narzędzie monitorujące, odczytuje alert, a następnie ręcznie otwiera dzienniki, metryki i historię wdrożeń w różnych dashboardach, aby dowiedzieć się, co się stało.
- Potok zawiódł: Ktoś musi przerwać swoje obecne działania, sprawdzić dane wyjściowe kompilacji, skorelować je z ostatnimi zmianami i zdecydować, czy wycofać się, czy przeprowadzić naprawę w przyszłości.
- Kontekst jest rozproszony: Alert usługi Datadog mówi: "Skok użycia CPU w usłudze prod-api". Główna przyczyna wymaga korelowania logów z trzech usług, sprawdzania ostatnich wdrożeń i analizowania śladów Dynatrace.
Jak działają wyzwalacze HTTP
Wyzwalacze HTTP umożliwiają łączenie dowolnego narzędzia obsługującego webhooki bezpośrednio z instancją agenta SRE. Zamiast inżyniera wykonującego ręczną klasyfikację, system, który wykrył problem, bez względu na to, czy jest to alert usługi Datadog, anomalia Dynatrace, przejście przepływu pracy Jira, czy awaria procesu w pipeline, poleca agentowi zbadanie problemu. Kontekst jest przekazywany automatycznie.
Każdy wyzwalacz jest nazwanym punktem końcowym webhooka w agencie z unikatowym adresem URL. Gdy zewnętrzny system wywołuje ten adres URL za pośrednictwem protokołu HTTP POST, agent wykonuje skonfigurowany monit wyzwalacza, który jest wzbogacony o dowolne dane JSON w treści żądania.
Kluczowe pojęcia
| Pojęcie | Jak to działa |
|---|---|
| Wyzwalacz | Nazwany punkt końcowy z wezwaniem, przypisanym agentem (domyślnym lub podrzędnym) i poziomem autonomii (autonomiczny lub do przeglądu). |
| Adres URL wyzwalacza | Unikatowy adres URL webhooka generowany podczas tworzenia wyzwalacza. Ten adres URL webhooka jest wywoływany przez narzędzia zewnętrzne. |
| Kontekst JSON | Opcjonalna treść JSON wysłana z żądaniem POST . Staje się częścią monitu agenta, aby miał pełny kontekst. |
| Historia wykonania | Każde wywołanie jest rejestrowane przy użyciu znacznika czasu, linku wątku i stanu powodzenia lub niepowodzenia. |
| Włączanie/wyłączanie | Przełącz wyzwalacze włącz/wyłącz bez usuwania. Wyłączone wyzwalacze zwracają wartość 404. |
Wywoływanie wyzwalacza
Wywołaj adres URL wyzwalacza za pomocą żądania HTTP POST :
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%"
}'
| Część | Co to jest |
|---|---|
| adres URL | Unikatowy punkt końcowy wyzwalacza webhook. Znajdź go w widoku szczegółów wyzwalacza pod Adresem URL wyzwalacza. |
| Authorization | Token typu Bearer dla Azure Resource Manager. Zobacz Uwierzytelnianie w celu wywołania wyzwalacza. |
| Typ zawartości | Musi być application/json , jeśli wysyłasz treść JSON. |
| Treść JSON (opcjonalnie) | Wszelkie dane JSON, które mają być widoczne dla agenta. Te dane stają się częścią monitu agenta. Uwzględnij dowolny kontekst, który pomaga agentowi zbadać, na przykład nazwę alertu, ważność i usługę, której dotyczy problem. |
Treść JSON jest opcjonalna. Jeśli wywołasz wyzwalacz bez ciała, agent jest uruchamiany tylko z użyciem skonfigurowanego monitu wyzwalacza. Dzięki posiadaniu „ciała” agent widzi zarówno monit, jak i dane, które wysłałeś.
Uwierzytelnianie przy wywołaniu wyzwalacza
Punkt końcowy wyzwalacza wymaga tokenu typu Bearer usługi Azure Resource Manager w nagłówku Authorization: Bearer <TOKEN>. Obiekt wywołujący potrzebuje uprawnień Microsoft.App/agents/threads/write do zasobu agenta.
Sposoby uzyskiwania tokenu
| Metoda | Najlepsze dla | Szczegóły |
|---|---|---|
| Główna usługa | CI/CD pipeline'y, systemy zautomatyzowane | Utwórz rejestrację aplikacji, przypisz rolę zasobowi agenta i skorzystaj z przepływu poświadczeń klienta, aby uzyskać token. |
| Tożsamość zarządzana | Usługi hostowane na platformie Azure (Azure Functions, Azure Virtual Machines, Azure Container Apps) | Brak tajemnic do zarządzania. Zasób platformy Azure uwierzytelnia się automatycznie. |
| Azure CLI | Testowanie i programowanie | Uruchom program az account get-access-token --resource https://management.azure.com --query accessToken -o tsv. |
Łączenie narzędzi zewnętrznych, które nie obsługują uwierzytelniania platformy Azure
Narzędzia takie jak Datadog, Dynatrace, Jira i Splunk wysyłają webhooki z własnymi formatami uwierzytelniania, a nie tokenami Azure Resource Manager. Aby wypełnić lukę, należy użyć jednego z następujących pośredników.
| Pośrednika | Jak to działa |
|---|---|
| Azure Functions | Odbiera webhook, uzyskuje token Azure Resource Manager przy użyciu tożsamości zarządzanej i przekazuje żądanie do adresu URL wyzwalacza. |
| Azure Logic Apps | Przepływ pracy bez kodu, który odbiera elementy webhook z dowolnego źródła i wywołuje interfejsy API platformy Azure z wbudowanym uwierzytelnianiem usługi Azure Resource Manager. |
| Azure API Management | Znajduje się przed adresem URL wyzwalacza i obsługuje walidację tokenu i transformację za pośrednictwem zasad. |
Odpowiedź
{
"message": "HTTP trigger execution initiated",
"executionTime": "2026-03-13T10:30:00Z",
"threadId": "thread-abc123",
"success": true
}
Wyzwalacz natychmiast zwraca HTTP 202 (zaakceptowane). Agent przetwarza żądanie asynchronicznie.
Co sprawia, że takie podejście różni się
Wyzwalacze HTTP łączą istniejące narzędzia do alertów oraz narzędzia CI/CD bezpośrednio z agentem, eliminując potrzebę zaangażowania inżyniera w proces. System, który wykrył problem, informuje agenta, aby zbadał sytuację, i automatycznie przekazuje mu pełny kontekst. Nie ma stronicowania, przełączania widoków na pulpicie ani ręcznego zbierania informacji kontekstowych.
Przed i po
| Przed (ręczny triage) | Po wyzwalaczach HTTP |
|---|---|
| Alert usługi Datadog został uruchomiony. Inżynier otrzymuje powiadomienie, otwiera trzy pulpity nawigacyjne i rozpoczyna analizę. | Wyzwalacz wywołań elementu webhook usługi Datadog. Agent bada wyniki i publikuje je automatycznie. |
| Przerwy w rurociągu. Inżynier sprawdza dzienniki kompilacji, przegląda pull requesty i decyduje o następnym kroku. | Wyzwalacz wywołań procedury obsługi błędów potoku. Agent analizuje awarię i publikuje główną przyczynę. |
| Dynatrace wykrywa anomalię. Inżynier ręcznie koreluje między usługami. | Wywołania webhooków Dynatrace są inicjowane w kontekście anomalii. Agent koreluje logi, metryki i wdrożenia. |
Zaplanowane zadania a wyzwalacze HTTP
| Zaplanowane zadania | Wyzwalacze HTTP |
|---|---|
| Na podstawie czasu (harmonogram chronologiczny). | Sterowane zdarzeniami (na żądanie). |
| Działa niezależnie od tego, czy coś się stało. | Uruchamia się tylko wtedy, gdy jest wywoływana. |
| Brak danych wejściowych zewnętrznych dla każdej operacji. | Dane payload wstrzykiwane przy każdym wywołaniu. |
| Najlepsze do cyklicznych sprawdzeń. | Najlepsze w przypadku reakcji sterowanych zdarzeniami. |
Użyj obu razem. Użyj zaplanowanych zadań do proaktywnego monitorowania i wyzwalaczy HTTP na potrzeby reaktywnej obsługi zdarzeń.
Przypadki użycia
Integracja potoku CI/CD
Gdy potok wdrażania zakończy się niepowodzeniem, wywołaj agenta, aby przeanalizować błąd:
# 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\"}"
Badanie sterowane alertami
Podłącz system alertów, aby zainicjować automatyczne badanie, kiedy zostaną uruchomione alerty krytyczne.
{
"alert_name": "Error rate > 5%",
"severity": "P1",
"service": "checkout-api",
"region": "eastus2",
"start_time": "2026-03-13T10:15:00Z"
}
Testy zgodności wdrożenia
Po zakończeniu wdrażania rozpocznij przegląd zgodności.
curl -X POST "$AGENT_TRIGGER_URL" \
-H "Authorization: Bearer $ARM_TOKEN" \
-d '{"deployment_id": "deploy-456", "environment": "production", "changes": ["config update", "image bump"]}'
Odniesienie do API
| Punkt końcowy | Metoda | Opis |
|---|---|---|
/api/v1/httptriggers |
GET |
Wyświetl listę wszystkich wyzwalaczy. |
/api/v1/httptriggers/create |
POST |
Utwórz nowy wyzwalacz. |
/api/v1/httptriggers/{id} |
GET |
Pobierz szczegóły wyzwalacza. |
/api/v1/httptriggers/{id} |
PUT |
Aktualizuj właściwości wyzwalacza. |
/api/v1/httptriggers/{id} |
DELETE |
Usuń wyzwalacz. |
/api/v1/httptriggers/{id}/enable |
POST |
Włącz wyzwalacz. |
/api/v1/httptriggers/{id}/disable |
POST |
Wyłącz wyzwalacz. |
/api/v1/httptriggers/{id}/execute |
POST |
Ręczne uruchamianie wyzwalacza. |
/api/v1/httptriggers/{id}/executions |
GET |
Pobierz historię wykonywania. |
/api/v1/httptriggers/trigger/{id} |
POST |
Zewnętrzny punkt końcowy elementu webhook. |
Troubleshooting
Wyzwalacz zwraca wartość 404
- Sprawdź, czy wyzwalacz jest ustawiony na włączony. Wyłączone wyzwalacze zwracają wartość 404.
- Sprawdź, czy identyfikator wyzwalacza w adresie URL jest poprawny.
401 Brak autoryzacji
- Odbiorcy tokenu muszą odpowiadać identyfikatorowi aplikacji agenta SRE, a nie
https://management.azure.com. - Aby uzyskać token do testowania, użyj polecenia
az account get-access-token --resource 59f0a04a-b322-4310-adc9-39ac41e9631e --query accessToken -o tsv.
Wyzwalacz jest wykonywany, ale agent nie działa
- Sprawdź komunikat agenta. Pusty monit może nie wygenerować przydatnych danych wyjściowych.
- Sprawdź, czy wybrany subagent ma narzędzia potrzebne do wykonania zadania.
- Sprawdź historię wykonywania, aby uzyskać szczegółowe informacje o błędzie.
Limity
| Resource | Limit |
|---|---|
| Wyzwalacze przypisane agentowi | Brak twardego limitu. |
| Maksymalna liczba obrotów na wykonanie | 250 zakrętów. |
| Authentication | Token elementu nośnego jest wymagany dla każdego adresu URL wyzwalacza. |