次の方法で共有


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

Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020

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

このチュートリアルでは、以下について学習します。

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

[前提条件]

ゲートを設定する

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

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

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

  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. [ Pipelines>Releases] を選択し、リリース パイプラインを選択します。

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

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

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

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

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

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

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

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

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

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

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

  7. リリース パイプラインに戻り、ステージにカーソルを合わせ、[ ログ ] を選択してデプロイ ログを表示します。

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