Azure Developer CLI のしくみ

完了

Azure Developer CLI (azd) は、開発者にとって使いやすいコマンドと基本的なアプリケーション テンプレートを中心に構築されています。 azd には、標準化されたプロジェクト テンプレートを使用して Azure でアプリケーションをオンボードおよび管理するのに役立つ一連のコマンドが用意されています。 これらのテンプレートには、アプリをプロビジョニングして Azure にデプロイするために必要なすべてのソース コードと構成資産が含まれています。 azd の使用を開始するには、既存の拡張可能なサンプル テンプレートのいずれかを使用するか、独自のテンプレートを作成することができます。

azd コマンドを調べる

Azure Developer CLI には、リソースのプロビジョニングやデプロイなど、一般的な開発ワークフロー段階に対応するわかりやすい一連のコマンドが含まれています。 また、azd up などの一部の azd コマンドは、一度に複数の段階を処理して、これらのタスクをさらに効率化します。

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

  1. --template パラメーターを指定して azd init コマンドを実行し、既存のテンプレートを複製して、ダイアログが表示されたら環境名を設定します。

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

    azd auth login
    
  3. azd up コマンドを実行して、テンプレート リソースをプロビジョニングし、Azure にデプロイします。

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

他の azd コマンドを使用すると、他のタスクを実行して、このワークフローを拡張することができます。 azd は、使いやすさを考慮して、パラメーターが少なく、最小限の数のコマンドを使用するように設計されています。 最も一般的な azd コマンドには、次のようなものがあります。

  • azd init - 新しいアプリケーションを初期化します。
  • azd up - 1 つのコマンドで、Azure リソースをプロビジョニングし、プロジェクトをデプロイします。
  • azd provision - アプリケーションの Azure リソースをプロビジョニングします。
  • azd deploy - アプリケーション コードを Azure にデプロイします。
  • azd pipeline - (ベータ) デプロイ パイプラインを管理および構成します。
  • azd auth - Azure で認証を行います。
  • azd config - azd 構成 (既定の Azure サブスクリプション、場所など) を管理します。
  • azd down - アプリケーションの Azure リソースを削除します。

azd テンプレートを調べる

Azure Developer CLI コマンドは、標準化されたプロジェクト テンプレートで動作するように設計されています。 各テンプレートは、特定のファイルおよびフォルダーの規則に準拠したコード リポジトリです。 テンプレートには、Azure リソースをプロビジョンにし、必要に応じてアプリケーションのソース コードをデプロイするために azd で必要とされる資産が含まれています。 一部のテンプレートにはアプリケーション ソース コードが含まれていない場合があります。これはユーザーが独自に追加することを前提としています。 azd up などのコマンドを実行すると、このツールはプロジェクト テンプレート資産を使用して、さまざまなワークフロー ステップ (リソースのプロビジョニングや Azure へのリソースのデプロイなど) を実行します。

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

  • 既存の azd テンプレートを拡張する - 一般的なローカル アプリケーション スタック、シナリオ、アーキテクチャをカバーする azd テンプレートの大規模なライブラリが既に存在します。 awesome-azd template library サイトで多くのテンプレートを参照することができます。 ローカル アプリケーション スタックまたは希望するアーキテクチャにマップされるテンプレートが見つかったら、それを開始点として使用できます。 次に、ソース コード ディレクトリを置き換え、ニーズに合わせて構成またはインフラストラクチャ ファイルを変更します。

  • 独自のアプリを azd テンプレートに変換する - 「プロジェクトを azd と互換性のあるものにする」ガイドに従って、既存のアプリを azd template に変換することもできます。 独自のテンプレートを作成する場合、最初は手間がかかることが少なくありませんが、最大限の制御が可能になり、将来のアプリ開発作業に再利用できるソリューションが生成されます。 独自のテンプレートを作成する主な手順は、次のとおりです。

    • azd init を使用してプロジェクト テンプレートを初期化する。

    • Bicep または Terraform を使用してコードとしてのインフラストラクチャ ファイルを作成する。

    • アプリ サービスと Azure リソースを結び付けるように azure.yaml ファイルを更新する。

    • azd up を使用してプロビジョニングし、デプロイする。

      A diagram showing the Azure Developer CLI template creation workflow.

どのアプローチを選択しても、結果として生成されるテンプレート構造は同じです。 すべての azd テンプレートには、次の資産が含まれます。

  • infra フォルダー - すべての Bicep または Terraform インフラストラクチャがazd テンプレートのコード ファイルとして含まれます。 コードとしてのインフラストラクチャを使用すると、宣言型定義ファイルで、デプロイされるたびに同じ環境を確実に生成するインフラストラクチャのリソースと構成を定義できます。 Terraform は複数のクラウド プラットフォームで動作しますが、Bicep は Azure に固有です。 これらのファイルは、アプリをホストするために必要な Azure リソースを作成するために、azd によって実行されます。 コードとしてのインフラストラクチャの詳細については、トレーニング モジュール「コードとしてのインフラストラクチャ (IaC) とは?」を参照してください。

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

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

  • src folder - アプリのデプロイ可能なすべてのソース コードが含まれています。 一部の azd テンプレートはインフラストラクチャ資産のみを提供し、独自のアプリケーション コードを追加できるように src ディレクトリを空のままにします。

    A screenshot showing the Azure Developer CLI template structure.

さらに、ほとんどの azd テンプレートには、必要に応じて次のフォルダーが 1 つ以上含まれます。

  • .devcontainer フォルダー - アプリケーションの Dev Container 環境を設定できます。 一般的な開発環境アプローチであり、azd に固有ではありません。
  • .github フォルダー - azd の既定の CI/CD プロバイダーである GitHub Actions の CI/CD ワークフロー ファイルを保持します。
  • .azdo フォルダー - CI/CD に Azure Pipelines を使用する場合は、このフォルダーにワークフロー構成ファイルを定義します。