Python 用 Azure ライブラリ (SDK) を使用する
オープンソースである Python 用 Azure ライブラリによって、Python アプリケーション コードからの Azure リソースのプロビジョニング、管理、使用が容易になります。
重要情報
Azure ライブラリは、ローカルまたはクラウドで実行する Python コード "から" の Azure サービスとの通信手段です (特定のサービスのスコープ内で Python コードを実行できるかどうかは、そのサービス自体で Python がサポートされるかどうかによります)。
このライブラリでは Python 3.6 以降がサポートされており、PyPy 5.4 以降でもテストされています。
Azure SDK for Python は、特定の Azure サービスに関連した 180 を超える個別の Python ライブラリのみで構成されています。 "SDK" には他のツールはありません。
コードをローカルで実行する場合、Azure による認証は、「Azure SDK for Python を使用して Azure サービスに対して Python アプリを認証する方法」で説明されている環境変数に依存します。
pip を使用してライブラリパッケージをインストールするには、パッケージ インデックスのライブラリ名を使用して
pip install <library_name>
を使用します。 Conda 環境にライブラリ パッケージをインストールするには、anaconda.org の Microsoft チャネルの名前を使用してconda install <package_name>
を使用します。詳細については、Azure ライブラリのインストールに関するページを参照してください。管理とクライアントという別個のライブラリが存在します ("管理プレーン" および "データ プレーン" のライブラリと呼ばれることもあります)。 各セットはさまざまな目的を果たし、さまざまな種類のコードで使用されます。 詳細については、この記事の後の方にある次のセクションを参照してください。
ライブラリのドキュメントは、Azure for Python のリファレンス (Azure サービスごとに編成) または Python API ブラウザー (パッケージ名ごとに編成) でご覧いただけます。
自分でライブラリを試すには、まず、ローカルの開発環境を設定することをお勧めします。 その後、次のいずれかのスタンドアロンの例を (任意の順序) で試すことができます。例:リソース グループをプロビジョニングする、例: Azure Storage をプロビジョニングして使用する、例: Web アプリをプロビジョニングしてコードをデプロイする、例: MySQL データベースをプロビジョニングして使用する、および例: 仮想マシンをプロビジョニングする。
デモ ビデオについては、「Azure SDK for Python の概要」(PyCon 2021) および「Azure SDK を使用した Azure リソースとの対話」(PyCon 2020) を参照してください。
必須ではないが興味深い詳細情報
Azure CLI は管理ライブラリを使用して Python で書かれているため、Azure CLI のコマンドでできることはすべて、Python スクリプトからも実行できます。 とはいえ、CLI コマンドには、複数のタスクを同時に実行する、非同期操作を自動的に処理する、接続文字列のように出力の書式を設定するといった、便利な機能が数多く用意されています。 結論として、目的のプロセスに対するより厳格な制御が要求される場合を除けば、プロビジョニング スクリプトや管理スクリプトの自動化には、CLI (または同等の Azure PowerShell) を使用した方が、同等の Python コードを記述するよりもはるかに簡単です。
Python 用 Azure ライブラリは、基になる Azure REST API の上に構築されているため、使い慣れた Python のパラダイムからそれらの API を使用することができます。 ただし、REST API は、必要に応じていつでも Python コードから直接使用できます。
Azure ライブラリのソース コードは、https://github.com/Azure/azure-sdk-for-python にあります。 オープンソース プロジェクトとして、皆さんの参加を歓迎します。
ライブラリは、IronPython や Jython などのインタープリターと共に使用できますが、それらに対するテストは行われていません。個別の問題や非互換性が発生する場合があります。
ライブラリ API リファレンス ドキュメントのソース リポジトリは、https://github.com/MicrosoftDocs/azure-docs-sdk-python/ にあります。
現在、認証プロトコル、ログ記録、トレース、トランスポート プロトコル、バッファーされた応答、再試行などの一般的なクラウド パターンを共有するために、Python 用 Azure ライブラリを更新しています。
この共有機能は、azure-core ライブラリに含まれています。
Core ライブラリで現在動作しているライブラリは、Azure SDK for Python の最新リリース ページに記載されています。 これらのライブラリ (主にクライアント ライブラリ) は、"track 2" と呼ばれることがあります。
管理ライブラリと、まだ更新されていないその他のものは、"track 1" と呼ばれることがあります。
ライブラリに適用されているガイドラインについて詳しくは、「Python ガイドライン: 概要」を参照してください。
管理ライブラリを使用して Azure リソースをプロビジョニングし、管理する
SDK の "管理" ("管理プレーン") ライブラリは、いずれも名前が azure-mgmt-
で始まります。これは、Azure リソースの作成とプロビジョニング、その他管理を Python スクリプトから行うのに役立ちます。 すべての Azure サービスには、対応する管理ライブラリがあります。
管理ライブラリを使用すると、Azure portal または Azure CLI で行うのと同じタスクを実行する構成またはデプロイのスクリプトを作成することができます。 (既に述べたように、Azure CLI は Python で記述されており、その各種コマンドは管理ライブラリを使用して実装されています。)
次の例は、いくつかの主要な管理ライブラリを使用する方法を示しています。
- リソース グループをプロビジョニングする
- サブスクリプション内のリソース グループを一覧表示する
- Azure Storage をプロビジョニングする
- Web アプリをプロビジョニングしてコードをデプロイする
- データベースをプロビジョニングしてクエリを実行する
- 仮想マシンのプロビジョニング
各管理ライブラリでの操作の詳細については、SDK GitHub リポジトリ内のライブラリのプロジェクト フォルダーにある README.md または README.rst ファイルを参照してください。 また、その他のコード スニペットについては、リファレンス ドキュメントおよび Azure のサンプルで確認できます。
古い管理ライブラリからの移行
以前のバージョンの管理ライブラリからコードを移行する場合は、次の詳細を参照してください。
ServicePrincipalCredentials
クラスを使用する場合は、「トークン資格情報による認証」を参照してください。- 「ライブラリの使用パターン - 非同期操作」の説明に従って、非同期 API の名前が変更されました。 単純に言うと、新しいライブラリの非同期 API の名前は
begin_
から始まります。 ほとんどの場合、API 署名は変わりません。
クライアント ライブラリを使用して Azure リソースに接続し、そのリソースを使用する
SDK の "クライアント" ("データ プレーン") ライブラリを使用すると、既にプロビジョニングされたサービスとやり取りする Python アプリケーション コードを記述するのに役立ちます。 クライアント ライブラリは、クライアント API をサポートするサービスに対してのみ存在します。
例:Azure Storage の使用に関する記事に、クライアント ライブラリの使用の基本的な説明が提供されています。
これらのライブラリを使用した例は、さまざまな Azure サービスでも提供されています。 その他のリンクについては、次のインデックス ページを参照してください。
各クライアント ライブラリでの操作の詳細については、SDK の GitHub リポジトリ内のライブラリのプロジェクト フォルダーにある README.md または README.rst ファイルを参照してください。 また、その他のコード スニペットについては、リファレンス ドキュメントおよび Azure のサンプルで確認できます。
SDK チームによるサポートと連絡先
- Python 用 Azure ライブラリのドキュメントをご覧ください。
- ご質問は、Stack Overflow のコミュニティに投稿してください。
- GitHub でこの SDK に対して問題を開いてください。
- Twitter で @AzureSDK をメンションしてください。
- Azure SDK for Python に関する簡単なアンケートを完了する
次のステップ
任意の Python 用 Azure ライブラリを簡単に使用できるように、ローカル開発環境の 1 回限りの設定を行うことを強くお勧めします。