Implementar com infraestrutura como código no Azure SRE Agent

Implemente Azure SRE Agent programaticamente usando modelos do repositório microsoft/sre-agent.

Dica

  • Quatro backends de implementação: Bicep, Terraform, PowerShell e Azure Developer CLI
  • Receitas pré-construídas para cenários comuns (Azure Monitor, PagerDuty, Dynatrace)
  • Um comando para ir de zero para um agente em execução: ./bin/deploy.sh my-agent/
  • Operações do segundo dia: exportar, clonar, diferenciar e verificar agentes utilizando as mesmas ferramentas de CLI

Overview

O repositório microsoft/sre-agent fornece modelos IaC prontos para produção para implementar Azure SRE Agent. Use estes modelos para:

  • Automatize implementações em pipelines de CI/CD
  • Configuração do agente de controlo de versões no Git
  • Replicar agentes entre ambientes (de desenvolvimento para staging para produção)
  • Normalize a configuração usando receitas pré-criadas

Pré-requisitos

Tool Necessário para Install
CLI do Azure 2.x+ Todos os sistemas de back-end Install
jq Todos os sistemas de back-end brew install jq ou apt install jq
Terraform 1.5+ Apenas Terraform Install
PowerShell 7+ Somente PowerShell Install
Azure Developer CLI Apenas azd Install

Permissões do Azure: Proprietário na subscrição ou Contribuidor + Administrador de Acesso de Utilizador.

Verificar os pré-requisitos:

git clone https://github.com/microsoft/sre-agent.git
cd sre-agent/sreagent-templates
bash bin/check-prerequisites.sh

Início rápido

# 1. Generate config from a recipe
./bin/new-agent.sh --recipe azmon-lawappinsights --non-interactive \
  --set agentName=my-agent \
  --set resourceGroup=rg-my-agent \
  --set location=eastus2 \
  --set targetRGs=rg-my-workload \
  -o my-agent/

# 2. Deploy (~3 minutes)
./bin/deploy.sh my-agent/

Após a implementação, a CLI imprime a URL do portal e o ponto final do plano de dados:

Agent (portal):  https://sre.azure.com/#/agent/{sub}/{rg}/my-agent
Data plane:      https://my-agent.eastus2.azuresre.ai

Clonar um agente existente

./bin/clone-agent.sh \
  --from-agent prod-agent --from-rg rg-prod \
  --set agentName=staging-agent --set resourceGroup=rg-staging \
  -o staging-agent/

Exporta a configuração do agente de origem e implementa para um novo nome e grupo de recursos. Isto é útil para replicar entre ambientes.

Receitas

Pontos de partida pré-construídos para cenários comuns como resposta a alertas do Azure Monitor, gestão de incidentes com PagerDuty e integração com o Dynatrace. A Microsoft adiciona regularmente novas receitas.

Navegue pelas receitas disponíveis no repositório de modelos.

# List available recipes
ls recipes/

# Generate config from a recipe
./bin/new-agent.sh --recipe azmon-lawappinsights \
  --set agentName=prod-agent \
  --set resourceGroup=rg-prod-agent \
  --set location=swedencentral \
  -o prod-agent/

Deploy backends

Os templates suportam quatro backends de implementação. Cada um usa o mesmo diretório de configuração – escolhe aquele que se adequa ao teu ambiente:

Backend Comando Utilizar quando
Bicep ./bin/deploy.sh my-agent/ Padrão - utiliza az deployment sub create
Terraform ./bin/deploy-tf.sh my-agent/ Infraestrutura gerida pelo Terraform
PowerShell .\bin\ps\Deploy-Agent.ps1 -InputPath .\my-agent\ Ambientes Windows / PowerShell 7
CLI para Desenvolvedores do Azure cd my-agent/ && azd up Fluxos de trabalho baseados em azd

Todos os back-ends suportam --what-if / --dry-run para validação sem implementar. Para referência completa de comandos, flags e requisitos, consulte o repositório README.

Estrutura de diretórios de configuração

Quando executas new-agent.sh, gera um diretório de configuração:

my-agent/
├── agent.json              # Agent identity, model, settings
├── connectors.json         # Data sources (App Insights, Log Analytics, MCP endpoints)
├── connectors.secrets.env  # Secrets — auto-gitignored
├── roles.yaml              # RBAC role assignments
├── config/
│   ├── skills/             # Skill instructions (YAML + markdown)
│   ├── subagents/          # Subagent definitions (YAML + markdown instructions)
│   ├── hooks/              # Safety guardrails (YAML)
│   ├── common-prompts/     # Shared prompt instructions
│   └── repos/              # Code repository connections
├── automations/
│   ├── scheduled-tasks/    # Recurring automated tasks
│   ├── incident-filters/   # Incident routing rules
│   └── incident-platforms/  # Incident platform connections
└── data/
    ├── knowledge/          # Upload docs, runbooks, reference material
    └── synthesized-knowledge/ # Agent's learned context

Edite estes ficheiros para personalizar o seu agente antes de implementar.

O que é implementado

A implementação ocorre em duas fases.

Fase 1: ARM (infraestrutura)

Recurso Purpose
Grupo de Recursos Contentor para todos os recursos
Identidade Gerida Atribuída pelo Utilizador Identidade Azure do agente
Espaço de Trabalho do Log Analytics Registo e diagnóstico
Application Insights Telemetry
Agente SRE (Microsoft.App/agents) O próprio agente
Atribuições de funções RBAC Leitor, Leitor de Monitorização, Leitor de Log Analytics, Administrador de Agente SRE
Conectores, competências, subagentes, ferramentas Configuração do agente via sub-recursos ARM

Fase 2: Plano de dados (configuração que o ARM ainda não consegue gerir)

Recurso Razão para o plano de dados
Repositórios de código Exigir autenticação Git (PAT/OAuth)
Ganchos Ainda não expostos como subrecursos do ARM no momento da implantação
Gatilhos HTTP Gerado do lado do servidor com URLs únicas
Ficheiros de conhecimento Carregamento binário de ficheiros
Configurações de plugins API apenas para planos de dados

Note

O script apply-extras.sh processa automaticamente a Fase 2 depois de concluída a implementação com Bicep/Terraform. Se o token do plano de dados não estiver disponível (por exemplo, num ambiente de CI/CD restrito), apresenta o que foi omitido, para que seja possível concluir o processo a partir de uma máquina com acesso.

Parâmetros-chave

Quando gera uma configuração usando new-agent.sh --set, introduza valores como agentName, resourceGroup, location, e targetRGs. O processo traduz estes valores em parâmetros de implantação para Bicep ou Terraform.

Para a lista completa de parâmetros, alternâncias de funcionalidades e os seus predefinidos, consulte o repositório README.

Operações do segundo dia

Os modelos incluem scripts para gestão contínua:

Operation O que faz
Export Crie um diretório de configuração a partir de um agente em execução - útil para backup ou migração
Clone Exporte um agente de origem e implemente para um novo nome e grupo de recursos
Diferença Compara a tua configuração local com a agente ativa
Verify Faz uma verificação de 22 pontos contra o agente ativo (conectores, competências, subagentes, ganchos)

Para comandos e utilização, consulte o repositório README.