このチュートリアルでは、Azure Deployment Environment を Azure Pipelines CI/CD パイプラインに統合する方法について説明します。
継続的インテグレーションと継続的デリバリー (CI/CD) は、チームがソフトウェア変更のビルド、テスト、展開のプロセスを自動化するのに役立つソフトウェア開発アプローチです。 CI/CD を使用すると、ソフトウェアの変更をより頻繁にリリースし、自信を持ってリリースできます。
このチュートリアルを開始する前に、Azure デプロイ環境の主要な概念を確認して 、デプロイ環境のリソースと概念について理解してください。
このチュートリアルでは、以下の内容を学習します。
- Azure Repos リポジトリを作成して構成する
- 環境の種類を構成する
- サービス接続を構成する
- パイプラインを作成する
- 環境を作成する
[前提条件]
- アクティブなサブスクリプションを持つ Azure アカウント。
- Azure サブスクリプションの所有者アクセス許可。
- Azure DevOps サブスクリプション。
- 無料でアカウントを作成できます。
- Azure DevOps 組織とプロジェクト。
- Azure デプロイ環境の場合:
- デベロッパー センターとプロジェクト。
- デベロッパー センターにアタッチされているサンプル カタログ。
Azure Repos リポジトリを作成して構成する
- Azure DevOps 組織 (
https://dev.azure.com/<your-organization>) にサインインします。<your-organization>をプロジェクト識別子に置き換えます。 - プロジェクトを選択します。
- [Repos>Files] を選択します。
- [ リポジトリのインポート] で、[ インポート] を選択します。
- [ Git リポジトリのインポート] で、次を選択または入力します。
- リポジトリの種類: Git
- クローン URL: https://github.com/Azure/deployment-environments
環境の種類を構成する
環境の種類は、開発チームがデプロイできる環境の種類を定義します。 環境の種類ごとに異なる設定を適用できます。 環境の種類は、デベロッパー センター レベルとプロジェクト レベルで作成できます。
デベロッパー センター環境の種類を作成するには:
Azure portal にサインインします。
[デベロッパー センター] で、自分のデベロッパー センターを選択します。
左側のメニューの [ 環境の構成] で、[ 環境の種類] を選択し、[ 作成] を選択します。
次の手順を使用して、Sandbox、FunctionApp、WebApp の 3 種類の環境を作成します。
[ 環境の種類の作成] に次の情報を入力し、[ 追加] を選択します。
名前 価値 名前 環境の種類の名前 を追加します。 タグ タグ名とタグ値を入力します。 環境の種類が一覧に表示されることを確認します。
プロジェクト環境の種類を作成するには:
- 左側のメニューの [ 管理] で [ プロジェクト] を選択し、使用するプロジェクトを選択します。
- 左側のメニューの [ 環境の構成] で、[ 環境の種類] を選択し、[ 追加] を選択します。
- 次の手順を使用して、サンドボックス、FunctionApp、WebApp の 3 種類の環境を追加します。
[環境の種類を <project-name> に追加] で、次の情報を入力または選択します。
名前 価値 タイプ 特定のプロジェクトに対して有効にするデベロッパー センター レベルの環境の種類を選択します。 デプロイ サブスクリプション 環境が作成されるサブスクリプションを選択します。 デプロイ ID ユーザーに代わってデプロイを実行するには、システム割り当てマネージド ID またはユーザー割り当てマネージド ID のいずれかを選択します。 [環境リソースのアクセス許可]>[環境作成者ロール] 環境リソースへのアクセス権を付与するロールを選択します。 [環境リソースのアクセス許可]>[追加のアクセス] 環境リソースの特定のロールに割り当てるユーザーまたは Microsoft Entra グループを選択します。 タグ タグ名とタグ値を入力します。 これらのタグは、環境の一部として作成されるすべてのリソースに適用されます。 環境の種類が一覧に表示されることを確認します。
サービス接続を構成する
Azure Pipelines では、Azure DevOps プロジェクトに サービス接続 を作成して、Azure サブスクリプション内のリソースにアクセスします。
プロジェクトにユーザー指定のマネージド ID がない場合は、追加してください。
注
ID には、アプリの登録、ユーザー割り当てマネージド ID、システム割り当てマネージド ID の 3 つのオプションのいずれかを使用できます。 アプリの登録は最も安全なオプションです。 アプリの登録を使用するには、適切なアクセス許可が必要です。 詳細については、 Azure Resource Manager サービス接続の特殊なケースに関するページを参照してください。
Azure DevOps 組織 (
https://dev.azure.com/<your-organization>) にサインインします。<your-organization>をプロジェクト識別子に置き換えます。プロジェクトを選択します。
[ プロジェクト設定>サービス接続>サービス接続の作成を選択します。
[ 新しいサービス接続 ] ウィンドウで、[ Azure Resource Manager] を選択し、[ 次へ] を選択します。
次のサービス接続の詳細を入力し、[ 保存] を選択してサービス接続を作成します。
フィールド 価値 ID の種類 マネージド ID マネージド ID のサブスクリプション マネージド ID を含む Azure サブスクリプションを入力します。 マネージド ID のリソース グループ マネージド ID を含むリソース グループを入力します。 マネージド ID マネージド ID の名前を入力します。 サービス接続のスコープ レベル Subscription サービス接続のサブスクリプション デベロッパー センター リソースをホストする Azure サブスクリプションの ID を入力します。 サービス接続名 サービス接続の一意の名前を入力します。 すべてのパイプラインにアクセス許可を付与する このチェック ボックスをオンにします。 保存 を選択します。
配置環境プロジェクトへのサービス接続アクセス権を付与する
デプロイ環境では、ロールベースのアクセス制御を使用して、デプロイ環境リソースで特定のアクティビティを実行するためのアクセス許可を付与します。 CI/CD パイプラインから変更を行うには、デプロイ環境のユーザー ロールをマネージド ID に付与します。
- Azure portal で、デプロイ環境プロジェクトに移動します。
- アクセス制御 (IAM)>を選択し、追加>ロールの割り当てを追加します。
- [ ロール ] タブで、ジョブ機能ロールの一覧で [展開環境ユーザー ] を選択します。
- [ メンバー ] タブで、[ マネージド ID ] と [メンバーの選択] を 選択します。
- [ マネージド ID の選択 ] タブの [ マネージド ID] で、 プロジェクト ID を選択し、プロジェクト名を選択して、[選択] を 選択します。
- [ 確認と割り当て ] タブで、[ 確認と割り当て ] を選択してロールの割り当てを追加します。
Azure Pipelines ワークフロー定義でサービス接続を使用して、デプロイ環境環境にアクセスできるようになりました。
デプロイ環境プロジェクトへのアクセス権をアカウントに付与する
サービス接続を含む、他のユーザーによって作成された環境を表示するには、デプロイ環境プロジェクトへの読み取りアクセス権をアカウントに付与する必要があります。
- Azure portal で、デプロイ環境プロジェクトに移動します。
- アクセス制御 (IAM)>を選択し、追加>ロールの割り当てを追加します。
- [ ロール ] タブで、ジョブ関数ロールの一覧で [展開環境閲覧者 ] を選択します。
- [ メンバー ] タブで [ メンバーの選択] を選択し、自分のアカウントを検索します。
- 一覧から自分のアカウントを選択し、[ 選択] を選択します。
- [ 確認と割り当て ] タブで、[ 確認と割り当て ] を選択してロールの割り当てを追加します。
Azure Pipelines ワークフローによって作成された環境を表示できるようになりました。
パイプラインを構成する
Azure Repos リポジトリの azure-pipelines.yml ファイルを編集して、パイプラインをカスタマイズします。
パイプラインでは、環境を作成する手順を定義します。 このパイプラインでは、環境をジョブとして作成する手順を定義します。これは、1 つのユニットとして順番に実行される一連の手順です。
パイプラインをカスタマイズするには、次の手順を実行します。
- 使用するサービス接続を指定します。
- インライン スクリプトを使用して、環境を作成する Azure CLI コマンドを実行します。
Azure CLI は、Azure リソースを操作するための一連のコマンドを提供するコマンド ライン ツールです。 Azure CLI コマンドの詳細については、 az devcenter を参照してください。
Azure DevOps プロジェクトで、[ Repos>Files] を選択します。
[ ファイル ] ウィンドウの .ado フォルダーで、 azure-pipelines.yml ファイルを選択します。
azure-pipelines.yml ファイルで、既存のコンテンツを編集します。
<AzureServiceConnectionName>は、前に作成したサービス接続の名前に置き換えます。Inline script入力で、次の各プレースホルダーを、Azure 環境に適した値に置き換えます。Placeholder 価値 <DevCenterName>デベロッパー センターの名前。 <project-name>プロジェクトの名前。 <catalog-name>カタログの名前。 <environment-definition-name>変更しないでください。 使用される環境定義を定義します。 <environment-type>環境の種類。 <environment-name>新しい環境の名前を指定します。 <parameters>変更しないでください。 環境のパラメーターを定義する JSON ファイルを参照します。
[コミット] を選択して、変更を保存します。
[ 変更のコミット ] ウィンドウで、コミット メッセージを入力し、[ コミット] を選択します。
パイプラインを使用して環境を作成する
次に、パイプラインを実行してデプロイ環境環境を作成します。
- Azure DevOps プロジェクトで、[パイプライン] を選択 します。
- 前に作成したパイプラインを選択し、[パイプラインの 実行] を選択します。
- パイプライン名を選択し、[実行] を選択することで、パイプラインの実行の 進行状況を確認できます。 実行を選択すると、パイプラインの実行の詳細が表示されます。
- また、デベロッパー センターを選択し、プロジェクトを選択し、[環境] を選択して、Azure portal で環境の作成の 進行状況を確認することもできます。
このジョブは、CI パイプラインまたは CD パイプライン内の任意の場所に挿入できます。 パイプラインの作成と管理の詳細については、 Azure Pipelines のドキュメント を参照してください。
リソースをクリーンアップする
このチュートリアルで作成したリソースを使い終わったら、それらを削除して料金が発生しないようにすることができます。
このチュートリアルで作成した環境を削除するには、次のコマンドを使用します。
az devcenter dev environment delete --dev-center <DevCenterName> --project-name <DevCenterProjectName> --name <DeploymentEnvironmentInstanceToCreateName> --yes