この記事では、Azure デプロイ環境カタログの環境定義を追加、更新、または削除する方法について説明します。 また、コンテナー イメージを参照して環境をデプロイする方法についても説明します。
Azure Deployment Environment では、 カタログ を使用して、環境定義と呼ばれる定義済みの インフラストラクチャ (IaC) テンプレートのキュレーションされたセットを開発チームに提供 します。
環境定義は、少なくとも 2 つのファイルで構成されます。
- IaC フレームワークからのテンプレート。 例えば:
- Azure Resource Manager (ARM) テンプレートでは 、azuredeploy.jsonと呼ばれるファイルを使用できます。
- Bicep ファイルでは 、main.bicep という名前のファイルを使用できます。
- Terraform テンプレートでは、 azuredeploy.tf という名前のファイルを使用できます。
- テンプレートに関するメタデータを提供する構成ファイル。 このファイルには environment.yaml という名前を付ける必要があります。
開発チームは、カタログで指定した環境定義を使用して、Azure に環境をデプロイします。
Microsoft では、リポジトリとして使用できる サンプル カタログ を提供しています。 独自のプライベート リポジトリを使用することも、サンプル カタログ内の環境定義をフォークしてカスタマイズすることもできます。
デベロッパー センターに カタログを追加 すると、サービスは指定されたフォルダー パスをスキャンして、テンプレートと関連する環境ファイルを含むフォルダーを識別します。 指定したフォルダー パスは、環境定義ファイルを保持するサブフォルダーを含むフォルダーである必要があります。
環境定義を追加する
Azure Deployment Environment (ADE) のカタログに環境定義を追加するには、最初にリポジトリにファイルを追加します。 次に、デベロッパー センター カタログを更新されたリポジトリと同期します。
環境定義を追加するには:
GitHub または Azure DevOps リポジトリで、リポジトリ フォルダー パスにサブフォルダーを作成します。
新しいリポジトリ サブフォルダーに 2 つのファイルを追加します。
IaC テンプレート ファイル。
YAML ファイルで定義された環境。
environment.yaml ファイルには、IaC テンプレートに関連するメタデータが含まれています。
次のスクリプトは、ARM テンプレートの environment.yaml ファイルの内容の例です。
name: WebApp version: 1.0.0 summary: Azure Web App Environment description: Deploys a web app in Azure without a datastore runner: ARM templatePath: azuredeploy.json
environment.yaml ファイル内のフィールドを理解するには、次の表を使用します。
フィールド 説明 名前 環境定義の名前。 バージョン 環境定義のバージョン。 このフィールドは省略可能です。 まとめ 環境定義の簡単な説明。 説明 環境定義の詳細な説明。 ランナー テンプレートが使用する IaC フレームワーク。 値は、 ARM
またはBicep
できます。 コンテナー レジストリに格納されているテンプレートへのパスを指定することもできます。templatePath IaC テンプレート ファイルへのパス。 environment.yaml で使用できるオプションとデータ型の詳細については、「environment.yaml のパラメーターとデータ型」を参照してください。
デベロッパー センターで 、[カタログ] に移動し、リポジトリを選択して、[ 同期] を選択します。
このサービスはリポジトリをスキャンして、新しい環境定義を検索します。 リポジトリを同期すると、デベロッパー センター内のすべてのプロジェクトで新しい環境定義を使用できるようになります。
コンテナー イメージを使用して環境をデプロイする
ADE では、コンテナー イメージを使用して、デプロイ環境のテンプレートのデプロイ方法を定義します。 ADE では ARM と Bicep がネイティブにサポートされるため、テンプレート ファイル (azuredeploy.json と environment.yaml) をカタログに追加することで、デプロイ環境用に Azure リソースをデプロイする環境定義を構成できます。 その後、ADE は標準の ARM または Bicep コンテナー イメージを使用してデプロイ環境を作成します。
より高度な環境デプロイ用のカスタム コンテナー イメージを作成できます。 たとえば、デプロイの前または後にスクリプトを実行できます。 ADE では、環境デプロイ用のカスタム コンテナー イメージがサポートされています。これは、Pulumi や Terraform などの IaC フレームワークのデプロイに役立ちます。
ADE チームは、Microsoft Artifact Registry (Microsoft Container Registry とも呼ばれます) を介してアクセスできるサンプル ARM および Bicep コンテナー イメージを提供し、作業を開始するのに役立ちます。
カスタム コンテナー イメージの構築の詳細については、次を参照してください。
- デプロイを実行するようにコンテナー イメージを構成する
- ARM と Bicep を使用してデプロイを実行するようにコンテナー イメージを構成する
- Terraform を使用してデプロイを実行するようにコンテナー イメージを構成する
ARM または Bicep サンプル コンテナー イメージを指定する
environment.yaml ファイルの runner プロパティは、使用するイメージの場所を指定します。 Microsoft アーティファクト レジストリで公開されているサンプル イメージを使うには、次の表に一覧表示されているそれぞれの識別子の runner を使います。
IaC フレームワーク | Runner の値 |
---|---|
腕 | 腕 |
上腕二頭筋 | 上腕二頭筋 |
テラフォーム | サンプル イメージはありません。 代わりにカスタム コンテナー イメージを使用してください。 |
次の例は、サンプルの Bicep コンテナー イメージを参照する runner を示しています。
name: WebApp
version: 1.0.0
summary: Azure Web App Environment
description: Deploys a web app in Azure without a datastore
runner: Bicep
templatePath: azuredeploy.json
カスタム コンテナー イメージを指定する
リポジトリに格納されているカスタム コンテナー イメージを使用するには、environment.yaml ファイルで次のランナー形式を使用します。
runner: "{YOUR_REGISTRY}.azurecr.io/{YOUR_REPOSITORY}:{YOUR_TAG}”`
次の例に示すように、リポジトリとカスタム イメージを参照するようにランナー値を編集します。
name: WebApp
version: 1.0.0
summary: Azure Web App Environment
description: Deploys a web app in Azure without a datastore
runner: "{YOUR_REGISTRY}.azurecr.io/{YOUR_REPOSITORY}:{YOUR_TAG}"
templatePath: azuredeploy.json
プロパティ | 説明 |
---|---|
YOUR_REGISTRY | カスタム イメージを格納するレジストリ。 |
あなたのリポジトリ | あなたのリポジトリがそのレジストリにあります。 |
YOUR_TAG | バージョン番号などのタグ。 |
環境定義のパラメーターを指定する
開発者が環境をカスタマイズできるように、環境定義のパラメーターを指定できます。
パラメーターは environment.yaml ファイルで定義されます。
次のスクリプトは、2 つのパラメーターを含む ARM テンプレートの environment.yaml ファイルの例です。 ___location
と name
:
name: WebApp
summary: Azure Web App Environment
description: Deploys a web app in Azure without a datastore
runner: ARM
templatePath: azuredeploy.json
parameters:
- id: "___location"
name: "___location"
description: "Location to deploy the environment resources"
default: "[resourceGroup().___location]"
type: "string"
required: false
- id: "name"
name: "name"
description: "Name of the Web App "
default: ""
type: "string"
required: false
environment.yaml で使用できるパラメーターとそのデータ型の詳細については、「environment.yaml のパラメーターとデータ型」を参照してください。
開発者は、 開発者ポータルを使用して、環境の特定のパラメーターの値を指定できます。
開発者は、CLI を使用して、環境の特定のパラメーターの値を指定することもできます。
az devcenter dev environment create --environment-definition-name
--catalog-name
--dev-center
--environment-name
--environment-type
--project
[--description]
[--no-wait]
[--parameters]
[--tags]
[--user]
[--user-id]
az devcenter dev environment create
コマンドの詳細については、Azure CLI devcenter 拡張機能を参照してください。
環境定義を更新する
Azure デプロイ環境の既存の環境定義内の Azure リソースの構成を変更するには、リポジトリ内の関連付けられているテンプレート ファイルを更新します。 この変更は、特定の環境定義を使用して新しい環境を作成するとすぐに反映されます。 更新プログラムは、その環境定義に関連付けられている環境を再デプロイするときにも適用されます。
テンプレートに関連するメタデータを更新するには、 environment.yaml を変更してから、 カタログを更新します。
環境定義を削除する
既存の環境定義を削除するには、リポジトリで、テンプレート ファイルと関連する環境 YAML ファイルを含むサブフォルダーを削除します。 カタログを更新します。
環境定義を削除すると、開発チームは特定の環境定義を使用して新しい環境をデプロイできなくなります。 削除された環境定義を使用する既存の環境の環境定義参照を更新します。 参照が更新されておらず、環境が再デプロイされた場合、デプロイは失敗します。