チュートリアル: Azure Pipelines を使用した CI/CD のデプロイ環境

このチュートリアルでは、Azure Deployment Environment (ADE) を Azure Pipelines CI/CD パイプラインに統合する方法について説明します。

継続的インテグレーションと継続的デリバリー (CI/CD) は、チームがソフトウェアの変更のビルド、テスト、デプロイのプロセスを自動化するために役立つソフトウェア開発アプローチです。 CI/CD を使用すると、ソフトウェアの変更をより頻繁にリリースでき、信頼度が高まります。

このチュートリアルを開始する前に、「Azure Deployment Environments の主要な概念」を確認して、Deployment Environments のリソースと概念について理解します。

このチュートリアルでは、次の作業を行う方法について説明します。

  • Azure Repos リポジトリの作成と構成
  • デベロッパー センターにカタログを接続する
  • サービス接続の構成
  • パイプラインを作成する
  • 環境を作成する
  • CI/CD パイプラインのテスト

前提条件

Azure Repos リポジトリの作成と構成

  1. Azure DevOps 組織 (https://dev.azure.com/<your-organization>) にサインインし、プロジェクトを選択します。 <your-organization> テキスト プレースホルダーをプロジェクト識別子に置き換えます。
  2. [Repos]>[ファイル] を選択します。
  3. [リポジトリのインポート][インポート] を選択します。
  4. [Git リポジトリのインポート]で、次を選択または入力します。

環境の種類を構成する

環境の種類は、開発チームがデプロイできるさまざまな種類の環境を定義します。 環境の種類ごとに異なる設定を適用できます。 デベロッパー センター レベルで環境の種類を作成し、プロジェクト レベルで参照できるようにします。

デベロッパー センター環境の種類を作成する:

  1. Azure portal にサインインします。

  2. [デベロッパー センター] で、自分のデベロッパー センターを選択します。

  3. 左側のメニューの [環境の構成] で、[環境の種類] を選択し、[作成] を選択します。

  4. 次のステップを使用して、サンドボックス、FunctionApp、WebApp の 3 種類の環境を作成します。 [環境の種類の作成] で、次の情報を入力し、[追加] を選択します。

    名前
    名前 環境の種類の名前 を追加します。
    タグ タグ名とタグ値を入力します。
  5. Azure portal 通知を確認して、環境の種類が追加されたことを確認します。

プロジェクト環境の種類を作成する:

  1. [管理] の左側のメニューで、[プロジェクト] を選択し、使用するプロジェクトを選択します。

  2. 左側のメニューの [環境の構成] で、[環境の種類] を選択し、[追加] を選択します。

  3. 次のステップを使用して、サンドボックス、FunctionApp、WebApp の 3 種類の環境を追加します。 [環境の種類を <project-name> に追加] で、次の情報を入力または選択します。

    名前
    Type 特定のプロジェクトに対して有効にするデベロッパー センター レベルの環境の種類を選択します。
    デプロイ サブスクリプション 環境が作成されるサブスクリプションを選択します。
    デプロイ ID ユーザーの代わりにデプロイを実行するシステム割り当て ID またはユーザー割り当てのマネージド ID を選択します。
    [環境リソースのアクセス許可]>[環境作成者ロール] 環境リソースへのアクセス権を付与するロールを選択します。
    [環境リソースのアクセス許可]>[追加のアクセス] 環境リソースの特定のロールに割り当てるユーザーまたは Microsoft Entra グループを選択します。
    タグ タグ名とタグ値を入力します。 これらのタグは、環境の一部として作成されるすべてのリソースに適用されます。
  4. Azure portal 通知を確認して、環境の種類が追加されたことを確認します。

サービス接続の構成

Azure Pipelines で、Azure DevOps プロジェクトにサービス接続を作成して、Azure サブスクリプション内のリソースにアクセスします。 サービス接続を作成すると、Azure DevOps によって Microsoft Entra サービス プリンシパル オブジェクトが作成されます。

  1. Azure DevOps 組織 (https://dev.azure.com/<your-organization>) にサインインし、プロジェクトを選択します。 <your-organization> テキスト プレースホルダーをプロジェクト識別子に置き換えます。

  2. [プロジェクトの設定]>[サービス接続]>[+ New service connection] (+ 新しいサービス接続) の順に選択します。

  3. [新しいサービス接続] ウィンドウで、[Azure Resource Manager] を選択して、[次へ] を選択します。

  4. [サービス プリンシパル (自動)] 認証方法を選択し、[次へ] を選択します。

  5. サービス接続の詳細を入力し、[保存] を選択してサービス接続を作成します。

    フィールド
    スコープのレベル [サブスクリプション]
    サブスクリプション デベロッパー センター リソースをホストする Azure サブスクリプションを選択します。
    リソース グループ デベロッパー センター リソースを含むリソース グループを選択します。
    サービス接続名 サービス接続の一意の名前を入力します。
    すべてのパイプラインへのアクセス許可を与える オン。
  6. サービス接続の一覧から、前に作成した接続を選択し、[サービス プリンシパルの管理] を選択します。 Azure portal が別のブラウザー タブで開き、サービス プリンシパルの詳細が表示されます。

  7. Azure portal で、[表示名] の値をコピーします。 次の手順でこの値を使用して、ロード テストを実行するためのアクセス許可をサービス プリンシパルに付与します。

ADE プロジェクトへのサービス接続アクセスを許可する

Azure Deployment Environments では、ロールベースのアクセス制御を使用して、ADE リソースで特定のアクティビティを実行するためのアクセス許可を付与します。 CI/CD パイプラインから変更を行うには、Deployment Environments のユーザー ロールをサービス プリンシパルに付与します。

  1. Azure portal で、ADE プロジェクトに移動します。
  2. [アクセス制御 (IAM)]>[追加]>[ロールの割り当ての追加] の順に選択します。
  3. [ロール] タブで、ジョブ機能ロールの一覧で [Deployment Environment ユーザー] を選択します。
  4. [メンバー] タブで [メンバーの選択] を選択し、前にコピーした表示名を使用してサービス プリンシパルを検索します。
  5. サービス プリンシパルを選択し、[選択] を選択します。
  6. [確認と 割り当て] タブで、[確認と割り当て] を選択して ロールの割り当てを追加します。

Azure Pipelines ワークフロー定義でサービス接続を使用して、ADE 環境にアクセスできるようになりました。

ADE プロジェクトへのアクセス権をアカウントに付与する

サービス接続を含む他のユーザーによって作成された環境を表示するには、ADE プロジェクトへの読み取りアクセス権をアカウントに付与する必要があります。

  1. Azure portal で、ADE プロジェクトに移動します。
  2. [アクセス制御 (IAM)]>[追加]>[ロールの割り当ての追加] の順に選択します。
  3. [ロール] タブで、ジョブ機能ロールの一覧で [Deployment Environment 閲覧者] を選択します。
  4. [メンバー] タブで、[メンバーの選択] 選択し、自分のアカウントを検索します。
  5. 一覧から自分のアカウントを選択し、[編集] を選択します。
  6. [確認と 割り当て] タブで、[確認と割り当て] を選択して ロールの割り当てを追加します。

Azure Pipelines ワークフローによって作成された環境を表示できるようになりました。

パイプラインの構成

Azure Repos リポジトリの azure-pipelines.yml ファイルを編集して、パイプラインをカスタマイズします。

パイプラインでは、環境を作成するステップを定義します。 このパイプラインでは、環境をジョブとして作成するステップを定義します。これは、1 つのユニットとして順番に実行される一連のステップです。

パイプラインをカスタマイズするには、次のステップを実行します。

  • 使用するサービス接続を指定します。パイプラインは Azure CLI を使用して環境を作成します。
  • インライン スクリプトを使用して、環境を作成する Azure CLI コマンドを実行します。

Azure CLI は、Azure リソースを操作するための一連のコマンドを提供するコマンドライン ツールです。 その他の Azure CLI コマンドについては、az devcenter を参照してください。

  1. Azure DevOps プロジェクトで、[リポジトリ]>[ファイル] を選択します。

  2. [ファイル] ウィンドウで、.ado フォルダーから azure-pipelines.yml ファイルを選択します。

  3. azure-pipelines.yml ファイルで、次のコードを使用して既存のコンテンツを編集します。

    • <AzureServiceConnectionName> を、以前作成したサービス接続の名前に置き換えます。

    • Inline script で、次の各プレースホルダーを Azure 環境に適した値に置き換えます。

      プレースホルダー Value
      <dev-center-name> デベロッパー センターの名前。
      <project-name> プロジェクトの名前。
      <catalog-name> カタログの名前。
      <environment-definition-name> 変更しないでください。 使用する環境定義を定義します。
      <environment-type> 環境の種類。
      <environment-name> 新しい環境の名前を指定します。
      <parameters> 変更しないでください。 環境のパラメーターを定義する json ファイルの参照。
  4. コミット を選択して、変更を保存します。

  5. [変更のコミット] ウィンドウで、コミット メッセージを入力し、[コミット] を選択します。

パイプラインを使用した環境の作成

次に、パイプラインを実行して ADE 環境を作成します。

  1. Azure DevOps プロジェクトで、[パイプライン] を選択します。
  2. 以前作成したパイプラインを選択し、[パイプラインの実行] を選択します。
  3. パイプラインの実行の進行状況を確認する場合は、パイプライン名を選択し、[実行] を選択します。 当該の実行を選択すると、パイプラインの実行の詳細が表示されます。
  4. また、Azure portal で環境の作成の進行状況を確認するには、デベロッパー センターを選択し、プロジェクトを選択して、[環境] を選択します。

このジョブは、継続的インテグレーション (CI) パイプラインまたは継続的デリバリー (CD) パイプラインの任意の場所に挿入できます。 パイプラインの作成と管理の詳細については、 「Azure Pipelines のドキュメント」を参照してください。

リソースをクリーンアップする

このチュートリアルで作成したリソースを使い終わったら、それらを削除して料金が発生しないようにできます。

このチュートリアルで作成した環境を削除するには、次のコマンドを使用します。

az devcenter dev environment delete --dev-center <DevCenterName> --project-name <DevCenterProjectName> --name <DeploymentEnvironmentInstanceToCreateName> --yes