Python Web Azure Developer CLI (azd
) テンプレートは、Python Web アプリケーションを Azure に構築、構成、デプロイするための最も高速で簡単な方法です。 この記事では、関連するコンポーネントとテンプレートによるデプロイの簡略化方法を理解するのに役立つコンテキストの背景情報を提供します。
始める最善の方法は、 クイックスタートに従って 初めての Python Web アプリを作成し、 azd
テンプレートを使用して数分で Azure にデプロイすることです。 ローカル開発環境を設定しない場合は、 GitHub Codespaces を使用して、 すべてのツールが事前に構成された完全なクラウドベースのエクスペリエンスを実現することで、クイックスタートに従うことができます。
Python Web azd テンプレートとは
azd
テンプレートは、最小限のセットアップ時間でスケーラブルなクラウド対応アプリケーションを Azure にデプロイする経験豊富な Python Web 開発者向けに設計されています。
これらのテンプレートは、次の方法で Python Web アプリケーションを構築およびデプロイするための最も簡単な開始点を提供します。
- 完全なローカル開発およびホスティング環境をすばやく設定します。
- 一致する Azure デプロイ環境の作成を自動化する。
- シンプルで覚えやすい CLI ワークフローを使用する。
環境を設定すると、テンプレートを使用して Python Web アプリの構築を最も簡単に開始できます。 次のようにすることができます。
- アプリの要件に合わせて、指定されたコード ファイルを変更します。
- azd コマンドを使用して、最小限の労力で更新プログラムをデプロイします。
- アーキテクチャに合わせてテンプレートを拡張します。
これらのテンプレートには、実証済みの設計パターンとベスト プラクティスが反映されており、次のことが可能になります。
- 強固なアーキテクチャ基盤で自信を持って構築します。
- Python と Azure の豊富な経験を持つ業界の専門家によって開発されたガイダンスに従ってください。
- 最初から保守性、スケーラビリティ、およびセキュリティを確保します。
テンプレートで実行できるタスクは何ですか?
Python Web azd
テンプレートを実行すると、いくつかのタスクをすばやく完了できます。
スターター アプリケーションを作成します。 あなたは、Relecloud という架空の会社の Web サイトを構築します。 このスターター プロジェクトには、次のものが含まれます。
- 適切に整理された運用対応コード
- Python Web フレームワーク (Flask、Django など) のベスト プラクティス。
- 依存関係、構成、および構造の適切な使用。
テンプレートは開始点として設計されています。ロジックを自由にカスタマイズし、プロジェクトに合わせて Azure リソースを展開または削除できます。
Azure リソースをプロビジョニングします。 最新のコードとしてのインフラストラクチャ (IaC) 言語である Bicep を使用して、テンプレートは次の目的で必要なすべての Azure リソースをプロビジョニングします。
- Web アプリのホスト (App Service、Container Apps など)
- データベースへの接続 (PostgreSQL、Cosmos DB など)
Bicep ファイルは完全に編集可能です。アプリの進化に合わせて Azure サービスを追加またはカスタマイズできます。 前のタスクと同様に、 Bicep テンプレートを変更 して、必要に応じてさらに Azure サービスを追加できます。
プロビジョニングされた Azure リソースにスターター アプリをデプロイします。 リソースがプロビジョニングされると、アプリケーションは Azure 環境に自動的にデプロイされます。 次のことができるようになりました。
- クラウドで実行されているアプリを数分で確認します。
- その動作をテストします。
- 次に更新する機能または構成を決定します。
(省略可能) GitHub リポジトリと CI/CD パイプラインを設定します。 必要に応じて、GitHub Actions 継続的インテグレーション/継続的デリバリー (CI/CD) パイプライン を使用して GitHub リポジトリを初期化して、次のことができます。
- コードの変更に対するデプロイを自動化します。
- チーム メンバーと共同作業を行います。
- メイン ブランチにマージして Azure に更新をプッシュします。
この統合は、最初から DevOps のベスト プラクティスを採用するのに役立ちます。
テンプレートにアクセスできる場所
多くの azd
テンプレートは、 Awesome Azure Developer CLI テンプレート ギャラリーで入手できます。 これらのテンプレートは、Azure サービスと Python Web フレームワークの一般的な組み合わせ全体で機能パリティを備えた、すぐに使用できる Python Web アプリ プロジェクトを提供します。
各テンプレートには次のものが含まれます。
- クリーンで保守可能なコードを含むサンプル アプリケーション。
- Bicep を使用して事前構成されたコードとしてのインフラストラクチャ。
- Azure Developer CLI を使用したシームレスなデプロイ ワークフロー。
- GitHub Actions を使用したオプションの CI/CD 統合
次の表に、azd init
コマンドで使用できる Python Web azd
テンプレート モニカーを示します。 表は、各テンプレートに実装されているテクノロジを識別し、対応する GitHub リポジトリへのリンクを提供します。ここで、変更を投稿できます。
Django Web フレームワークでは、次のazd
テンプレートを使用できます。
テンプレート | データベース | ホスティング プラットフォーム | GitHub リポジトリ |
---|---|---|---|
Azure-Django-Postgres フレキシブル ACA | Azure Database for PostgreSQL フレキシブル サーバー | Azure Container Apps | https://github.com/Azure-Samples/azure-django-postgres-flexible-aca |
azure-django-postgres-flexible-appservice (アジュール・ジャンゴ・ポストグレス・フレキシブル・アプリサービス) | Azure Database for PostgreSQL フレキシブル サーバー | Azure App Service | https://github.com/Azure-Samples/azure-django-postgres-flexible-appservice |
azure-django-cosmos-postgres-aca | Azure Cosmos DB for Azure Database for PostgreSQL | Azure コンテナー アプリ | https://github.com/Azure-Samples/azure-django-cosmos-postgres-aca |
azure-django-cosmos-postgres-appservice | Azure Cosmos DB for Azure Database for PostgreSQL | Azure App Service | https://github.com/Azure-Samples/azure-django-cosmos-postgres-appservice |
azure-django-postgres-addon-aca | Azure Container Apps における Azure Database for PostgreSQL の利用 | Azure コンテナー アプリ | https://github.com/Azure-Samples/azure-django-postgres-addon-aca |
テンプレートを使用する方法
各 azd
テンプレートは、アプリケーション コード (一般的な Web フレームワークを利用する Python コード) と、コードとしてのインフラストラクチャ ( つまり Bicep) ファイルを含む GitHub リポジトリで構成され、Azure リソースを作成します。 このテンプレートには、CI/CD パイプラインを使用して GitHub リポジトリを設定するために必要な構成も含まれています。
各テンプレートの主要なコンポーネントは次のとおりです。
アプリケーション コード: Python で記述され、一般的な Web フレームワーク (Flask、Django、FastAPI など) を使用して構築されます。 サンプル アプリは、ルーティング、データ アクセス、および構成のベスト プラクティスを示しています。
コードとしてのインフラストラクチャ (IaC):次のような必要な Azure リソースを定義およびプロビジョニングするために、Bicep ファイルを介して提供されます。
- App Service または Container Apps
- Azure データベース (PostgreSQL、Cosmos DB など)
- Azure AI サービス、ストレージなど
CI/CD 構成 (省略可能):GitHub Actions CI/CD パイプラインを使用して GitHub リポジトリを設定するためのファイルが含まれています。次の機能が有効になります。
- メイン ブランチへのプッシュ要求またはプル要求ごとに、Azure への自動デプロイ。
- DevOps ワークフローへのシームレスな統合
これらのテンプレートは完全にカスタマイズ可能であり、プロジェクトの特定のニーズに基づいて構築し、適応するための強力な基盤を提供します。
azd
Web テンプレートで定義されているタスクを実行するには、さまざまな Python azd
コマンドを使用します。 これらのコマンドの詳細な説明については、「 クイック スタート: Azure Developer CLI テンプレートをデプロイする」を参照してください。 このクイックスタートでは、特定の azd
テンプレートを使用する手順について説明します。 運用ホスティング環境とローカル開発環境に対して実行する必要があるのは、5 つの重要なコマンド ライン命令だけです。
次の表は、5 つの重要なコマンドをまとめたものです。
コマンド | タスクの説明 |
---|---|
azd init --template <template name> |
テンプレートから新しいプロジェクトを作成し、ローカル コンピューターにアプリケーション コードのコピーを作成します。 このコマンドを実行すると、デプロイされたリソースの名前付けのプレフィックスとして使用される環境名 ("myapp" など) を指定するように求められます。 |
azd auth login |
Azure にサインインします。 このコマンドにより、Azure にサインインできるブラウザー ウィンドウが開きます。 サインインすると、ブラウザー ウィンドウが閉じ、コマンドが完了します。 azd auth login コマンドは、セッションごとに Azure Developer CLI (azd ) を初めて使用する場合にのみ必要です。 |
azd up |
クラウド リソースをプロビジョニングし、それらのリソースにアプリをデプロイします。 |
azd deploy |
azd up コマンドによって既にプロビジョニングされているリソースに、アプリケーション ソース コードへの変更をデプロイします。 |
azd down |
Azure リソースと CI/CD パイプラインが使用されていた場合は削除します。 |
ヒント
azd
コマンドを使用する場合は、プロンプトを監視して詳細情報を入力します。 azd up
コマンドを実行した後、複数のサブスクリプションがある場合は、サブスクリプションの選択を求められる場合があります。 リージョンの指定を求めることもできます。 テンプレートの /.azure/ フォルダーに格納されている環境変数を編集することで、プロンプトに対する回答を変更できます。
azd
テンプレートによって提供される重要なタスクを完了すると、必要に応じて任意のファイルを変更できる元のテンプレートの個人用コピーが作成されます。
- アプリケーション コード: Python プロジェクト コードをカスタマイズして、独自の設計、ルート、ビジネス ロジックを実装します。
- コードとしてのインフラストラクチャ (Bicep): Bicep ファイルを更新して、追加の Azure サービスのプロビジョニング、構成の変更、不要なリソースの削除を行います。
この柔軟な出発点により、アプリを実際のユース ケースに合わせて調整しながら、適切に構造化された基盤の上に構築することができます。
Azure リソースを変更する必要がある場合は、 コードとしてのインフラストラクチャの構成 を変更することもできます。 詳細については、この記事で後述する「 編集または削除できる 内容」セクションを参照してください。
省略可能なテンプレート タスク
5 つの重要なコマンドに加えて、 azd
テンプレートを使用して完了できる省略可能なタスクがあります。
Azure リソースの再プロビジョニングと変更
azd
テンプレートを使用して Azure リソースをプロビジョニングしたら、リソースを変更して再プロビジョニングできます。
- プロビジョニングされたリソースを変更するには、テンプレート 内の適切な Bicep ファイルを編集 します。
- 再プロビジョニング タスクを開始するには、
azd provision
コマンドを使用します。
CI/CD パイプラインを設定する
Azure Developer CLI (azd
) を使用すると、新しい Python Web アプリの CI/CD パイプラインを簡単に設定できます。 コミットまたはプル要求をメイン ブランチにマージすると、パイプラインによって変更が自動的にビルドされ、Azure リソースに発行されます。
- CI/CD パイプラインを設定するには、GitHub リポジトリと必要な設定を指定してパイプラインを有効にします。
- パイプラインを作成するには、
azd pipeline config
コマンドを使用します。
パイプラインを構成すると、コードの変更がリポジトリの メイン ブランチにマージされるたびに、パイプラインによって、プロビジョニングされた Azure サービスに変更がデプロイされます。
テンプレートの代替手段
Python Web azd
テンプレートを使用しない場合は、Python Web アプリを Azure にデプロイし、Azure リソースをプロビジョニングするための別の方法があります。
複数のツールを使用して、多くのリソースを作成し、デプロイ手順を完了できます。
- Azure Portal
- Azure CLI
- Visual Studio Code と Azure Tools 拡張機能
Python Web 開発フレームワークを備えるエンド ツー エンドのチュートリアルに従うこともできます。
よく寄せられる質問
次のセクションでは、Python Web azd
テンプレートの操作に関してよく寄せられる質問に対する回答をまとめます。
Dev Containers を使用する必要がありますか?
いいえ。 Python Web azd
テンプレートでは、Visual Studio Code Dev Containers が 既定で使用されます。 Dev Containers には多くの利点がありますが、前提条件となる知識とソフトウェアが必要です。 Dev Containers を使用せず、代わりにローカル開発環境を使用する場合は、環境のセットアップ手順については、サンプル アプリのルート ディレクトリにある README.md ファイルを参照してください。
何を編集または削除できますか?
各 Python Web azd
テンプレートの内容は、使用されるプロジェクトの種類と基になるテクノロジ スタックによって異なる場合があります。 この記事で示すテンプレートは、次の表に示すように、一般的なフォルダーとファイルの規則に従います。
フォルダー/ファイル | 目的 | 説明 |
---|---|---|
/ | ルート ディレクトリ | 各テンプレートのルート フォルダーには、さまざまな目的でさまざまな種類のファイルとフォルダーが含まれています。 |
/.azure | azd 構成ファイル |
.azure フォルダーは、azd init コマンドを実行した後に作成されます。 フォルダーには、 azd コマンドで使用される環境変数の構成ファイルが格納されます。 環境変数の値を変更して、アプリと Azure リソースをカスタマイズできます。 詳細については、「 環境固有の .env ファイル」を参照してください。 |
/.devcontainer | Dev Container 構成ファイル | Dev Containers を使用すると、Visual Studio Code 内のソフトウェア開発に必要なすべてのリソースを含むコンテナーベースの開発環境を作成できます。 .devcontainer フォルダーは、Visual Studio Code がテンプレート コマンドに応答して Dev Container 構成ファイルを生成した後に作成されます。 |
/.github | GitHub Actions 構成ファイル | このフォルダーには、オプションの GitHub Actions CI/CD パイプライン、linting、およびテストの構成設定が含まれています。 azd pipeline config コマンドを使用して GitHub Actions パイプラインを設定しない場合は、azure-dev.yaml ファイルを変更または削除できます。 |
/赤外線 | Bicep ファイル | infra フォルダーには、Bicep 構成ファイルが格納されます。 Bicep を使用すると、環境にデプロイする Azure リソースを宣言できます。 main.bicep ファイルと web.bicep ファイルのみを変更する必要があります。 詳細については、「 クイック スタート: Bicep を使用して azd Python Web テンプレートを使用してデプロイされたサービスのスケーリング」を参照してください。 |
/src | スターター プロジェクト コード ファイル | src フォルダーには、スターター プロジェクトを準備するために必要なさまざまなコード ファイルが含まれています。 ファイルの例には、Web フレームワークで必要なテンプレート、静的ファイル、コード ロジックとデータ モデル用の Python (.py) ファイル、 requirements.txt ファイルなどがあります。 特定のファイルは、Web フレームワーク、データ アクセス フレームワークなどによって異なります。 これらのファイルは、プロジェクトの要件に合わせて変更できます。 |
/.cruft.json | テンプレート生成ファイル | .cruft JSON ファイルは、Python Web azd テンプレートを生成するために内部的に使用されます。 必要に応じて、このファイルを安全に削除できます。 |
/.gitattributes | git の属性設定を含むファイル | このファイルは、ファイルとフォルダーを処理するための重要な構成設定を git に提供します。 必要に応じて、このファイルを変更できます。 |
/.gitignore | git の無視された項目を含むファイル | .gitignore ファイルは、テンプレートの GitHub リポジトリに書き込むときに除外 (無視) するファイルとフォルダーについて git に通知します。 必要に応じて、このファイルを変更できます。 |
/azure.yaml | azd up 構成ファイル |
この構成ファイルには、 azd up コマンドの構成設定が含まれています。 展開するサービスとプロジェクト フォルダーを指定します。 重要: このファイルは削除しないでください。 |
/*.md | Markdown 形式のファイル | テンプレートには、さまざまな目的でさまざまな Markdown (.md) 形式ファイルを含めることができます。 Markdown ファイルは安全に削除できます。 |
/docker-compose.yml | Docker compose の設定 | この YML ファイルは、アプリが Azure にデプロイされる前に、Python Web アプリケーションのコンテナー パッケージを作成します。 |
/pyproject.toml | Python ビルド設定ファイル | TOML ファイルには、Python プロジェクトのビルド システム要件が含まれています。 特定のリンターやユニットテストフレームワークなどのツールの優先設定を識別するために、このファイルを変更できます。 |
/requirements-dev.in | pip 要件ファイル | このファイルは、 pip install -r コマンドを使用して、開発環境バージョンの要件を作成するために使用されます。 必要に応じて、このファイルを変更して他のパッケージを含めることができます。 |
ヒント
プログラムのテンプレート ファイルを変更するときは、必ず適切なバージョン管理を実践してください。 この方法は、新しい変更によってプログラムの問題が発生した場合に、リポジトリを以前の動作バージョンに復元するのに役立ちます。
テンプレート エラーを処理するにはどうすればよいですか?
azd
テンプレートの使用時にエラーが発生した場合は、Azure Developer CLI のトラブルシューティングに関する記事で説明されているオプションを確認してください。 azd
テンプレートに関連付けられている GitHub リポジトリで問題を報告することもできます。