Azure Developer CLI (azd) には、アプリで使用するテンプレートを初期化するための次の 2 つの異なるワークフローが用意されています。
- 現在のディレクトリでコードを使用する: この方法では、アプリを分析し、サポートされているインフラストラクチャと構成リソースを自動生成します。
- テンプレートを選択する: この方法では、既存のテンプレートをアプリと統合したり、既存のテンプレートを新しいアプリの開始点として使用したりできます。
どちらの方法も、開発者 CLI テンプレートの作成Azure概要に関するドキュメントで確認できます。
この記事では、azdする方法を使用して、Azure Developer CLI () のサポートをアプリに追加する方法について説明します。 代替方法の詳細については、 既存のテンプレート ドキュメントを使用してアプリに azd サポートを追加 するを参照してください。 また、azd テンプレートの構築の詳細については、azdに関するページを参照してください。
現在のディレクトリでコードを使用する
独自のプロジェクトを使用して、先に進む手順に従うことができます。 ただし、サンプル アプリケーションを使用する場合は、次のスターター リポジトリをコンピューター上の空のディレクトリに複製します。
git clone https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstartプロジェクトのルート ディレクトリのターミナルを開きます。
azd initコマンドを実行してテンプレートを初期化します。azd initメッセージが表示されたら、 現在のディレクトリのコードを使用するオプションを選択します。
azdはプロジェクトを分析し、検出されたサービスと推奨される Azure ホスティング リソースの概要を提供します。[ 確認] を選択し、アプリの初期化を続行します。
azdは、プロジェクトのルート ディレクトリに次の資産を生成します。- 適切なサービス定義を含む
azure.yamlファイル。 - プロジェクトをプロビジョニングしてAzureに配置するためのコードとしてのインフラストラクチャ ファイルを含む
infraフォルダー。 -
.azureファイルに環境変数が設定された.envフォルダー。
この検出と生成プロセスの詳細については、この記事の後半で説明します。
- 適切なサービス定義を含む
生成されたファイルは、提供されたサンプル アプリに対して as-is 機能し、独自のアプリでも使用できます。 必要に応じて、生成されたファイルをニーズに合わせて変更できます。 たとえば、アプリが
infraによって識別されたリソースを超えてAzureリソースに依存している場合は、azdフォルダー内のコードとしてのインフラストラクチャ ファイルをさらに変更する必要がある場合があります。azd upコマンドを実行して、アプリをプロビジョニングし、Azureにデプロイします。azd upメッセージが表示されたら、目的のサブスクリプションと場所を選択して、プロビジョニングとデプロイのプロセスを開始します。
プロセスが完了したら、
azd出力のリンクをクリックして、ブラウザーでアプリを開きます。
初期化手順を調べる
現在のディレクトリ ワークフロー で [コードの使用 ] を選択すると、 azd init コマンドによってプロジェクトが分析され、検出された内容に基づいてコードが自動生成されます。 以下のセクションでは、このプロセスのしくみと、現在サポートされているテクノロジの詳細について説明します。
検出
azd init コマンドは、プロジェクト ディレクトリとサブディレクトリにあるサポートされている言語のプロジェクト ファイルを検出します。
azd また、パッケージの依存関係をスキャンして、アプリが使用する Web フレームワークまたはデータベースに関する情報を収集します。 必要に応じて、確認の概要プロンプトに示されているように、検出されたコンポーネントを手動で追加または編集できます。
現在の検出ロジックは次のとおりです。
- サポートされている言語:
- Python
- JavaScript/TypeScript
- .NET
- Java
- サポートされているデータベース:
- MongoDB
- PostgreSQL
- Pythonおよび JavaScript/TypeScript では、Web フレームワークとデータベースが自動的に検出されます。
- JavaScript/TypeScript プロジェクトがフロントエンド (またはクライアント側) の Web フレームワークを使用する場合は、フロントエンド サービスとして分類されます。 サービスで現在検出されていないフロントエンド Web フレームワークを使用している場合は、JQuery を選択して同等のフロントエンド サービスの分類と動作を提供できます。
Generation
検出されたコンポーネントを確認azd init、アプリケーションをAzureにデプロイするために必要なコードとしてのインフラストラクチャ ファイルが生成されます。
生成ロジックは次のとおりです。
- サポートされているホスト:
- Azure Container Apps。
- データベースの場合、データベース テクノロジとサービスの間でサポートされているマッピングが使用されます。
- MongoDB: Azure CosmosDB API for MongoDB
- PostgreSQL: Azure Database for PostgreSQL - フレキシブル サーバー
- Redis: Azure Container Apps Redis アドオン
- データベースを使用するサービスには、既定で事前構成されたデータベースへの接続を提供する環境変数があります。
- フロントエンド サービスとバックエンド サービスの両方が検出されると、バックエンド サービスの Azure ホスト上の CORS 構成が更新され、フロントエンド サービスの既定のホスティング ドメインが許可されます。 これは、コード構成ファイルとしてのインフラストラクチャで必要に応じて変更または削除できます。
開発コンテナーのサポートを追加する
また、テンプレートを開発コンテナーや Codespaces と互換性のあるものにすることもできます。 開発コンテナーを使用すると、コンテナーをフル機能の開発環境として使用できます。 アプリケーションの実行、コードベースの操作に必要なツール、ライブラリ、またはランタイムの分離、継続的インテグレーションとテストの支援に使用できます。 開発コンテナーは、プライベート クラウドまたはパブリック クラウドでローカルまたはリモートで実行できます。 (ソース: https://containers.dev/)
開発コンテナーのサポートを追加するには:
プロジェクトのルートに .devcontainer フォルダーを作成します。
目的の構成を使用して、
devcontainer.jsonフォルダー内に.devcontainerファイルを作成します。azdスターター テンプレートには、プロジェクトにコピーして必要に応じて変更できるサンプルdevcontainer.jsonファイルが用意されています。
開発コンテナーの操作の詳細については、Visual Studio Codeドキュメントを参照してください。
CI/CD パイプラインのサポートを追加する
次の手順を使用して、GitHubアクションまたはAzure DevOpsを使用して、テンプレートに CI/CD のサポートを追加することもできます。
GitHubアクション用の
.githubフォルダー、またはAzure DevOps用の.adoフォルダーをプロジェクトのルートに追加します。ワークフロー ファイルを新しいフォルダーに追加します。
azdスターター テンプレートには、各プラットフォームのサンプル GitHub Actions ワークフロー ファイルとサンプル Azure DevOps Pipelines ファイルが用意されています。 これらのファイルをプロジェクトにコピーし、必要に応じて変更できます。また、ワークフローを実行するために必要な環境変数を使用して、
main.parameters.jsonフォルダー内のinfraファイルを更新する必要がある場合もあります。