Azure Deployment Environments で Azure Developer CLI を使用する

この記事では、Azure Developer CLI (azd) と、Azure Deployment Environments (ADE) と連携してアプリケーション インフラストラクチャをプロビジョニングし、新しいインフラストラクチャにアプリケーション コードをデプロイする方法について説明します。

azd は、ワークフローの主要なステージにマップする開発者向けのコマンドを提供するオープンソースのコマンド ライン ツールです。 azd をコンピューターにローカルにインストールすることも、他の環境で使用することもできます。

ADE を使用すると、デベロッパー センターに接続されているカタログ内の環境定義から環境を作成できます。 azd を追加することで、アプリケーション コードを新しいインフラストラクチャにデプロイできます。

azd が ADE と連携するしくみ

ユーザーは、azd と ADE を連携させて、作業する環境を作成できます。

ADE と azd を使用すると、クラウドにアップロードする固有のインフラストラクチャとコードを使用する個々の開発者は、ローカル フォルダーから環境を作成できます。 azd を使用して環境をプロビジョニングし、コードをシームレスにデプロイできます。

大規模に、ADE と azd を組み合わせて使用すると、開発者がアプリ インフラストラクチャとコードを作成する方法を提供できます。 チームは、同じ azd 互換性のある環境定義から複数の ADE 環境を作成し、一貫した方法でコードをクラウドにプロビジョニングできます。

azd テンプレートについて

Azure Developer CLI コマンドは、標準化されたテンプレートを使用するように設計されています。 各テンプレートは、特定のファイルおよびフォルダーの規則に準拠したコード リポジトリです。 テンプレートには、Azure Deployment Environment 環境をプロビジョニングするために必要な資産 azd が含まれています。 azd up などのコマンドを実行すると、ツールはテンプレート資産を使用して、リソースのプロビジョニングや Azure へのデプロイなど、さまざまなワークフロー ステップを実行します。

次の図は、一般的なテンプレート構造を示しています。

├── infra                                        [ Contains infrastructure as code files ]
├── .azdo                                        [ Configures an Azure Pipeline ]
├── .devcontainer                                [ For DevContainer ]
├── .github                                      [ Configures a GitHub workflow ]
├── .vscode                                      [ VS Code workspace configurations ]
├── .azure                                       [ Stores Azure configurations and environment variables ]
├── src                                          [ Contains all of the deployable app source code ]
└── azure.yaml                                   [ Describes the app and type of Azure resources]

すべての azd テンプレートには、次の資産が含まれます。

  • infra フォルダー - infra フォルダーは ADE を含む azd では使用されません。 すべての Bicep または Terraform インフラストラクチャを azd テンプレートのコード ファイルとして格納しています。 ADE は、azd テンプレートのコード ファイルとしてインフラストラクチャを提供します。 これらのファイルを azd テンプレートに含める必要はありません。

  • azure.yaml ファイル - プロジェクト内の 1 つ以上のサービスを定義し、デプロイのために Azure リソースにマップする構成ファイル。 たとえば、API サービスと Web フロントエンド サービスを定義し、それぞれにデプロイのためのさまざまな Azure リソースにマップする属性を指定できます。

  • .azure フォルダー - リソースやその他のサブスクリプション情報をデプロイする場所など、重要な Azure 構成と環境変数が含まれています。

  • src フォルダー - デプロイ可能なすべてのアプリのソース コードが含まれています。 一部の azd テンプレートはインフラストラクチャ資産のみを提供し、独自のアプリケーション コードを追加するために src ディレクトリを空のままにします。

さらに、ほとんどの azd テンプレートには、必要に応じて次のフォルダーが 1 つ以上含まれます。

  • .devcontainer フォルダー - アプリケーションの Dev Container 環境を設定できます。 これは一般的な開発環境アプローチであり、azd に固有ではありません。

  • .github フォルダー - azd の既定の CI/CD プロバイダーである GitHub Actions の CI/CD ワークフロー ファイルを保持します。

  • .azdo フォルダー - CI/CD に Azure Pipelines を使用する場合は、このフォルダーにワークフロー構成ファイルを定義します。

azd 互換性カタログ

Azure Deployment Environments カタログは、環境定義 (デプロイ環境用にプロビジョニングされるインフラストラクチャ リソースを定義する IaC テンプレート) で構成されます。 Azure Developer CLI では、デベロッパー センターにアタッチされているカタログ内の環境定義を使用して、新しい環境をプロビジョニングします。

Note

現在、Azure Developer CLI は、Azure Deployment Environments デベロッパー センター カタログに格納されている ARM テンプレートで動作します。

特定の Azure コンピューティング サービスを適切にサポートするためには、Azure Developer CLI は、IaC テンプレートでより多くの構成設定を必要とします。 たとえば、azd がホストを検索してアプリをデプロイする方法を認識できるように、App Service ホストに特定の情報をタグ付けする必要があります。

サポートされている Azure サービスの一覧については、「サポートされている Azure コンピューティング サービス (ホスト)」を参照してください。

ADE カタログを azd と互換性のあるものにする

開発チームが ADE で azd を使用できるようにするには、azd と互換性のある環境定義をカタログに作成する必要があります。 新しい azd と互換性のある環境定義を作成することも、Azure Deployment Environments デベロッパー センター カタログの既存の環境定義を使用することもできます。 既存の環境定義を使用する場合は、azd と互換性を持たせるためにいくつかの変更を加える必要があります。

変更内容:

  • 既存の azd テンプレートを変更する場合は、infra フォルダーを削除します。 ADE では、次のファイルを使用してインフラストラクチャを作成します:
    • ARM テンプレート (azuredeploy.json.)
    • パラメーターを定義する構成ファイル (environment.yaml または manifest.yaml)
  • azure.yaml 内のリソースに特定の情報をタグ付けして、azd がホストを見つけてアプリをデプロイする方法を認識できるようにします。
  • 環境変数、azd 環境構成、azd プロジェクト構成、ユーザー構成などのデベロッパー センター設定を構成します。

ADE 環境定義を azd と互換性のあるものにする方法の詳細については、「プロジェクトを Azure Developer CLI と互換性のあるものにする」を参照してください。

ADE で azd サポートを有効にする

ADE で azd サポートを有効にするには、platform.type を devcenter に設定する必要があります。 この構成により、azd はリモート環境の状態とプロビジョニングのために新しいデベロッパー センター コンポーネントを使用でき、テンプレート内の infra フォルダーは無視されることを意味します。 代わりに、azd は、リソース プロビジョニングのためにデベロッパー センター カタログで定義されているインフラストラクチャ テンプレートの 1 つを使用します。

azd サポートを有効にするには、次のコマンドを実行します:

 azd config set platform.type devcenter

azd コマンドを調べる

デベロッパー センター機能を有効にすると、一般的な azd コマンドの既定の動作が、これらのリモート環境で動作するように変更されます。 詳細については、「Azure Deployment Environments を使用して作業する」を参照してください。