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
コマンドと連携するように設計されており、azd init
やazd up
などがあります。 テンプレートには、Azure リソースのプロビジョニングやアプリ コードのデプロイなどのタスクを実行するためにコマンドによって使用される構成ファイルとインフラストラクチャ アズ コード (IaC) ファイルが含まれています。
例えば、既存のテンプレートを使用した一般的な azd
ワークフローは、次のステップを含みます。
azd init
コマンドに--template
パラメーターを指定して実行し、GitHub から既存のテンプレートを複製します。azd init --template todo-nodejs-mongo
azd auth login
コマンドを実行して、Azure サブスクリプションに認証します。azd auth login
azd up
コマンドを実行して、テンプレート リソースを Azure にプロビジョニングし、デプロイします。azd up
コマンドは、テンプレート内の構成ファイルとインフラストラクチャ アズ コード (IaC) ファイルを活用して、Azure リソースをプロビジョニングし、それらのリソースにアプリケーションをデプロイします。azd up
Azure で環境が設定されたら、アプリケーション機能または Azure リソース テンプレートをローカルで変更し、
azd up
をもう一度実行して変更をプロビジョニングすることができます。
Azure Developer CLI テンプレートの構造を調べる
azd
テンプレートは、いくつかの追加アセットが含まれる標準コード リポジトリです。 すべての azd
テンプレートは、 azd
規則に基づいて同様のファイル構造を共有します。
-
infra
フォルダー - すべての Bicep または Terraform インフラストラクチャがazd
テンプレートのコード ファイルとして含まれます。 これらのファイルは、アプリをホストするために必要な Azure リソースを作成するために、azd
によって実行されます。 -
azure.yaml
ファイル - プロジェクト内のソース コード フォルダーを、デプロイ用のinfra
フォルダーに定義されている Azure リソースにマップする構成ファイル。 たとえば、API サービスと Web フロントエンド サービスを別々のフォルダーに定義し、デプロイのために異なる Azure リソースにマップすることができます。 - フォルダー - Azure の重要な構成や環境変数が含まれており、リソースのデプロイ先やその他のサブスクリプション情報に関する設定を提供します。
-
src
フォルダ - デプロイ可能なアプリのすべてのソースコードが含まれています。 一部のazd
テンプレートでは、src
フォルダーが除外され、インフラストラクチャ資産のみが提供されるため、独自のアプリケーションコードを追加できます。
たとえば、共通のazd
テンプレートは、次のフォルダー構造と一致する場合があります。
Azure Developer CLIテンプレート構造を示すスクリーンショット。
azd
テンプレートには、オプションで次のフォルダーも 1 つ以上含まれます。
-
.github
フォルダー - azd の既定の CI/CD プロバイダーである GitHub Actions の CI/CD ワークフロー ファイルを保持します。 -
.azdo
フォルダー - CI/CD に Azure Pipelines を使用する場合は、このフォルダー内にワークフロー構成ファイルを定義します。 -
.devcontainer
フォルダー - アプリケーションの Dev コンテナー環境をセットアップできます。
既存のテンプレートから始めるか、独自のテンプレートを作成する
azd
テンプレートを扱う方法には、主に次の 2 つのアプローチがあります。
- 既存のテンプレートから始めます。
- これは、
azd
の使用を開始したばかりの場合、または同様のアーキテクチャとフレームワークを持つ新しいアプリ用に構築するテンプレートを探している場合に適しています。
- これは、
- 既存のプロジェクトをテンプレートに変換します。
- これは、既存のアプリがあり、それを
azd
機能と互換性を持たせたい場合に適しています。
- これは、既存のアプリがあり、それを
次のセクションでは、これら 2 つのオプションについて詳しく説明します。
既存のテンプレートから始める
各種 azd
テンプレートは、awesome-azd テンプレート ギャラリーで入手できます。 これらのテンプレートは、さまざまな開発シナリオ、言語フレームワーク、Azure サービス向けのインフラストラクチャとアプリケーション コードを提供します。 ローカル アプリケーション スタックまたは希望するアーキテクチャに一致するテンプレートが見つかった場合は、テンプレート コードを拡張して独自のものに置き換えることができます。
たとえば、次の azd
テンプレートは、一般的なアプリ アーキテクチャとフレームワークの出発点を提供します。
テンプレート | アプリ ホスト | 技術スタック |
---|---|---|
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 データベースを使用した静的 React Web アプリ + Functions | Azure Static Web Apps、Azure Functions | Azure SQL Database、Bicep |
あなたのアプリ用に新しい azd
テンプレートを作成する。
既存のアプリをazd
テンプレートに変換して、プロビジョニングとデプロイの能力を活用してリポジトリを強化することもできます。 このアプローチにより、最大限の制御が可能になり、アプリの将来の開発作業に再利用可能なソリューションが生成されます。 独自のテンプレートを作成するための大まかな手順は次のとおりです。
-
azd init
を使用してプロジェクト テンプレートを初期化する。 - Bicep または Terraform のインフラストラクチャを フォルダーにコード化されたファイルとして保存します。
- アプリサービスとAzureリソースを結び付けるために
azure.yaml
ファイルを更新してください。 -
azd up
を使用してプロビジョニングおよびデプロイ。
独自のテンプレートを作成する方法については、次のリソースで詳しく説明しています。
azd
テンプレートを使用するためのガイドライン
Azure Developer CLI と組み合わせて使用する各テンプレートは、テンプレートに付随する契約に基づき、それぞれの所有者 (Microsoft である場合とそうでない場合があります) によってライセンスが付与されることに注意してください。 使用するテンプレートにどのライセンスが適用されるのかを判断するのは、お客様の責任です。
Microsoft は、Microsoft 製以外のテンプレートについて責任を負わず、セキュリティ、プライバシー、互換性、またはパフォーマンスの問題についてこれらのテンプレートをスクリーニングしません。 Azure Developer CLI で使用するテンプレート (Microsoft から提供されたものも含む) は、Microsoft サポート プログラムまたはサービスではサポートされていません。 Microsoft が提供するテンプレートは、いかなる種類の保証もなく現状のまま提供されます。