Azure Developer CLI テンプレートの概要

Azure Developer CLI (azd) テンプレートは、サンプル アプリケーション コードと、azd 構成ファイルおよびインフラストラクチャ ファイルを含む標準コード リポジトリです。 azd テンプレートを使用すると、Azure リソースのプロビジョニング、アプリケーションのデプロイ、CI/CD パイプラインの構成などを行うことができます。 独自のテンプレートを作成するか、Awesome AZD などのテンプレート リポジトリから既存のテンプレートを使用できます。 この記事では、次の概念について学習します。

  • azd テンプレートを使用して、アプリ リソースをプロビジョニングおよびデプロイする方法
  • azd テンプレートの構造
  • 既存のテンプレートを使用するか新しく作成するかを決定する方法
  • 既存の azd スターター テンプレートを調べる

Azure Developer CLI テンプレートを使用する理由は何ですか?

開発者は、クラウド向けに適切に設計および構成された環境アプリを構築するときに、多くの時間がかかり困難なタスクに直面することがよくあります。 チームは、リソースの作成、構成の適用、監視とログの設定、CI/CD パイプラインの構築、その他のタスクなど、これらの環境におけるさまざまな懸念事項を考慮する必要があります。 azd テンプレートはこれらの責任を軽減および合理化し、ローカル開発から Azure へのアプリの正常なデプロイまでの開発者を支援します。

たとえば、チケット管理および顧客コミュニケーション プラットフォームを運用する会社で働いており、次の Azure リソースが必要であるとします。

  • フロントエンド Web アプリとバックエンド API をホストするための 2 つの App サービス インスタンスと 1 つの App Service プラン
  • セキュリティで保護されたアプリ シークレットを格納するための Key Vault インスタンス
  • アプリ データを永続的に格納するための Cosmos DB データベース
  • Application Insights ダッシュボードなどの Azure Monitor リソース
  • スケーラブルなメッセージングを管理するための Service Bus
  • 自動化された反復可能なプロセスを通じて変更内容を確実にデプロイできるようにするための CI/CD パイプライン。

ゼロから始めるのではなく、azd で既存のアーキテクチャ テンプレートを活用して、ほとんどのリソースをプロビジョニングおよびデプロイできます。 開発チームは、アプリの構築とテンプレート アーキテクチャへの細かい調整に集中できます。

Azure Developer CLI テンプレートの仕組み

Azure Developer CLIテンプレートは、azd initazd up などの azd コマンドと連携するように設計されています。 テンプレートには、Azure リソースのプロビジョニングやアプリ コードのデプロイなどのタスクを実行するためにコマンドによって使用される構成ファイルとインフラストラクチャ アズ コード (IaC) ファイルが含まれています。

たとえば、既存のテンプレートを使用する一般的な azd ワークフローには次の手順が含まれます。

  1. --template パラメーターを指定して azd init コマンドを実行し、GitHub から既存のテンプレートを複製します。

    azd init --template todo-nodejs-mongo
    
  2. azd auth login コマンドを実行して、Azure サブスクリプションに対して認証します。

    azd auth login
    
  3. azd up コマンドを実行して、テンプレート リソースをプロビジョニングし、Azure にデプロイします。 azd up コマンドは、テンプレート内の構成ファイルとインフラストラクチャ アズ コード (IaC) ファイルを活用して、Azure リソースをプロビジョニングし、それらのリソースにアプリケーションをデプロイします。

    azd up
    
  4. Azure で環境が設定されたら、アプリケーション機能または Azure リソース テンプレートをローカルで変更し、azd up をもう一度実行して変更をプロビジョニングすることができます。

Azure Developer CLI テンプレートの構造を理解する

すべての azd テンプレートは、azd 規則に基づいて類似のファイル構造を共有しています。 最低限必要な資産には、通常次のものが含まれます。

  • infra フォルダー - すべての Bicep または Terraform インフラストラクチャがazd テンプレートのコード ファイルとして含まれます。 これらのファイルは、アプリをホストするために必要な Azure リソースを作成するために、azd によって実行されます。

  • azure.yaml file - プロジェクト内の1つ以上のサービスを定義し、それらをデプロイのために infra フォルダーで定義されている Azure リソースにマップする構成ファイル。 たとえば、API サービスと Web フロントエンド サービスを定義し、それらをデプロイ用の異なる Azure リソースにマップすることができます。

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

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

    Note

    src フォルダーを除外するテンプレートは、通常、インフラストラクチャ スターター テンプレートとして設計されます。

