次の方法で共有


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

例えば、既存のテンプレートを使用した一般的な azd ワークフローは、次のステップを含みます。

  1. azd init コマンドに --template パラメーターを指定して実行し、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 テンプレートは、 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 AppsAzure 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 が提供するテンプレートは、いかなる種類の保証もなく現状のまま提供されます。

次のステップ