Contents
1. 組織とプロジェクトの作成(前提条件)
1‑1. 必要な権限
- Project Collection Administrators または Contributor ロールが付与された Azure AD アカウント
- 権限が不足していると UI 操作や REST API がすべて失敗するため、最初に確認しておきましょう。
1‑2. 組織の作成手順
| 手順 | 内容 |
|---|---|
| ① | ブラウザで https://dev.azure.com/ にアクセスし、右上の Start をクリック |
| ② | 「組織名」を入力(例: myorg)→「続行」 |
| ③ | 必要に応じて Azure AD テナントを選択し、作成完了 |
ポイント:無料プランでも上記だけで組織が構築できます。企業利用の場合は、Organization Settings の Policies で MFA や条件付きアクセスの設定も検討してください。
1‑3. プロジェクトの新規作成
- 組織ホーム左メニュー → Projects → New project
- 必要項目を入力
- Project name(例:
SampleApp) - Visibility:Public または Private
- Version control:Git(TFVC は非推奨)
- Work item process:Agile / Scrum / Basic から選択
- Create をクリックして完了
1‑4. 権限付与の確認
- 組織設定 → Security → Users
- 自分のアカウントが
Project Collection Administratorsまたは少なくともContributorに属しているかチェック
2. リポジトリ準備とブランチ戦略
2‑1. Git リポジトリの作成
| 手順 | 操作 |
|---|---|
| ① | プロジェクト画面左メニュー → Repos → Files |
| ② | New repository をクリックし、名前 sample-app、Git を選択 |
| ③ | 必要なら README を自動生成し、Create |
2‑2. ローカルクローンと初回プッシュ
|
1 2 3 4 5 6 7 |
git clone https://dev.azure.com/myorg/sample-app/_git/sample-app cd sample-app echo "# Sample App" > README.md git add . git commit -m "Initial commit" git push origin --set-upstream main # Trunk‑Based の場合は main ブランチを使用 |
2‑3. 推奨ブランチモデル
| モデル | 主なブランチ | 用途 |
|---|---|---|
| Trunk‑Based | main、feature/*、release/* |
本番デプロイは常に main にマージし、CI が自動走行 |
| 軽量 Git Flow | develop、feature/*、release/*、hotfix/* |
中規模以上のチーム向け。develop が統合ブランチになる |
ポイント:小規模チームは
mainのみでも問題ありませんが、将来的に機能追加やリリース作業が増えることを想定し、最低限feature/*とrelease/*を導入しておくとスムーズです。
3. UI で最初のパイプラインを作成
3‑1. パイプライン作成フロー(Web UI)
- Pipelines → Create pipeline
- リポジトリ選択:
Azure Repos Git→sample-app - テンプレート選択:「Starter pipeline」(空の YAML)または言語別テンプレート
- エディタに自動生成された YAML が表示されるので内容を確認し、Save and run をクリック
3‑2. UI 作成で得られる主な利点
- 即時ビルド実行:
azure-pipelines.ymlがリポジトリにコミットされると同時に CI が走ります。 - YAML の雛形取得:生成されたコードをベースにカスタマイズでき、手書きミスが減少します。
- 可視化:左メニューの Runs で実行履歴やログが一目で把握可能
ポイント:UI から作成したパイプラインはあくまで「開始点」。本格的なテスト・デプロイ設定は YAML 編集で拡張してください。
4. azure-pipelines.yml の基本構造と AI アシスト活用
4‑1. 必須要素の概要
| 要素 | 説明 |
|---|---|
trigger |
ビルドを自動起動するブランチやパスを定義 |
pool |
実行エージェント(OS・イメージ)を指定 |
stages |
大きなフェーズ(Build、Test、Deploy など)を分割 |
jobs |
同一ステージ内で実行できるタスク集合 |
steps |
実際のコマンド・タスクを記述 |
4‑2. 最小構成例
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
trigger: branches: include: - main pool: vmImage: 'ubuntu-latest' stages: - stage: Build jobs: - job: Compile steps: - task: UseNode@2 inputs: versionSpec: '20.x' - script: npm install displayName: 'Install dependencies' - script: npm run build displayName: 'Build project' - stage: Deploy dependsOn: Build condition: succeeded() jobs: - deployment: WebApp environment: dev strategy: runOnce: deploy: steps: - task: AzureWebApp@1 inputs: azureSubscription: 'MyServiceConnection' appName: 'sample-webapp-dev' package: $(System.DefaultWorkingDirectory)/**/*.zip |
4‑3. AI アシスト(Azure DevOps AI Assist)活用手順
※2024 年 10 月時点の情報
Azure DevOps の AI Assist はプレビュー機能として提供されており、組織設定で有効化するだけで UI 上に「Generate with AI」ボタンが表示されます。正式リリース日や機能追加は Microsoft の公式アナウンスをご参照ください。
手順
- 組織設定 → Preview features → AI Assist を ON にする
- パイプライン作成画面のテンプレート選択時に右上の Generate with AI ボタンが表示されるのでクリック
- 「自然言語プロンプト」を入力(例:
Node.js アプリを Ubuntu ランナーでビルドし、Azure Web App (dev) にデプロイするパイプラインを書いて) - 生成された YAML がエディタに表示されるので、レビュー → Save and run
AI Assist 利用時の留意点
- プレビュー機能であるため、必ず出力内容を手動で確認し、組織独自のポリシー(例: セキュリティチェックや変数名)に合致しているか検証してください。
- 生成結果はテンプレート ですので、実際のビルド環境に合わせて
poolやserviceConnectionの名前を修正する必要があります。
4‑4. ポイントまとめ
- 基本構造(trigger → pool → stages → jobs → steps)を把握すれば、AI Assist が出力したコードでも容易にカスタマイズ可能。
- AI Assist は「時間短縮」だけでなく、「ヒューマンエラー防止」の側面もあるため、導入前に プレビュー有効化 と レビュー体制 を整えておくことが重要です。
5. Environments・Variable Groups・Key Vault による安全な設定管理
5‑1. Environments の作成と承認ポリシー
| 手順 | 操作 |
|---|---|
| ① | Pipelines → Environments → New environment |
| ② | 名前(例: dev、staging、prod)を入力し、必要なら Resource(Kubernetes クラスタや Azure VM)を紐付ける |
| ③ | Approvals and checks タブで Manual approval や Branch protection を設定 |
Environments に対する承認は、デプロイ前に必ず担当者が確認できるガバナンス手段です。
5‑2. Variable Group と Azure Key Vault の連携
|
1 2 3 |
variables: - group: dev-vars # Azure DevOps の変数グループを参照 |
作成手順
- Pipelines → Library → + Variable group
- 名前
dev-vars、スコープ(対象環境)を選択 - 「Link secrets from an Azure key vault as variables」にチェックし、利用する Key Vault とシークレット名を指定
ポイント:Key Vault へのアクセスは、Azure DevOps のサービスプリンシパルに
get権限が付与されていることが前提です。アクセスポリシーの確認・設定も忘れずに。
5‑3. CI トリガーと PR ビルドの実装例
|
1 2 3 4 5 6 7 8 9 10 11 |
trigger: branches: include: - main - develop pr: branches: include: - develop |
mainとdevelopのプッシュで CI が走り、developに対する Pull Request 作成時にもビルドが自動実行されます。
5‑4. ポイントまとめ
- Environments → Variable Groups → Key Vault の三層構造で、環境ごとに安全かつ承認制の設定を一元管理できる。
- CI/PR ビルドは同じ変数グループを参照することで、コードとインフラ設定の同期が保たれます。
6. ベストプラクティス・エラー対策 & まとめ
6‑1. パイプライン設計のベストプラクティス
| 項目 | 推奨設定 / 手法 |
|---|---|
| ステージ分割 | Build → Test → Deploy の3段階で明確に分離し、dependsOn と condition で失敗時の流れを制御 |
| キャッシュ活用 | Cache@2 タスクで node_modules や Maven リポジトリをキャッシュし、ビルド時間を最大30%短縮 |
| ロギング強化 | variables: { system.debug: true } で詳細ログ取得。失敗時は Azure Monitor の Log Analytics に転送 |
| 構文検証 | VS Code の「Azure Pipelines」拡張や az pipelines validate -f azure-pipelines.yml を CI 前に実行 |
| 権限管理 | Service Connection は Project スコープではなく Organization スコープで作成し、Allow all pipelines to use this connection を有効化 |
6‑2. よくあるエラーと対処法
| エラー | 原因 | 対策 |
|---|---|---|
YAML 構文エラー (##[error]) |
インデント・コロン抜け等 | VS Code の Linter で事前検証、エラーメッセージの行番号を確認 |
| 401/403 権限不足 | Service Connection がプロジェクトスコープか、アクセスポリシー未設定 | 組織レベルに昇格し Allow all pipelines... を有効化 |
| Key Vault シークレット取得失敗 | Azure DevOps のサービスプリンシパルに get 権限がない |
Key Vault → Access policies で該当プリンシパルに Get を付与 |
| 環境承認で止まる | Approvals & Checks に設定された担当者が不在 | 代替承認者を追加、もしくはテスト目的で一時的に Auto approve(限定的)を使用 |
6‑3. 全体のまとめ
- 組織・プロジェクトと適切な権限 を最初に確立することで、以降の操作がスムーズになる。
- Git リポジトリとブランチ戦略 は CI の成功率を左右する重要要素。Trunk‑Based がシンプルで推奨される。
- UI で作成したパイプライン は即時動作し、YAML 雛形として活用できるため、初心者のハードルが低い。
azure-pipelines.ymlの基本構造 を把握した上で、AI Assist(プレビュー)を利用するとコード生成時間が大幅に短縮できる。- Environments・Variable Groups・Key Vault による設定管理は、セキュリティと承認フローの両立に不可欠。
- ベストプラクティス(ステージ分割・キャッシュ・ロギング)+エラー対策 を実装すれば、パイプラインは安定稼働し、障害対応コストも削減できる。
最終的なチェックリスト
- [ ] 組織・プロジェクトの権限が正しく付与されているか
- [ ] リポジトリとブランチモデルが CI フレンドリーになっているか
- [ ] 初回パイプラインは UI で作成し、YAML がコミット済みか
- [ ]azure-pipelines.ymlに必須要素(trigger・pool・stages)が揃っているか
- [ ] AI Assist を有効化した場合は生成コードをレビューしたか
- [ ] Environments と変数管理が適切に設定され、Key Vault 連携ができているか
- [ ] ベストプラクティス(キャッシュ・ロギング等)が実装済みか
これらの項目を順番にクリアすれば、Azure DevOps 上で安全かつ高速な CI/CD パイプライン を構築できるはずです。ぜひ本ガイドを手元に置きながら、実際のプロジェクトへ適用してみてください。