azd テンプレートには、オプションで次のフォルダーも 1 つ以上含まれます。

  • .github folder - azd の既定の CI/CD プロバイダーである GitHub Actions の CI/CD ワークフロー ファイルを保持します。
  • .azdo フォルダー - CI/CD に Azure Pipelines を使用する場合は、このフォルダーにワークフロー構成ファイルを定義します。
  • .devcontainer folder - アプリケーションの Devコンテナ環境をセットアップできます。

たとえば、共通の azd テンプレートは、次のフォルダー構造と一致する場合があります。

Azure Developer CLI テンプレートの構造を示すスクリーンショット。

既存のテンプレートから始めるか、独自のテンプレートを作成する

azd テンプレートを操作するには、主に次の 2 つのアプローチがあります。

  • 既存の azd テンプレートから始めます。
    • これは、azd の使用を開始したばかりの場合、または同様のアーキテクチャとフレームワークを持つ新しいアプリ用に構築するテンプレートを探している場合に適しています。
  • 既存のプロジェクトを azd テンプレートに変換します。
    • これは、既存のアプリを既に用意しているが、azd 機能との互換性を持たせたい場合に適しています。

次のセクションでは、これら 2 つのオプションについて詳しく説明します。

既存のテンプレートから始める

各種 azd テンプレートは、awesome-azd テンプレート ギャラリーで入手できます。 これらのテンプレートは、さまざまな開発シナリオ、言語フレームワーク、Azure サービス向けのインフラストラクチャとアプリケーション コードを提供します。 ローカル アプリケーション スタックまたは希望するアーキテクチャに一致するテンプレートが見つかった場合は、テンプレート コードを拡張して独自のものに置き換えることができます。

たとえば、次の azd テンプレートは、一般的なアプリ アーキテクチャとフレームワークの開始点となります。

Template アプリ ホスト 技術スタック
Azure 上で C# API と MongoDB を使用した React Web アプリ Azure App Service Azure Cosmos DB for NoSQL、Bicep
Azure 上で C# API と SQL データベースを使用した React Web アプリ Azure App Service Azure SQL Database、Bicep
Azure 上で C# API と SQL データベースを使用した Static s Azure Static Web AppsAzure Functions Azure SQL Database、Bicep

アプリ用に新しい azd テンプレートを作成する

既存のアプリを azd テンプレートに変換して、プロビジョニングとデプロイの機能を使用してリポジトリを強化することもできます。 このアプローチにより、最大限の制御が可能になり、アプリの将来の開発作業に再利用可能なソリューションが生成されます。 独自のテンプレートを作成するための大まかな手順は次のとおりです。

  • azd init を使用してプロジェクト テンプレートを初期化する。
  • Bicep または Terraform インフラストラクチャを infra フォルダーにコード ファイルとして作成します。
  • アプリ サービスと Azure リソースを結び付けるように azure.yaml ファイルを更新する。
  • azd up を使用してプロビジョニングし、デプロイする。

独自のテンプレートを作成する方法については、次のリソースで詳しく説明しています。

azd テンプレートを使用するためのガイドライン

Azure Developer CLI と組み合わせて使用する各テンプレートは、テンプレートに付随する契約に基づき、それぞれの所有者 (Microsoft である場合とそうでない場合があります) によってライセンスが付与されることに注意してください。 使用するテンプレートにどのライセンスが適用されるのかを判断するのは、お客様の責任です。

Microsoft は、Microsoft 製以外のテンプレートについて責任を負わず、セキュリティ、プライバシー、互換性、またはパフォーマンスの問題についてこれらのテンプレートをスクリーニングしません。 Azure Developer CLI で使用するテンプレート (Microsoft から提供されたものも含む) は、Microsoft サポート プログラムまたはサービスではサポートされていません。 Microsoft が提供するテンプレートは、いかなる種類の保証もなく現状のまま提供されます。

次のステップ