Menerapkan dengan infrastruktur sebagai kode menggunakan Azure SRE Agent

Sebarkan Azure SRE Agent secara terprogram dengan menggunakan templat dari repositori microsoft/sre-agent.

Tip

  • Empat backend deployment: Bicep, Terraform, PowerShell, dan Azure Developer CLI
  • Resep bawaan untuk skenario umum (Azure Monitor, PagerDuty, Dynatrace)
  • Satu perintah untuk memulai dari nol hingga agen aktif: ./bin/deploy.sh my-agent/
  • Operasi hari ke-2: mengekspor, mengkloning, membedakan, dan memverifikasi agen dengan menggunakan alat CLI yang sama

Overview

Repositori microsoft/sre-agent menyediakan templat IaC siap produksi untuk menyebarkan agen SRE Azure. Gunakan templat ini untuk:

  • Mengotomatiskan penyebaran dalam alur CI/CD
  • Konfigurasi agen untuk kontrol versi di Git
  • Mereplikasi agen di seluruh lingkungan (dev to staging to prod)
  • Standarkan penyiapan dengan menggunakan resep siap pakai

Prasyarat

Alat Diperlukan untuk Install
Azure CLI 2.x+ Semua backend Install
jq Semua backend brew install jq atau apt install jq
Terraform 1.5+ Hanya Terraform Install
PowerShell 7+ Hanya PowerShell Install
Azure Developer CLI azd saja Install

Izin Azure: Pemilik pada langganan, atau Kontributor + Administrator Akses Pengguna.

Verifikasi prasyarat:

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

Cepat Mulai

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

Setelah penyebaran, CLI mencetak URL portal dan titik akhir sarana data:

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

Mengkloning agen yang ada

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

Mengekspor konfigurasi agen sumber dan menerapkannya ke nama baru dan grup sumber daya baru. Ini berguna untuk mereplikasi di seluruh lingkungan.

Resep

Titik awal siap pakai untuk skenario umum seperti respons terhadap peringatan Azure Monitor, manajemen insiden PagerDuty, dan integrasi Dynatrace. Microsoft secara teratur menambahkan resep baru.

Telusuri resep yang tersedia di repositori templat.

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

Terapkan backend

Templat mendukung empat backend penyebaran. Masing-masing menggunakan direktori konfigurasi yang sama - pilih direktori yang sesuai dengan lingkungan Anda:

Backend Command Gunakan ketika diperlukan
Bicep ./bin/deploy.sh my-agent/ Default - menggunakan az deployment sub create
Terraform ./bin/deploy-tf.sh my-agent/ Infrastruktur yang dikelola oleh Terraform
PowerShell .\bin\ps\Deploy-Agent.ps1 -InputPath .\my-agent\ lingkungan Windows/PowerShell 7
Azure Developer CLI cd my-agent/ && azd up alur kerja berbasis azd

Semua backend mendukung --what-if / --dry-run untuk validasi tanpa menerapkan. Untuk referensi perintah lengkap, bendera, dan persyaratan, lihat repositori README.

Struktur direktori konfigurasi

Saat Anda menjalankan new-agent.sh, itu menghasilkan direktori konfigurasi:

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

Edit file ini untuk menyesuaikan agen Anda sebelum menerapkannya.

Apa yang akan diterapkan

Penyebaran terjadi dalam dua fase.

Fase 1: ARM (infrastruktur)

Sumber Daya Kegunaan
Grup Sumber Daya Kontainer untuk segala sumber daya
Identitas Terkelola yang Ditugaskan Pengguna Identitas agen Azure
Ruang Kerja Log Analytics Pencatatan dan diagnostik
Application Insights Telemetri
Agen SRE (Microsoft.App/agents) Agen itu sendiri
Penetapan peran RBAC Pembaca, Pembaca Pemantauan, Pembaca Log Analytics, Administrator Agen SRE
Konektor, keahlian, subagen, alat Konfigurasi agen melalui sub-sumber daya ARM

Fase 2: Bidang data (konfigurasi yang belum dapat ditangani ARM)

Sumber Daya Alasan bidang data
Repositori kode Memerlukan autentikasi Git (PAT/OAuth)
Hook Belum diekspos sebagai sub-sumber daya ARM pada waktu penyebaran
Pemicu HTTP Dihasilkan di sisi server dengan URL unik
Berkas pengetahuan Unggahan file biner
Konfigurasi plugin API khusus bidang data

Note

Skrip apply-extras.sh menangani Fase 2 secara otomatis setelah penyebaran Bicep/Terraform selesai. Jika token data-plane tidak tersedia (misalnya, di lingkungan CI/CD yang terbatas), sistem akan menampilkan apa saja yang dilewati sehingga Anda dapat menyelesaikannya dari komputer yang memiliki akses.

Parameter kunci

Saat Anda membuat konfigurasi dengan menggunakan new-agent.sh --set, masukkan nilai seperti agentName, , resourceGrouplocation, dan targetRGs. Proses ini menerjemahkan nilai-nilai ini ke dalam parameter penyebaran untuk Bicep atau Terraform.

Untuk daftar lengkap parameter, tombol fitur, dan defaultnya, lihat repositori README.

Operasi hari ke-2

Template menyertakan skrip untuk pengelolaan berkelanjutan:

Operasi Apa fungsinya
Ekspor Membuat direktori konfigurasi dari agen yang sedang berjalan - berguna untuk pencadangan atau migrasi
Clone Ekspor agen sumber dan terapkan dengan nama baru dan ke grup sumber daya baru
Diff Bandingkan konfigurasi lokal Anda dengan agen aktif
Verify Jalankan pemeriksaan 22 poin pada agen aktif (konektor, keterampilan, subagen, hook)

Untuk perintah dan penggunaan, lihat repositori README.