Azure Developer CLI テンプレートの概要
Azure Developer CLI (azd
) テンプレートは、サンプル アプリケーション コード、構成ファイル、 azd
インフラストラクチャ ファイルを含む標準コード リポジトリです。 azd
テンプレートを使用すると、Azure リソースのプロビジョニング、アプリケーションのデプロイ、CI/CD パイプラインの構成などを行うことができます。 独自のテンプレートを作成することも、Awesome AZD などのテンプレート リポジトリから既存のテンプレートの使用を開始することもできます。 この記事では、次の概念について説明します。
- テンプレートを使用してアプリ リソースをプロビジョニングおよびデプロイする方法
azd
azd
テンプレートの構造- 既存のテンプレートを使用するか作成するかを決定する方法
- 既存の
azd
スターター テンプレートを調べる
Azure Developer CLI テンプレートを使用する理由
開発者は、クラウド用に適切に設計および構成された環境アプリを構築するときに、多くの時間と困難なタスクに直面することがよくあります。 Teams では、リソースの作成、構成の適用、監視とログ記録の設定、CI/CD パイプラインの構築、その他のタスクなど、これらの環境のさまざまな懸念事項を考慮する必要があります。 azd
テンプレートは、ローカル開発から Azure に正常にデプロイされたアプリへの開発者の体験を支援するために、これらの責任を軽減し、合理化します。
たとえば、チケット管理と顧客通信プラットフォームを運営する会社で働いているとします。これには、次の Azure リソースが必要です。
- 2 つの App Service インスタンスと、フロントエンド Web アプリとバックエンド API をホストする App Service プラン
- セキュリティで保護されたアプリ シークレットを格納するための Key Vault インスタンス
- アプリ データを永続的に格納するための Cosmos DB データベース
- Application Insights ダッシュボードなどの Azure Monitor リソース
- スケーラブルなメッセージングを管理するための Service Bus
- 自動化された反復可能なプロセスを通じて変更内容を確実にデプロイできるようにするための CI/CD パイプライン。
最初からではなく、 azd
既存のアーキテクチャ テンプレートを利用して、ほとんどのリソースをプロビジョニングしてデプロイすることができます。 その後、開発チームは、アプリを構築し、テンプレート アーキテクチャをより小さく調整することに集中できます。
Azure Developer CLI テンプレートのしくみ
Azure Developer CLI テンプレートは、次のようなazd init
azd up
コマンドを使用azd
するように設計されています。 テンプレートには、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
共有します。 最低限必要な資産には、通常、次のものが含まれます。
infra
フォルダー - すべての Bicep または Terraform インフラストラクチャがazd
テンプレートのコード ファイルとして含まれます。 これらのファイルは、アプリをホストするために必要な Azure リソースを作成するために、azd
によって実行されます。azure.yaml
file - プロジェクト内の 1 つ以上のサービスを定義し、それらをデプロイ用のフォルダーに定義された Azure リソースにマップするinfra
構成ファイル。 たとえば、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 - アプリケーションの開発コンテナー環境を設定できます。
たとえば、一般的 azd
なテンプレートは、次のフォルダー構造と一致する場合があります。
既存のテンプレートから始めるか、自分で作成する
azd
テンプレートを操作するには、主に次の 2 つのアプローチがあります。
- 既存
azd
のテンプレートから始めます。- これは、使用を開始
azd
したばかりの場合、または同様のアーキテクチャとフレームワークを持つ新しいアプリ用に構築するテンプレートを探している場合に適しています。
- これは、使用を開始
- 既存のプロジェクトをテンプレートに変換します
azd
。- これは、既存のアプリを既に用意しているが、機能との
azd
互換性を持たせたい場合に適しています。
- これは、既存のアプリを既に用意しているが、機能との
以降のセクションでは、これら 2 つのオプションの詳細について説明します。
既存のテンプレートから始める
awesome-azd テンプレート ギャラリーでは、さまざまなazd
テンプレートを利用できます。 これらのテンプレートは、さまざまな開発シナリオ、言語フレームワーク、および Azure サービスのインフラストラクチャとアプリケーション コードを提供します。 ローカル アプリケーション スタックまたは目的のアーキテクチャに合ったテンプレートが見つかると、テンプレート コードを独自のコードに拡張して置き換えることができます。
たとえば、次 azd
のテンプレートは、一般的なアプリのアーキテクチャとフレームワークの開始点を提供します。
アプリの新しい 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 が提供するテンプレートは、いかなる種類の保証もなく現状のまま提供されます。
次のステップ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示