| name | azure-env-builder |
| description | エンタープライズ Azure 環境構築スキル。AVM 活用、VM アプリ初期化、App Service/AKS/Container Apps へのアプリデプロイ、サービス間設定連携、CI/CD 生成をサポート。Hub-Spoke, AKS, AI Foundry 等の複合アーキテクチャに対応。Bicep MCP と Microsoft Learn Docs MCP で最新スキーマを取得。 |
Azure Environment Builder
エンタープライズ向け Azure 環境を効率的に構築するスキル。
🎯 機能一覧
| カテゴリ | 機能 |
|---|---|
| 🏗️ アーキテクチャ | Hub-Spoke, Web+DB, AKS, AI Foundry, Proxy VM パターン |
| 📦 AVM モジュール | 200+ Azure Verified Modules カタログ |
| 🖥️ VM 初期化 | Squid, Nginx, Docker, IIS 等のアプリ組み込みスクリプト |
| � アプリデプロイ | App Service, AKS (Helm/kubectl), Container Apps デプロイ |
| �🔗 設定連携 | SQL/Storage/Redis 接続文字列、Managed Identity RBAC 自動化 |
| 🚀 CI/CD | GitHub Actions / Azure Pipelines テンプレート |
| 🔒 セキュリティ | Private Endpoint, Firewall, NSG 自動構成 |
ワークフロー概要
1. ヒアリング (基本情報 + アーキテクチャパターン選択)
↓
2. MCP ツールで最新 AVM/スキーマ取得
↓
3. 環境フォルダ生成 (scripts/scaffold_environment.ps1)
↓
4. Bicep 実装 (AVM モジュール + VM 初期化スクリプト)
↓
5. CI/CD パイプライン生成 (GitHub Actions or Azure Pipelines)
↓
6. 検証 (what-if) → デプロイ → 結果記録
必須: MCP ツールの使用
Bicep コード生成前に必ず実行すること。
# 1. ベストプラクティス取得
mcp_bicep_experim_get_bicep_best_practices
# 2. AVM (Azure Verified Modules) カタログ確認
mcp_bicep_experim_list_avm_metadata
# 3. リソーススキーマ確認
mcp_bicep_experim_list_az_resource_types_for_provider(providerNamespace: "Microsoft.Network")
mcp_bicep_experim_get_az_resource_type_schema(azResourceType: "Microsoft.Storage/storageAccounts", apiVersion: "2023-05-01")
# 4. 公式ドキュメント/サンプル検索
microsoft_docs_search(query: "Private Endpoint Bicep")
microsoft_code_sample_search(query: "cloud-init CustomScriptExtension", language: "bicep")
Step 1: ヒアリング
基本情報 (必須)
| 項目 | 確認内容 |
|---|---|
| サブスクリプション | ID またはログイン状態 (az account show) |
| 環境名 | dev / staging / prod など |
| リージョン | japaneast / japanwest など |
| デプロイ方式 | Azure CLI / Bicep |
| スコープ | ResourceGroup / Subscription |
アーキテクチャパターン選択
→ references/architecture-patterns.md から選択
| パターン | 用途 |
|---|---|
| 🏢 Hub-Spoke Landing Zone | 大規模エンタープライズ、複数環境 |
| 🌐 Web + Database | 一般的な Web アプリ (App Service) |
| ☸️ AKS Kubernetes | コンテナ化されたマイクロサービス |
| 🤖 AI Foundry | AI/ML ワークロード |
| 🔒 Proxy VM (Squid 等) | 閉域ネットワーク、送信制御 |
VM アプリ初期化要件
→ references/vm-app-scripts.md 参照
| アプリ | 対応 OS | 初期化方式 |
|---|---|---|
| 🦑 Squid Proxy | Linux | cloud-init + CustomScriptExtension |
| 🌐 Nginx Reverse | Linux | cloud-init |
| 🐳 Docker + Compose | Linux | cloud-init |
| 🪟 IIS | Windows | CustomScriptExtension (PowerShell) |
サービス間設定連携
→ references/service-config-templates.md 参照
| 連携パターン | 設定内容 |
|---|---|
| App → SQL Database | 接続文字列自動生成、Managed Identity RBAC |
| App → Storage | AccountKey または RBAC、SAS トークン |
| App → Redis Cache | 接続文字列、アクセスキー |
| App → Key Vault | Managed Identity、シークレット参照 |
| Private Endpoint | DNS Zone Link、NIC 自動構成 |
→ 詳細なヒアリング項目: references/hearing-checklist.md
Step 2: 環境フォルダ生成
pwsh scripts/scaffold_environment.ps1 -Environment <env> -Location <region> -DeploymentMode Bicep -DeploymentScope <scope>
生成物:
env/<env>/bicep/main.bicepenv/<env>/bicep/parameters/<env>.jsonenv/<env>/README.md
Step 3: Bicep 実装 (AVM 活用)
AVM モジュール参照
→ references/avm-modules.md で最新バージョン確認
// AVM モジュール使用例 (VNet)
module vnet 'br/public:avm/res/network/virtual-network:0.7.1' = {
name: 'vnetDeployment'
params: {
name: 'vnet-${environment}-${location}'
addressPrefixes: ['10.0.0.0/16']
subnets: [
{ name: 'snet-web', addressPrefix: '10.0.1.0/24' }
{ name: 'snet-db', addressPrefix: '10.0.2.0/24' }
]
}
}
VM アプリ初期化 (Squid 例)
// Squid Proxy VM with cloud-init
module squidVm 'br/public:avm/res/compute/virtual-machine:0.13.0' = {
name: 'squidVmDeployment'
params: {
name: 'vm-squid-${environment}'
vmSize: 'Standard_B2s'
osType: 'Linux'
imageReference: {
publisher: 'Canonical'
offer: '0001-com-ubuntu-server-jammy'
sku: '22_04-lts-gen2'
version: 'latest'
}
// cloud-init でアプリ初期化
customData: loadFileAsBase64('../scripts/cloud-init-squid.yaml')
}
}
→ 詳細: references/vm-app-scripts.md
Step 4: CI/CD パイプライン生成
→ references/cicd-templates/ 参照
GitHub Actions
# .github/workflows/deploy-azure.yml
name: Deploy Azure Environment
on:
push:
branches: [main]
paths: ["env/**/*.bicep"]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: azure/login@v2
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
- run: |
az deployment group create \
--resource-group ${{ vars.RESOURCE_GROUP }} \
--template-file env/prod/bicep/main.bicep
Step 5: 検証 & デプロイ
# 検証 (what-if)
az deployment group what-if --resource-group <rg> --template-file main.bicep --parameters @parameters/<env>.json
# デプロイ
az deployment group create --resource-group <rg> --template-file main.bicep --parameters @parameters/<env>.json
Step 6: 結果出力
デプロイ完了後、以下を必ず出力:
## 🎉 デプロイ完了
| リソース | 名前 | 状態 | 備考 |
| --------------- | ------------- | -------- | --------------------- |
| ✅ VNet | vnet-prod-jpe | 作成済み | Hub-Spoke |
| ✅ Squid VM | vm-squid-prod | 作成済み | Squid 3128 リッスン中 |
| ✅ App Service | app-web-prod | 作成済み | MI で SQL 接続 |
| ✅ SQL Database | sql-db-prod | 作成済み | PE 経由アクセスのみ |
### サービス間接続設定
| 接続元 | 接続先 | 認証方式 |
| ----------- | ------------ | ------------------ |
| App Service | SQL Database | Managed Identity |
| App Service | Storage | RBAC (Blob Reader) |
### Azure Portal リンク
- [リソースグループ](https://portal.azure.com/#@/resource/subscriptions/{subId}/resourceGroups/{rg}/overview)
📚 参照ファイル
コア
| ファイル | 用途 |
|---|---|
| references/hearing-checklist.md | 詳細ヒアリング項目 |
| references/environment-template.md | 環境定義テンプレート |
| references/resource-patterns.md | リソース別構成パターン |
| references/review-checklist.md | レビュー確認事項 |
新機能
| ファイル | 用途 |
|---|---|
| references/architecture-patterns.md | Hub-Spoke, AKS, AI 等のアーキテクチャ |
| references/avm-modules.md | AVM モジュールカタログ (200+) |
| references/vm-app-scripts.md | Squid/Nginx/Docker 等 VM 初期化スクリプト |
| references/app-deploy-patterns.md | App Service/AKS/Container Apps デプロイ |
| references/service-config-templates.md | サービス間設定連携パターン |
| references/cicd-templates/ | GitHub Actions / Azure Pipelines |
スクリプト
| ファイル | 用途 |
|---|---|
| scripts/scaffold_environment.ps1 | 環境フォルダ生成 |
| scripts/validate_bicep.ps1 | Bicep 検証 |
| scripts/preview_cli.ps1 | CLI プレビュー |