Azure に Python Web アプリをデプロイするためのローカル環境を構成する
この記事では、Python Web アプリを して Azure にデプロイするようにローカル環境を設定する手順について説明します。 Web アプリは純粋な Python であるか、
ローカルで開発された Python Web アプリは、
この記事に進む前に、「開発環境のセットアップ」 を確認して、Python と Azure 用の開発環境の設定に関するガイダンスを確認することをお勧めします。 以下では、Python Web アプリ開発に固有のセットアップと構成について説明します。
Python Web アプリ開発用にローカル環境をセットアップしたら、次の記事に取り組む準備が整います。
- クイック スタート: Azure App Serviceで Python (Django または Flask) Web アプリを作成します。
- チュートリアル: Azure で PostgreSQL を使用して Python (Django または Flask) Web アプリをデプロイする
- システム割り当てマネージド ID を使用して Flask Web アプリを作成して Azure にデプロイする
Visual Studio Code の使用
Visual Studio Code 統合開発環境 (IDE) は、Python Web アプリを開発し、Web アプリが使用する Azure リソースを操作する簡単な方法です。
ヒント
Python 拡張機能
VS Code では、VS Code 拡張機能を使用して Azure リソースを操作します。 拡張機能 ビューまたはキーの組み合わせ Ctrl + Shift + X から拡張機能をインストールできます。 Python Web アプリの場合、次の拡張機能の 1 つ以上を使用している可能性があります。
Azure App Service 拡張機能を使用すると、Visual Studio Code 内から Azure App Service と対話できます。 App Service は、Web サイトや Web API を含む Web アプリケーションのフル マネージド ホスティングを提供します。
Azure Static Web Apps 拡張機能を使用すると、VS Code から直接 Azure Static Web Apps を作成できます。 静的 Web Apps はサーバーレスであり、静的コンテンツ ホスティングに適しています。
コンテナーの使用を計画している場合は、次をインストールします。
コンテナーをローカルでビルドして操作するための Docker 拡張機能。 たとえば、Web Apps for Containersを使用して、Azure App Service でコンテナー化された Python Web アプリを実行できます。
Azure Container Apps 拡張機能
、Visual Studio Code から直接コンテナー化されたアプリを作成してデプロイします。
Azure Storage、Azure Databases、Azure Resources 拡張機能など、その他の拡張機能があります。 必要に応じて、これらの拡張機能やその他の拡張機能をいつでも追加できます。
Visual Studio Code の拡張機能には、一般的な IDE インターフェイスで期待どおりにアクセスできます。また、VS Code コマンド パレットを使用して豊富なキーワードサポートを使用できます。 コマンド パレットにアクセスするには、Ctrl + Shift + P キーの組み合わせを使用します。 コマンド パレットは、Azure リソースに対して実行できるすべての可能なアクションを表示するのに適した方法です。 次のスクリーンショットは、App Service のアクションの一部を示しています。
Visual Studio Code での開発コンテナーの操作
Python 開発者は、多くの場合、特定のプロジェクト用に分離された自己完結型の環境を作成するために、仮想環境に依存しています。 仮想環境を使用すると、開発者はプロジェクトごとに依存関係、パッケージ、Python のバージョンを個別に管理できるため、異なるパッケージ バージョンを必要とする可能性がある異なるプロジェクト間の競合を回避できます。
たとえば、開発者は、PostgreSQL データベース サーバー、サンプル データ、Redis サーバー、Nginx、フロントエンド コード、React などのクライアント ライブラリなど、プロジェクトで動作するために必要なすべてのものを含むように、1 つの Dev Container を構成できます。 さらに、コンテナーには、プロジェクト コード、Python ランタイム、および適切なバージョンを持つすべての Python プロジェクトの依存関係が含まれます。 最後に、コンテナーでインストールする Visual Studio Code 拡張機能を指定して、チーム全体が同じツールを使用できるようにすることができます。 そのため、新しい開発者がチームに参加すると、ツール、依存関係、データを含む環境全体をローカル コンピューターに複製する準備が整い、すぐに作業を開始できます。
「コンテナー内での開発」を参照してください。
Visual Studio 2022 の使用
Visual Studio 2022 は、Python アプリケーション開発と、Azure リソースにアクセスしてデプロイするための多くの組み込みツールと拡張機能をサポートする、完全な機能を備えた統合開発環境 (IDE) です。 Azure で Python Web アプリを構築するためのほとんどのドキュメントでは Visual Studio Code の使用に重点を置いていますが、Visual Studio 2022 は既にインストールされている場合に最適なオプションであり、.NET または C++ プロジェクトでの使用に慣れている場合に適しています。
一般に、Visual Studio の に関するページを参照してください。Python ドキュメント、Visual Studio 2022 での Python の使用に関連するすべてのドキュメントを対象にしています。
セットアップ手順については、「Visual Studio に Python のサポートをインストールする」を参照してください。これは、Python ワークロードを Visual Studio 2022 にインストールする手順について説明しています。
Web 開発に Python を使用する一般的なワークフローについては、「クイック スタート: Visual Studioを使用して初めての Python Web アプリを作成する」を参照してください。 この記事は、Python Web アプリケーションを最初から構築する方法を理解するのに役立ちます (ただし、Azure へのデプロイは含まれません)。
Visual Studio 2022 を使用して Azure リソースを管理し、Azure にデプロイする方法については、Visual Studioを使用した Azure 開発
に関するページを参照してください。 ここでのドキュメントの多くは特に .NET について説明していますが、Azure リソースを管理して Azure にデプロイするためのツールは、プログラミング言語に関係なく同じように動作します。 特定の Azure 管理タスクまたはデプロイ タスクに対して Visual Studio 2022 で使用できる組み込みツールがない場合は、
Azure CLI コマンドを常に使用できます。
他の IDE の操作
Azure を明示的にサポートしていない別の IDE で作業している場合は、Azure CLI を使用して Azure リソースを管理できます。 次のスクリーンショットでは、単純な Flask Web アプリが PyCharm IDE で開かれています。 Web アプリは、az webapp up
コマンドを使用して Azure App Service にデプロイできます。 スクリーンショットでは、CLI コマンドは PyCharm 埋め込みターミナル エミュレーター内で実行されます。 IDE に組み込みエミュレーターがない場合は、任意のターミナルと同じコマンドを使用できます。 Azure CLI は、お使いのコンピューターにインストールし、いずれの場合もアクセス可能である必要があります。
Azure CLI コマンド
Azure CLI コマンドを使用して Web アプリをローカルで操作する場合は、通常、次のコマンドを使用します。
コマンド | 説明 |
---|---|
az webapp | Web アプリを管理します。 Web アプリを作成するためのサブコマンド 作成 と、ローカル ワークスペースから作成してデプロイするための が含まれています |
az container app | Azure Container Apps を管理します。 |
az staticwebapp | Azure Static Web Apps を管理します。 |
az group | リソース グループとテンプレートのデプロイを管理します。 サブコマンド を使用して、リソース グループ内に を作成し、Azure リソースを配置します。 |
az appservice | App Service プランを管理します。 |
az config | マネージド Azure CLI の構成。 キーストロークを保存するために、他のコマンドが自動的に使用する既定の場所またはリソース グループを定義できます。 |
Web アプリと関連リソースを作成し、az webapp upを使用して 1 つのコマンドで Azure
この例の詳細については、「クイック スタート: Python (Django または Flask) Web アプリを Azure App Serviceにデプロイする」を参照してください。
Azure ワークフローの一部では、Azure Cloud Shellから Azure CLI を使用することもできます。 Azure Cloud Shell は、Azure リソースを管理するための対話型の認証されたブラウザーアクセス可能なシェルです。
Azure SDK キー パッケージ
Python Web アプリでは、Azure SDK for Pythonを使用して、プログラムを使用して Azure サービスを参照できます。 この SDK については、「Python用 Azure ライブラリ (SDK) を使用する
Web アプリ開発で一般的に使用されるパッケージの一部を次に示します。 pip
を使用して、仮想環境にパッケージを直接インストールできます。 または、requirements.txt ファイルに Python パッケージ インデックス (Pypi) の名前を入力します。
SDK ドキュメント | 取り付ける | Python パッケージのインデックス |
---|---|---|
Azure Identity | pip install azure-identity |
azure-identity |
Azure Storage Blob | pip install azure-storage-blob |
azure-storage-blob |
Azure Cosmos DB | pip install azure-cosmos |
azure-cosmos |
Azure Key Vault シークレット | pip install azure-keyvault-secrets |
azure-keyvault-secrets |
azure-identity パッケージを使用すると、Web アプリを Microsoft Entra ID で認証できます。 Web アプリ コードでの認証には、azure-identity
パッケージの DefaultAzureCredential を使用することをお勧めします。 Azure Storage にアクセスする方法の例を次に示します。 このパターンは、他の Azure リソースでも似ています。
from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient
azure_credential = DefaultAzureCredential()
blob_service_client = BlobServiceClient(
account_url=account_url,
credential=azure_credential)
DefaultAzureCredential
では、環境変数や Azure CLI サインインなど、アカウント情報の定義済みの場所が検索されます。
Python ベースの Web フレームワーク
Python Web アプリの開発では、多くの場合、Python ベースの Web フレームワークを使用します。 これらのフレームワークは、ページ テンプレート、セッション管理、データベース アクセス、HTTP 要求および応答オブジェクトへの簡単なアクセスなどの機能を提供します。 フレームワークを使用すると、共通の機能のためにホイールを再発明する必要がなくなります。
3つの一般的なPython Webフレームワークには、Django、Flask、またはFastAPIがあります。 これらの Web フレームワークと他の Web フレームワークは、Azure で使用できます。
これらのフレームワークをローカルですぐに開始する方法の例を次に示します。 これらのコマンドを実行すると、Azure にデプロイできる単純なアプリケーションとは言え、最終的にアプリケーションが作成されます。 仮想環境内で次のコマンドを実行します。
手順 1: pip でフレームワークをダウンロードします。
手順 2: ハローワールド アプリを作成する。
django-admin startproject コマンドを使用してサンプル プロジェクトを作成します。 プロジェクトには、アプリを実行するためのエントリ ポイントである manage.py ファイルが含まれています。
django-admin startproject hello_world
手順 3: ローカルでコードを実行します。
手順 4: hello world アプリを参照。
この時点で、requirements.txt ファイルを追加し、Web アプリを Azure にデプロイするか、Docker を使用してコンテナー化してからデプロイできます。
次の手順
- クイック スタート: Azure App Serviceで Python (Django または Flask) Web アプリを作成します。
- チュートリアル: Azure で PostgreSQL を使用して Python (Django または Flask) Web アプリをデプロイする
- システム割り当てマネージド ID を使用して Flask Web アプリを作成して Azure にデプロイする