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

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

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

ADE を使うと、デベロッパー センターにアタッチされているカタログ内の環境定義から、または 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 フォルダー: アプリケーションの開発コンテナー環境を設定できます。 この一般的な開発環境のアプローチは、 azdに固有ではありません。

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

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

azd 互換カタログ

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

Azure Developer CLI は、Azure Deployment Environments デベロッパー センター カタログに格納されている ARM テンプレートで動作します。 また、ADE 拡張性モデルを使用して、Bicepや Terraform などの他の IaC テンプレートもサポートしています。 ADE 機能拡張モデルを構成する方法については、「 デプロイを実行するようにコンテナー イメージを構成する」を参照してください。

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

サービスの一覧については、「Supported 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 Developer CLI と互換性のあるプロジェクトを作成する」を参照してください。

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

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

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

azd config set platform.type devcenter

azd コマンドを調べる

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