ゲートと承認を使用してデプロイを制御する

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

リリース パイプラインで手動デプロイ承認、ゲート、手動介入を組み合わせて使用すると、ワークフローの特定のデプロイ前要件をすべて満たすようにデプロイをすばやく簡単に構成できます。

このチュートリアルでは、次の事項について説明します。

  • デプロイ前ゲート
  • 手動介入
  • 手動検証
  • デプロイ ログ

前提条件

ゲートを設定する

ゲートを使用すると、ユーザーの介入を必要とせずに、デプロイ前にリリース パイプラインが特定の条件を満たしていることを確認できます。

  1. [パイプライン]>[リリース] を選択します。 [編集] を選択して、パイプライン エディターを開きます。

    リリース パイプラインの [編集] ボタンを示すスクリーン ショット。

  2. ステージのデプロイ前アイコンを選択し、トグル ボタンを選択して ゲートを有効にします。

    ゲートを有効にする方法を示すスクリーンショット。

  3. 追加されたゲートが評価されるまでの遅延時間を指定します。 今回は、ゲート関数を初期化し、結果を返す前に安定できるようにすることです。

    デプロイ前の遅延時間を設定する方法を示すスクリーンショット。

  4. [追加] を選択し、[作業項目のクエリ] を選択します。

    作業項目のクエリ タスクを追加する方法を示すスクリーンショット。

  5. ドロップダウン メニューから既存の作業項目クエリを選択します。 クエリが返す作業項目の数に応じて、最大しきい値と最小しきい値を設定します。

    作業項目のクエリ タスクを構成する方法を示すスクリーンショット。

  6. [評価オプション] セクションを選択し、タイムアウトとサンプリング間隔を指定します。 指定できる最小値は、6 分のタイムアウトと 5 分のサンプリング間隔です。

    作業項目のクエリ タスクの評価オプションを構成する方法を示すスクリーンショット。

  7. 完了したら、 [保存] を選択します。

    リリース パイプラインを保存する方法を示すスクリーンショット。

手動介入を設定する

シナリオによっては、リリース パイプラインに手動介入を追加することが必要になる場合があります。 これを行うには、手動介入タスクをパイプラインに追加します。

  1. [パイプライン]>[リリース] を選択します。 リリース パイプラインを選択し、[タスク] を選択して、ステージを選択します。

    リリース パイプラインのステージ タスクに移動する方法を示すスクリーンショット。

  2. 省略記号 (...) を選択し、[エージェントレス ジョブを追加する] を選択します。

    エージェントレス ジョブを追加する方法を示すスクリーンショット。

  3. エージェントレス ジョブをデプロイ プロセスの先頭にドラッグ アンド ドロップします。 (+) 記号を選択し、[手動介入タスクの追加] を選択します。

    手動介入タスクを追加する方法を示すスクリーンショット。

  4. [表示名] と、タスクがトリガーされたときに表示される指示を入力します。 また、通知するユーザーの一覧と、タイムアウト期間内に介入が発生しなかった場合のタイムアウト アクション (拒否または再開) を指定することもできます。

    手動介入タスクを構成する方法を示すスクリーンショット。

  5. 完了したら、 [保存] を選択します。

注意

手動介入タスクは、エージェントレス ジョブでのみ使用できます。

手動検証を設定する

YAML パイプラインで手動検証タスクを使用して一時停止し、手動承認を待機できます。 手動検証は、計算を集中的に行うジョブを開始する前に構成設定を検証したり、パッケージをビルドしたりするシナリオで特に便利です。

waitForValidation ジョブでは、実行を一時停止し、タスクを確認および検証するための UI プロンプトをトリガーします。 notifyUsers に記載されているメール アドレスは、パイプラインの実行を承認または拒否するための通知を受け取ります。

手動検証プロンプトを示すスクリーンショット。

pool: 
   vmImage: ubuntu-latest

jobs:
- job: waitForValidation
  displayName: Wait for external validation  
  pool: server    
  timeoutInMinutes: 4320 # job times out in 3 days
  steps:   
   - task: ManualValidation@0
     timeoutInMinutes: 1440 # task times out in 1 day
     inputs:
         notifyUsers: |
            someone@example.com
         instructions: 'Please validate the build configuration and resume'
         onTimeout: 'resume'

デプロイ ログを表示する

デプロイ ログはデプロイの問題をデバッグするのに役立ちますが、それらを使用してパイプラインの実行を監査し、承認と、それらが付与された方法と誰によって付与されたかを確認することもできます。

  1. [パイプライン]>[リリース] を選択します。

    リリース定義の一覧を示すスクリーンショット。

  2. このビューには、パイプライン内の各ステージのライブ状態が表示されます。 この例の QA ステージは、介入を保留中です。 [再開] を選択します。

    介入を保留中の QA ステージを示すスクリーンショット。

  3. コメントを入力し、[再開] を選択します。

    手動介入の保留中の要求に応答する方法を示すスクリーンショット。

  4. QA ステージのデプロイが成功し、運用ステージに対してデプロイ前の承認がトリガーされます。

    次のステージでトリガーされるデプロイ前の承認を示すスクリーンショット。

  5. [承認] を選択して、コメントを入力し、[承認] を選択してデプロイを続行します。

    承認を保留中の要求に応答する方法を示すスクリーンショット。

  6. ライブ状態は、リリースが続行される前に、運用ステージのゲートが処理されていることを示します。

    運用処理ゲートを示すスクリーンショット。

  7. リリース パイプラインに戻り、ステージをポイントしてから、[ログ] を選択して、デプロイ ログを表示します。

    デプロイ ログへのアクセス方法を示すスクリーンショット。