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
がホストを見つけてアプリをデプロイする方法を認識できるようにします。- Azure Deployment Environments のタグ付けリソースについて説明します。
- Azure Developer CLI の azure.yaml スキーマについて説明します。
- 環境変数、
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 を使用して作業する」を参照してください。