Azure SRE 에이전트에서 코드형 인프라를 사용하여 배포

microsoft/sre-agent 리포지토리의 템플릿을 사용하여 프로그래밍 방식으로 Azure SRE 에이전트를 배포합니다.

Tip

  • 4가지 배포 백엔드: Bicep, Terraform, PowerShell 및 Azure Developer CLI
  • 사전 구축된 레시피 일반적인 시나리오용(Azure Monitor, PagerDuty, Dynatrace)
  • 0에서 실행 중인 에이전트로 이동하는 하나의 명령:./bin/deploy.sh my-agent/
  • 2일차 작업: 동일한 CLI 도구를 사용하여 에이전트 내보내기, 복제, 차이 및 확인

개요

microsoft/sre-agent 리포지토리는 Azure SRE 에이전트를 배포하기 위한 프로덕션 준비 IaC 템플릿을 제공합니다. 다음 템플릿을 사용하여 다음을 수행합니다.

  • CI/CD 파이프라인에서 배포 자동화
  • Git의 버전 관리 에이전트 구성
  • 복제하여 에이전트를 환경 간에 배포(개발에서 스테이징, 프로덕션으로)
  • 미리 빌드된 레시피를 사용하여 설정 표준화

사전 요구 사항

Tool 필수 Install
Azure CLI 2.x+ 모든 백엔드 설치
jq 모든 백엔드 brew install jq 또는 apt install jq
Terraform 1.5 이상 Terraform만 설치
PowerShell 7 이상 PowerShell만 설치
Azure 개발자 명령줄 인터페이스 (CLI) azd만 설치

Azure 권한: 구독의 소유자 또는 기여자 + 사용자 액세스 관리자.

사전 요구 사항 확인:

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

빠른 시작

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

배포 후 CLI는 포털 URL 및 데이터 평면 엔드포인트를 출력합니다.

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

기존 에이전트 복제

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

원본 에이전트의 구성을 내보내고 새 이름 및 리소스 그룹에 배포합니다. 이는 여러 환경에서 복제하는 데 유용합니다.

조리법

Azure Monitor 경고 응답, PagerDuty 인시던트 관리 및 Dynatrace 통합과 같은 일반적인 시나리오에 대해 미리 빌드된 시작 지점입니다. Microsoft 정기적으로 새로운 조리법을 추가합니다.

템플릿 리포지토리에서 사용 가능한 레시피를 찾아봅니다.

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

백엔드 배포

템플릿은 4개의 배포 백 엔드를 지원합니다. 각각 동일한 구성 디렉터리를 사용합니다. 환경에 맞는 구성 디렉터리를 선택합니다.

Backend Command 사용 시기
Bicep (인프라 코드 관리 도구) ./bin/deploy.sh my-agent/ 기본값 - 사용 az deployment sub create
Terraform ./bin/deploy-tf.sh my-agent/ Terraform 관리형 인프라
PowerShell .\bin\ps\Deploy-Agent.ps1 -InputPath .\my-agent\ Windows/PowerShell 7 환경
Azure 개발자 명령줄 인터페이스 (CLI) cd my-agent/ && azd up azd 기반 워크플로

모든 백 엔드는 배포하지 않고 유효성 검사를 지원 --what-if / --dry-run 합니다. 전체 명령 참조, 플래그 및 요구 사항은 리포지토리 추가 정보(README)를 참조하세요.

디렉터리 구조 구성

실행 new-agent.sh하면 구성 디렉터리가 생성됩니다.

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

배포하기 전에 이러한 파일을 편집하여 에이전트를 사용자 지정합니다.

배포되는 항목

배포는 두 단계로 이루어집니다.

1단계: ARM(인프라)

Resource 용도
리소스 그룹 모든 리소스에 대한 컨테이너
사용자가 할당한 관리 ID 에이전트의 Azure ID
Log Analytics 작업 영역 로깅 및 진단
Application Insights Telemetry
SRE 에이전트(Microsoft.App/agents) 에이전트 자체
RBAC 역할 할당 읽기 권한자, 모니터링 읽기 권한자, 로그 분석 읽기 권한자, SRE Agent 관리자
커넥터, 기술, 스바젠트, 도구 ARM 하위 리소스를 통한 에이전트 구성

2단계: 데이터 평면(ARM에서 아직 처리할 수 없는 구성)

Resource 데이터 평면에 대한 이유
코드 리포지토리 Git 인증 필요(PAT/OAuth)
후크 아직 배포 시 ARM 하위 리소스로 노출되지 않음
HTTP 트리거 고유한 URL을 사용해 서버 측에서 생성됨
지식 파일 이진 파일 업로드
플러그 인 구성 데이터 플레인 전용 API

참고

apply-extras.sh 스크립트는 Bicep/Terraform 배포가 완료된 후 자동으로 2단계를 처리합니다. 데이터 평면 토큰을 사용할 수 없는 경우(예: 제한된 CI/CD 환경에서) 건너뛴 항목을 인쇄하므로 액세스 권한이 있는 컴퓨터에서 완료할 수 있습니다.

키 매개 변수

new-agent.sh --set를 사용하여 구성을 생성할 때 agentName, resourceGroup, location, targetRGs와 같은 값을 입력합니다. 이 프로세스는 이러한 값을 Bicep 또는 Terraform에 대한 배포 매개 변수로 변환합니다.

매개 변수, 기능 토글 및 해당 기본값의 전체 목록은 리포지토리 추가 정보(README)를 참조하세요.

2일차 작업

템플릿에는 지속적인 관리를 위한 스크립트가 포함됩니다.

작업 용도
내보내기 실행 중인 에이전트에서 구성 디렉터리 만들기 - 백업 또는 마이그레이션에 유용
클론 원본 에이전트 내보내기 및 새 이름 및 리소스 그룹에 배포
Diff 라이브 에이전트와 로컬 구성 비교
Verify 라이브 에이전트를 대상으로 커넥터, 스킬, 하위 에이전트, 후크에 대한 22개 항목 검사를 실행합니다.

명령 및 사용법은 리포지토리 추가 정보(README)를 참조하세요.