Wdrażanie przy użyciu infrastruktury jako kodu w agencie SRE Azure

Programowe wdrażanie agenta SRE Azure przy użyciu szablonów z repozytorium microsoft/sre-agent.

Wskazówka

  • Cztery mechanizmy wdrażania: Bicep, Terraform, PowerShell i Azure Developer CLI
  • Gotowe receptury dla typowych scenariuszy (Azure Monitor, PagerDuty, Dynatrace)
  • Jedno polecenie umożliwiające przejście z zera do uruchomionego agenta: ./bin/deploy.sh my-agent/
  • Operacje drugiego dnia: eksportowanie, klonowanie, porównywanie i weryfikowanie agentów za pomocą tych samych narzędzi wiersza polecenia

Overview

Repozytorium microsoft/sre-agent udostępnia gotowe do produkcji szablony IaC do wdrażania agenta Azure SRE. Użyj następujących szablonów, aby:

  • Automatyzuj wdrożenia w potokach CI/CD
  • Konfiguracja agenta kontroli wersji w Git
  • Replikuj agentów między środowiskami (od deweloperskiego przez testowe po produkcyjne)
  • Standaryzuj konfigurację przy użyciu gotowych receptur

Wymagania wstępne

Narzędzie Wymagane dla Install
Azure CLI 2.x+ Wszystkie zaplecza Install
jq Wszystkie zaplecza brew install jq lub apt install jq
Terraform 1.5+ Tylko Terraform Install
PowerShell 7+ Tylko program PowerShell Install
Azure Developer CLI tylko azd Install

Uprawnienia platformy Azure: Właściciel na poziomie subskrypcji lub Współautor + Administrator dostępu użytkowników.

Zweryfikuj wymagania wstępne:

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

Szybki start

# 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/

Po wdrożeniu interfejs wiersza polecenia wyświetla adres URL portalu i punkt końcowy płaszczyzny danych:

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

Klonowanie istniejącego agenta

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

Eksportuje konfigurację agenta źródłowego i wdraża je w nowej nazwie i grupie zasobów. Jest to przydatne w przypadku replikowania między środowiskami.

Przepisy

Wstępnie przygotowane szablony dla typowych scenariuszy, takich jak reagowanie na alerty w usłudze Azure Monitor, zarządzanie incydentami w PagerDuty i integracja z Dynatrace. Microsoft regularnie dodaje nowe przepisy.

Przeglądaj dostępne przepisy w repozytorium szablonów.

# 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/

Wdróż backendy

Szablony obsługują cztery zaplecza wdrażania. Każdy z nich używa tego samego katalogu konfiguracji — wybierz ten, który pasuje do twojego środowiska:

Backend Command Użyj, gdy
Bicep ./bin/deploy.sh my-agent/ Ustawienie domyślne — używa az deployment sub create
Terraform ./bin/deploy-tf.sh my-agent/ Infrastruktura zarządzana przez program Terraform
PowerShell .\bin\ps\Deploy-Agent.ps1 -InputPath .\my-agent\ środowiska Windows/PowerShell 7
Azure Developer CLI cd my-agent/ && azd up azd oparte na przepływach pracy

Wszystkie backendy obsługują --what-if / --dry-run do walidacji bez wdrażania. Pełny opis poleceń, flag i wymagań znajdziesz w pliku README repozytorium.

Struktura katalogu konfiguracji

Po uruchomieniu polecenie new-agent.shgeneruje katalog konfiguracji:

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

Edytuj te pliki, aby dostosować agenta przed wdrożeniem.

Co jest wdrażane

Wdrożenie odbywa się w dwóch fazach.

Faza 1: ARM (infrastruktura)

Resource Purpose
Grupa zasobów Kontener na wszystkie zasoby
Użytkownikowi Przypisana Tożsamość Zarządzana Tożsamość agenta platformy Azure
Obszar roboczy usługi Log Analytics Rejestrowanie i diagnostyka
Application Insights Telemetry
Agent SRE (Microsoft.App/agents) Agent jako taki
Przypisania ról RBAC Czytelnik, Czytelnik monitorowania, Czytelnik Log Analytics, Administrator agenta SRE
Łączniki, umiejętności, subagenty, narzędzia Konfiguracja agenta przy użyciu podzasobów ARM

Faza 2: Płaszczyzna danych (konfiguracja, której ARM nie może jeszcze obsłużyć)

Resource Przyczyna płaszczyzny danych
Repozytoria kodu Wymagaj uwierzytelniania Git (PAT/OAuth)
Punkty zaczepienia Jeszcze nie udostępnione jako podrzędne zasoby ARM podczas wdrażania
Wyzwalacze HTTP Generowane po stronie serwera z unikatowymi adresami URL
Pliki wiedzy Przekazywanie pliku binarnego
Konfiguracje wtyczek Interfejs API wyłącznie dla płaszczyzny danych

Note

Skrypt apply-extras.sh obsługuje fazę 2 automatycznie po zakończeniu wdrażania Bicep/Terraform. Jeśli token płaszczyzny danych jest niedostępny (na przykład w ograniczonym środowisku CI/CD), wyświetla, co zostało pominięte, aby można było dokończyć operację na komputerze z dostępem.

Kluczowe parametry

Podczas generowania konfiguracji przy użyciu polecenia new-agent.sh --setwprowadź wartości, takie jak agentName, resourceGroup, locationi targetRGs. Ten proces przekształca te wartości w parametry wdrożenia dla Bicep lub Terraform.

Aby uzyskać pełną listę parametrów, przełączeń funkcji i ich wartości domyślnych, zobacz plik README repozytorium.

Operacje drugiego dnia

Szablony obejmują skrypty do ciągłego zarządzania:

Operacja Co to robi
Eksportowanie Tworzenie katalogu konfiguracji na podstawie uruchomionego agenta — przydatne do tworzenia kopii zapasowej lub migracji
Klon Wyeksportuj agenta źródłowego i wdróż go pod nową nazwą oraz do nowej grupy zasobów
Diff Porównanie konfiguracji lokalnej z agentem na żywo
Verify Uruchamianie 22-punktowej kontroli względem agenta na żywo (łączniki, umiejętności, podagenty, punkty zaczepienia)

Aby uzyskać informacje o poleceniach i użyciu, zobacz plik README repozytorium.