Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Os gatilhos HTTP no Azure SRE Agent são endpoints webhook que sistemas externos usam para invocar o seu agente a pedido. Quando um pipeline de integração contínua e entrega contínua (CI/CD) falha, uma ferramenta de alerta deteta uma anomalia, ou qualquer cliente HTTP envia um POST pedido, o agente recebe o contexto do evento e começa a trabalhar imediatamente.
O problema: Alertas e falhas de oleodutos precisam de triagem manual
A sua equipa já dispõe de ferramentas de alerta, observabilidade e fluxos de trabalho como Datadog, Dynatrace, Jira, Splunk e Grafana, além de pipelines CI/CD que falham. Quando algo corre mal, a resposta é sempre a mesma:
- Um engenheiro é chamado: O engenheiro abre a ferramenta de monitorização, lê o alerta e depois abre manualmente registos, métricas e histórico de implementação em vários dashboards para perceber o que aconteceu.
- Um pipeline falha: Alguém tem de parar o que está a fazer, verificar a saída da build, correlacionar com as alterações recentes e decidir se reverte ou corrige para avançar.
- O contexto é disperso: O alerta do Datadog diz: "Pico de CPU na prod-api." A causa raiz requer correlacionar registos de três serviços, verificar implementações recentes e rever os traces do Dynatrace.
Como funcionam os gatilhos HTTP
Os gatilhos HTTP permitem-te ligar qualquer ferramenta que suporte webhooks diretamente à tua instância do SRE Agent. Em vez de um engenheiro fazer triagem manual, o sistema responsável pela deteção do problema, seja um alerta Datadog, uma anomalia Dynatrace, uma transição de fluxo de trabalho Jira ou uma falha no pipeline, indica ao agente para investigar. O contexto é transmitido automaticamente.
Cada trigger é um endpoint webhook nomeado no seu agente com uma URL única. Quando um sistema externo chama essa URL via HTTP POST, o agente executa o prompt configurado do trigger, que é enriquecido com quaisquer dados JSON no corpo do pedido.
Conceitos-chave
| Conceito | Como funciona |
|---|---|
| Trigger | Um endpoint designado com um prompt, um agente atribuído (predefinido ou subagente) e um nível de autonomia (autónomo ou de revisão). |
| URL do gatilho | O URL único do webhook que é gerado quando crias um gatilho. Este URL do webhook é o que as ferramentas externas utilizam. |
| Contexto JSON | Corpo JSON opcional enviado com a POST requisição. Torna-se parte do enunciado do agente para ter todo o contexto. |
| Histórico de execuções | Cada invocação é registada com um carimbo temporal, ligação à thread e estado de sucesso ou falha. |
| Ativar/desativar | Alternar os gatilhos entre ativado e desativado sem os eliminar. Os gatilhos desativados devolvem o 404. |
Invocar um gatilho
Chame o URL do gatilho com uma requisição 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%"
}'
| Parte | O que é |
|---|---|
| URL | O endpoint exclusivo do webhook associado ao gatilho. Encontre-o na vista de detalhe do gatilho, na rubrica URL do gatilho. |
| Authorization | Um token portador Azure Resource Manager. Veja Autenticação para invocação de gatilho. |
| Tipo de conteúdo | Deve ser application/json se estiveres a enviar um corpo JSON. |
| Corpo JSON (opcional) | Quaisquer dados JSON que queiras que o agente veja. Estes dados tornam-se parte do prompt do agente. Inclua qualquer contexto que ajude o agente a investigar, como o nome do alerta, gravidade e serviço afetado. |
O corpo JSON é opcional. Se chamares o trigger sem um corpo, o agente executa apenas com o prompt configurado do trigger. Ao ter um corpo, o agente vê tanto o prompt como os dados que enviaste.
Autenticação para invocação de gatilho
O endpoint desencadeador requer um token de portador do Azure Resource Manager no cabeçalho Authorization: Bearer <TOKEN>. O chamador precisa de permissão Microsoft.App/agents/threads/write sobre o recurso do agente.
Formas de obter um token
| Método | Melhor para | Detalhes |
|---|---|---|
| Serviço principal | Pipelines de CI/CD, sistemas automatizados | Crie um registo de aplicação, atribua o papel ao recurso do agente e use o fluxo de credenciais do cliente para obter um token. |
| Identidade gerenciada | Serviços hospedados em Azure (Azure Functions, Azure Virtual Machines, Azure Container Apps) | Sem segredos para gerir. O recurso Azure autentica-se automaticamente. |
| Azure CLI (Interface de Linha de Comando da Azure) | Testes e desenvolvimento | Execute az account get-access-token --resource https://management.azure.com --query accessToken -o tsv. |
Ligue ferramentas externas que não suportem autenticação Azure
Ferramentas como Datadog, Dynatrace, Jira e Splunk enviam webhooks com os seus próprios formatos de autenticação, não com tokens do Azure Resource Manager. Para colmatar essa lacuna, use um dos seguintes intermediários.
| Intermédio | Como funciona |
|---|---|
| Funções do Azure | Recebe o webhook, adquire um token Azure Resource Manager usando a sua identidade gerida e encaminha a chamada para o URL do trigger. |
| Aplicativos Lógicos do Azure | Fluxo de trabalho sem código que recebe webhooks de qualquer fonte e chama APIs do Azure com autenticação incorporada do Azure Resource Manager. |
| Gestão de API do Azure | Coloca-se à frente do URL de gatilho e realiza a validação e transformação de tokens através de políticas. |
Resposta
{
"message": "HTTP trigger execution initiated",
"executionTime": "2026-03-13T10:30:00Z",
"threadId": "thread-abc123",
"success": true
}
O gatilho devolve imediatamente HTTP 202 (Aceite). O agente processa o pedido de forma assíncrona.
O que torna esta abordagem diferente
Os gatilhos HTTP ligam as suas ferramentas de alertas e CI/CD existentes diretamente ao seu agente, sem um engenheiro envolvido. O sistema que detetou o problema diz ao agente para investigar e transmite automaticamente todo o contexto. Não há paginação, nem troca de dashboard, nem recolha manual de contexto.
Antes e depois
| Antes (triagem manual) | Depois (Gatilhos HTTP) |
|---|---|
| Alerta do Datadog é acionado. O engenheiro é chamado, abre três dashboards e começa a investigar. | As chamadas de webhook do Datadog disparam. O agente investiga e publica automaticamente as conclusões. |
| A tubagem rompe-se. O engenheiro verifica os logs de construção, revê PRs e decide o próximo passo. | O handler de falha do pipeline chama o acionador. O agente analisa a falha e publica a causa raiz. |
| Dynatrace deteta anomalia. O engenheiro faz a correlação manualmente entre serviços. | As chamadas de webhook do Dynatrace são acionadas com o contexto da anomalia. O agente correlaciona logs, métricas e implementações. |
Tarefas agendadas vs. gatilhos HTTP
| Tarefas agendadas | Gatilhos HTTP |
|---|---|
| Baseado no tempo (calendário cronológico). | Orientado a eventos (sob demanda). |
| Corre independentemente de algo ter acontecido ou não. | Só funciona quando é chamado. |
| Sem entrada externa por execução. | Dados da carga útil injetados em cada invocação. |
| É ideal para verificações recorrentes. | Ideal para reações orientadas por eventos. |
Usa ambos juntos. Use tarefas agendadas para monitorização proativa e gatilhos HTTP para gestão reativa de eventos.
Casos de uso
Integração de pipelines CI/CD
Quando um pipeline de implementação falha, invoque o agente para efetuar a análise da falha.
# 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\"}"
Investigação orientada por alertas
Conecte o seu sistema de alertas para desencadear uma investigação automática quando um alerta crítico for emitido:
{
"alert_name": "Error rate > 5%",
"severity": "P1",
"service": "checkout-api",
"region": "eastus2",
"start_time": "2026-03-13T10:15:00Z"
}
Verificações de conformidade de implementação
Após a conclusão de uma implementação, desencadeie uma revisão de conformidade:
curl -X POST "$AGENT_TRIGGER_URL" \
-H "Authorization: Bearer $ARM_TOKEN" \
-d '{"deployment_id": "deploy-456", "environment": "production", "changes": ["config update", "image bump"]}'
Referência da API
| Ponto final | Método | Descrição |
|---|---|---|
/api/v1/httptriggers |
GET |
Lista todos os gatilhos. |
/api/v1/httptriggers/create |
POST |
Cria um novo gatilho. |
/api/v1/httptriggers/{id} |
GET |
Obtenha detalhes do gatilho. |
/api/v1/httptriggers/{id} |
PUT |
Atualizar as propriedades dos gatilhos. |
/api/v1/httptriggers/{id} |
DELETE |
Exclua um gatilho. |
/api/v1/httptriggers/{id}/enable |
POST |
Ativar um gatilho. |
/api/v1/httptriggers/{id}/disable |
POST |
Desative um gatilho. |
/api/v1/httptriggers/{id}/execute |
POST |
Usa um gatilho manualmente. |
/api/v1/httptriggers/{id}/executions |
GET |
Obtenha o histórico de execuções. |
/api/v1/httptriggers/trigger/{id} |
POST |
Endpoint de webhook externo. |
Troubleshooting
O acionador retorna 404
- Verifica se o disparador está habilitado. Os gatilhos desativados devolvem o 404.
- Verifica se o ID do acionador na URL está correto.
401 Não autorizado
- A audiência do token deve corresponder ao ID da aplicação SRE Agent, não
https://management.azure.com. - Para obter um token para testar, use
az account get-access-token --resource 59f0a04a-b322-4310-adc9-39ac41e9631e --query accessToken -o tsv.
O gatilho executa, mas o agente não age
- Verifica o prompt do agente. Um prompt vazio pode não produzir resultados úteis.
- Verifique se o subagente escolhido tem as ferramentas necessárias para a tarefa.
- Verifique o histórico de execução para detalhes de erros.
Limits
| Recurso | Limit |
|---|---|
| Gatilhos por agente | Sem limite rígido. |
| Turnos máximos por execução | 250 voltas. |
| Authentication | É necessário um token portador para cada URL de gatilho. |