Azure SRE エージェントでコードとしてのインフラストラクチャを使用してデプロイする

microsoft/sre-agent リポジトリのテンプレートを使用して、SRE エージェントAzureプログラムでデプロイします。

Tip

  • 4 つのデプロイ バックエンド: Bicep、Terraform、PowerShell、Azure Developer CLI
  • 一般的なシナリオ (Azure Monitor、PagerDuty、Dynatrace) の作成済みのレシピ
  • 0 から実行中のエージェントに移動する 1 つのコマンド:./bin/deploy.sh my-agent/
  • Day-2運用: 同じCLIツールを使用して、エージェントのエクスポート、複製、差分の確認、検証を実行

概要

microsoft/sre-agent リポジトリには、Azure SRE エージェントをデプロイするための運用対応の IaC テンプレートが用意されています。 これらのテンプレートを使用して、次の手順を実行します。

  • CI/CD パイプラインでのデプロイの自動化
  • Git でのバージョン管理エージェントの構成
  • 環境間でエージェントをレプリケートする (開発からステージング、運用)
  • 事前構築済みのレシピを使用してセットアップを標準化する

前提条件

ツール 対象 Install
Azure CLI 2.x 以降 すべてのバックエンド インストール
jq すべてのバックエンド brew install jq または apt install jq
Terraform 1.5 以降 Terraform のみ インストール
PowerShell 7 以降 PowerShell のみ インストール
Azure Developer 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 Developer 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

デプロイする前に、これらのファイルを編集してエージェントをカスタマイズします。

何がデプロイされるか

デプロイは 2 つのフェーズで行われます。

フェーズ 1: ARM (インフラストラクチャ)

資源 Purpose
リソース グループ すべてのリソースを格納するコンテナー
ユーザー割り当てのマネージド ID エージェントのAzure ID
Log Analytics ワークスペース ログ記録と診断
Application Insights Telemetry
SRE エージェント (Microsoft.App/agents) エージェント自体
RBAC ロールの割り当て 閲覧者、監視リーダー、Log Analytics 閲覧者、SRE エージェント管理者
コネクタ、スキル、サブエージェント、ツール ARM サブリソースを使用したエージェントの構成

フェーズ 2: データ プレーン (ARM でまだ処理できない構成)

資源 データプレーンの理由
コード リポジトリ Git 認証を要求する (PAT/OAuth)
フック デプロイ時に ARM サブリソースとしてまだ公開されていない
HTTP トリガー サーバー側で生成される一意のURLを持つ
知識ファイル バイナリ ファイルのアップロード
プラグインの構成 データプレーン専用の API

Note

apply-extras.sh スクリプトは、Bicep/Terraform デプロイの完了後にフェーズ 2 を自動的に処理します。 データ プレーン トークンが使用できない場合 (制限付き CI/CD 環境など)、スキップされた内容が出力されるため、アクセス権を持つマシンから完了できます。

キー パラメーター

new-agent.sh --setを使用して構成を生成する場合は、agentNameresourceGrouplocationtargetRGsなどの値を入力します。 このプロセスでは、これらの値が Bicep または Terraform のデプロイ パラメーターに変換されます。

パラメーター、機能の切り替え、およびその既定値の完全な一覧については、 リポジトリ README を参照してください。

Day-2 operations

テンプレートには、継続的な管理のためのスクリプトが含まれています。

操作 それが何をするか
エクスポート 実行中のエージェントから構成ディレクトリを作成する - バックアップまたは移行に役立つ
クローン ソース エージェントをエクスポートし、新しい名前とリソース グループにデプロイする
Diff ローカル構成をライブ エージェントと比較する
確認 ライブ エージェント (コネクタ、スキル、サブエージェント、フック) に対して 22 ポイントのチェックを実行する

コマンドと使用方法については、 リポジトリ README を参照してください。