Share via


環境定義を構成して追加する

この記事では、Azure Deployment Environments カタログに環境定義を追加、更新、または削除する方法について説明します。 コンテナー イメージを参照して環境をデプロイする方法についても説明します。

Azure Deployment Environments では、カタログを使用して、環境定義と呼ばれる事前定義されたコードとしてのインフラストラクチャ (IaC) テンプレートのキュレーションされたセットを開発チームに提供できます。

環境定義は、少なくとも 2 つのファイルで構成されます。

  • IaC フレームワークからのテンプレート。 例:
    • Azure Resource Manager (ARM) テンプレートでは、azuredeploy.json という名前のファイルが使われる場合があります。
    • Bicep テンプレートでは、main.bicep という名前のファイルが使われる場合があります。
    • Terraform テンプレートでは、azuredeploy.tf という名前のファイルが使われる場合があります。
  • テンプレートに関するメタデータを提供する構成ファイル。 このファイルは、environment.yaml という名前にする必要があります。

開発チームは、環境定義に指定されたカタログ項目を使用して、Azure に環境をデプロイします。

Microsoft は、リポジトリとして使用できるサンプル カタログを提供しています。 独自のプライベート リポジトリを使うことも、サンプル カタログ内の環境定義をフォークしてカスタマイズすることもできます。

デベロッパー センターにカタログを追加すると、サービスは指定されたフォルダー パスをスキャンして、テンプレートおよび関連する環境ファイルが含まれるフォルダーを特定します。 指定するフォルダー パスは、環境定義ファイルがあるサブフォルダーを含むフォルダーにする必要があります。

環境定義を追加する

Azure Deployment Environments (ADE) のカタログに環境定義を追加するには、最初にファイルをリポジトリに追加します。 次に、デベロッパー センター カタログを更新されたリポジトリと同期します。

環境定義を追加するには

  1. GitHub または Azure DevOps リポジトリで、リポジトリ フォルダー パスにサブフォルダーを作成します。

  2. 新しいリポジトリ サブフォルダーに 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 環境定義のバージョン。 このフィールドは省略可能です。
      まとめ 環境定義の簡単な説明。
      description 環境定義の詳細な説明。
      runner テンプレートが使用する IaC フレームワーク。 値は ARM または Bicep です。 コンテナー レジストリに格納されているテンプレートへのパスを指定することもできます。
      templatePath IaC テンプレート ファイルへのパス。

      environment.yaml で使用できるオプションとデータ型について詳しくは、「environment.yaml のパラメーターとデータ型」をご覧ください。

  3. デベロッパー センターで、[カタログ] に移動し、リポジトリを選んでから、[同期] を選びます。

    カタログを同期する方法を示すスクリーンショット。

サービスにより、リポジトリがスキャンされ、新しい環境定義が検索されます。 リポジトリを同期した後、新しい環境定義がデベロッパー センター内のすべてのプロジェクトで使用できるようになります。

コンテナー イメージを使用して環境をデプロイする

ADE では、コンテナー イメージを使用して、デプロイ環境のテンプレートのデプロイ方法を定義します。 ADE では ARM と Bicep がネイティブにサポートされるため、テンプレート ファイル (azuredeploy.json と environment.yaml) をカタログに追加することで、デプロイ環境用の Azure リソースをデプロイする環境定義を構成できます。 その後、ADE は標準の ARM または Bicep コンテナー イメージを使用してデプロイ環境を作成します。

より高度な環境デプロイ用のカスタム コンテナー イメージを作成できます。 たとえば、デプロイの前または後にスクリプトを実行できます。 ADE では、環境デプロイ用のカスタム コンテナー イメージがサポートされています。これは、Pulumi や Terraform などの IaC フレームワークのデプロイに役立ちます。

ADE チームから、作業を始めるのに役立つ ARM と Bicep のサンプル コンテナー イメージが提供されており、Microsoft アーティファクト レジストリ (Microsoft Container Registry とも呼ばれます) からアクセスできます。

カスタム コンテナー イメージの作成については、以下を参照してください。

ARM または Bicep のサンプル コンテナー イメージを指定する

environment.yaml ファイルの runner プロパティでは、使用するイメージの場所を指定します。 Microsoft アーティファクト レジストリで公開されているサンプル イメージを使うには、次の表に一覧表示されているそれぞれの識別子の runner を使います。

IaC フレームワーク Runner の値
ARM ARM
Bicep Bicep
Terraform サンプル イメージなし。 代わりにカスタム コンテナー イメージを使用します。

次の例は、サンプルの 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}”`

次の例に示すように、使用するリポジトリとカスタム イメージを参照するようにランナー値を編集します。

    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_REPOSITORY そのレジストリの使用するリポジトリ。
YOUR_TAG バージョン番号などのタグ。

環境定義のパラメーターを指定する

環境定義のパラメーターを指定して、開発者が環境をカスタマイズできるようにすることができます。

パラメーターは、environment.yaml ファイルで定義されます。

次のスクリプトは、2 つのパラメーター locationname を含む 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 で使用できるパラメーターとそのデータ型について詳しくは、「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 Deployment Environments で既存の環境定義内の Azure リソースの構成を変更するには、リポジトリ内の関連するテンプレート ファイルを更新します。 変更は、特定の環境定義を使用して新しい環境を作成すると、すぐに反映されます。 この更新は、その環境定義に関連付けられている環境の再デプロイ時にも適用されます。

テンプレートに関連するメタデータを更新するには、environment.yaml を変更してから、カタログを更新します

環境定義を削除する

既存の環境定義を削除するには、リポジトリで、テンプレート ファイルおよび関連する環境 YAML ファイルが含まれるサブフォルダーを削除します。 次に、カタログを更新します

環境定義が削除されると、開発チームは特定の環境定義を使用して新しい環境をデプロイできなくなります。 削除した環境定義を使用する既存の環境の環境定義参照を更新します。 参照が更新されておらず、環境が再デプロイされた場合、デプロイは失敗します。