この記事では、Azure デプロイ環境カタログの環境定義を追加、更新、または削除する方法について説明します。 また、コンテナー イメージを参照して環境をデプロイする方法についても説明します。
デプロイ環境では、 カタログ を使用して、環境定義と呼ばれる定義済みの インフラストラクチャ (IaC) テンプレートのキュレーションされたセットを開発チームに提供 します。
環境定義は、少なくとも 2 つのファイルで構成されます。
- IaC フレームワークからのテンプレート。 例えば:
- Azure Resource Manager (ARM) テンプレートでは 、azuredeploy.jsonと呼ばれるファイルを使用できます。
- Bicep ファイルでは 、main.bicep という名前のファイルを使用できます。
- Terraform テンプレートでは、 azuredeploy.tf という名前のファイルを使用できます。
- テンプレートに関するメタデータを提供する構成ファイル。 このファイルには environment.yaml という名前を付ける必要があります。
開発チームは、カタログで指定した環境定義を使用して、Azure に環境をデプロイします。
Microsoft には、リポジトリとして使用できる サンプル カタログ が用意されています。 独自のプライベート リポジトリを使用することも、サンプル カタログ内の環境定義をフォークしてカスタマイズすることもできます。
デベロッパー センターに カタログを追加 すると、サービスは指定されたフォルダー パスをスキャンして、テンプレートと関連する環境ファイルを含むフォルダーを識別します。 指定したフォルダー パスは、環境定義ファイルを保持するサブフォルダーを含むフォルダーである必要があります。
環境定義を追加する
環境定義をデプロイメント環境のカタログに追加するには、最初にファイルをリポジトリに追加します。 次に、デベロッパー センター カタログを更新されたリポジトリと同期します。
環境定義を追加するには:
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 ファイル内のフィールドについて説明します。
フィールド 説明 name環境定義の名前。 version環境定義のバージョン。 このフィールドは省略可能です。 summary環境定義の簡単な説明。 description環境定義の詳細な説明。 runnerテンプレートが使用する IaC フレームワーク。 値は ARMまたはBicepです。 コンテナー レジストリに格納されているテンプレートへのパスを指定することもできます。templatePathIaC テンプレート ファイルへのパス。 environment.yaml で使用できるオプションとデータ型の詳細については、「 environment.yaml のパラメーターとデータ型」を参照してください。
デベロッパー センターの [ 環境の構成] で、[ カタログ] を選択します。 リポジトリを選択し、[ 同期] を選択します。
このサービスはリポジトリをスキャンして、新しい環境定義を検索します。 リポジトリを同期すると、デベロッパー センター内のすべてのプロジェクトで新しい環境定義を使用できるようになります。
コンテナー イメージを使用して環境をデプロイする
デプロイ環境では、コンテナー イメージを使用して、デプロイ環境のテンプレートをデプロイする方法を定義します。 デプロイ環境では ARM と Bicep がネイティブにサポートされるため、テンプレート ファイル (azuredeploy.json と environment.yaml) をカタログに追加することで、デプロイ環境用に Azure リソースをデプロイする環境定義を構成できます。 デプロイ環境では、標準の ARM または Bicep コンテナー イメージを使用してデプロイ環境を作成します。
より高度な環境デプロイ用のカスタム コンテナー イメージを作成できます。 たとえば、デプロイの前または後にスクリプトを実行できます。 デプロイ環境では、環境デプロイ用のカスタム コンテナー イメージがサポートされています。これは、Pulumi や Terraform などの IaC フレームワークのデプロイに役立ちます。
開始するには、Microsoft Artifact Registry (Microsoft Container Registry とも呼ばれます) を使用して、サンプル ARM と Bicep コンテナー イメージを取得できます。
カスタム コンテナー イメージの構築の詳細については、「デプロイを 実行するようにコンテナー イメージを構成する」を参照してください。
ARM または Bicep サンプル コンテナー イメージを指定する
environment.yaml ファイルの runner プロパティは、使用するイメージの場所を指定します。 Microsoft Artifact Registry で公開されているサンプル イメージを使用するには、次の表に示す runner 値を使用します。
| IaC フレームワーク | runner 値 |
|---|---|
| ARM | ARM |
| Bicep | Bicep |
| テラフォーム | サンプル イメージはありません。 代わりにカスタム コンテナー イメージを使用してください。 |
次の例は、サンプルの 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 形式を使用します。
runner: "{YOUR_REGISTRY}.azurecr.io/{YOUR_REPOSITORY}:{YOUR_TAG}”`
次の例に示すように、 runner 値を編集してリポジトリとカスタム イメージを参照します。
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 ファイルで定義されます。
次のスクリプトは、 location と nameの 2 つのパラメーターを含む ARM テンプレートの environment.yaml ファイルの例です。
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 のパラメーターとデータ型」を参照してください。
開発者は、 開発者ポータルを使用して、環境の特定のパラメーターの値を指定できます。
開発者は、Azure 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 リソースの構成を変更するには、リポジトリ内の関連付けられているテンプレート ファイルを更新します。 この変更は、特定の環境定義を使用して新しい環境を作成するとすぐに反映されます。 更新プログラムは、その環境定義に関連付けられている環境を再デプロイするときにも適用されます。
テンプレートに関連するメタデータを更新するには、environment.yaml を変更してから、 カタログを更新します。
環境定義を削除する
環境定義を削除するには、リポジトリで、テンプレート ファイルと関連する environment.yaml ファイルを含むサブフォルダーを削除します。 次に、カタログを更新します。
環境定義を削除すると、開発チームはそれを使用して新しい環境をデプロイできなくなります。 削除された環境定義を使用する既存の環境の環境定義参照を更新します。 参照が更新されておらず、環境が再デプロイされた場合、デプロイは失敗します。
