Von Bedeutung
Python SDK がトラック 1 からトラック 2 に更新されました。 できるだけ早く track 2 SDK に移行することをお勧めします。 手順については、 この移行ガイドを参照してください。
Python SDK では、Azure Stack Hub やグローバル Azure など、さまざまなクラウド プラットフォームを対象とする API バージョン プロファイルがサポートされています。 API プロファイルを使用して、ハイブリッド クラウドのソリューションを作成します。
この記事の手順では、Microsoft Azure サブスクリプションが必要です。 お持ちでない場合は、 無料試用版アカウントを入手できます。
Python と API バージョンのプロファイル
Python SDK では、次の API プロファイルがサポートされています。
最新
このプロファイルは、Azure プラットフォーム内のすべてのサービス プロバイダーの最新の API バージョンを対象としています。2020_09_01_hybrid
このプロファイルは、バージョン 2102 以降の Azure Stack Hub プラットフォーム内のすべてのリソース プロバイダーの最新の API バージョンを対象としています。2019_03_01_hybrid
このプロファイルは、バージョン 1904 以降の Azure Stack Hub プラットフォーム内のすべてのリソース プロバイダーの最新の API バージョンを対象としています。API プロファイルと Azure Stack Hub の詳細については、「Azure Stack Hub での API バージョン プロファイルの管理」を参照してください。
Azure Python SDK をインストールする
プロフィール
日付を含むプロファイルの場合、別の SDK プロファイルまたはバージョンを使用するには、 v<date>_hybrid
の日付に置き換えます。 たとえば、2008 バージョンの場合、プロファイルは 2019_03_01
され、文字列は v2019_03_01_hybrid
になります。 SDK チームがパッケージの名前を変更する場合があるため、文字列の日付を別の日付に置き換えるだけでは機能しない場合があることに注意してください。 プロファイルと Azure Stack のバージョンの関連付けについては、次の表を参照してください。
Azure Stack のバージョン | プロフィール |
---|---|
2311 | 2020_09_01 |
2301 | 2020_09_01 |
2206 | 2020_09_01 |
2108 | 2020_09_01 |
2102 | 2020_09_01 |
2008 | 2019_03_01 |
Azure Stack Hub と API プロファイルの詳細については、 API プロファイルの概要を参照してください。
Python SDK プロファイルを参照してください。
サブスクリプション
まだサブスクリプションがない場合は、サブスクリプションを作成し、後で使用するサブスクリプション ID を保存します。 サブスクリプションを作成する方法については、このドキュメントを参照 してください。
サービス プリンシパル
サービス プリンシパルとその関連する環境情報を作成し、どこかに保存する必要があります。
owner
ロールを持つサービス プリンシパルをお勧めしますが、サンプルによっては、contributor
ロールで十分な場合があります。 必要な値については、 サンプル リポジトリ の README を参照してください。 これらの値は、JSON ファイル (サンプルで使用) など、SDK 言語でサポートされている任意の形式で読み取れます。 実行されているサンプルによっては、これらの値の一部が使用されるわけではありません。 更新されたサンプル コードまたは詳細情報については 、サンプル リポジトリ を参照してください。
テナント ID
Azure Stack Hub のディレクトリまたはテナント ID を見つけるには、 この記事の手順に従います。
リソース プロバイダーを登録する
このドキュメントに従って、必要なリソース プロバイダーを登録 します。 これらのリソース プロバイダーは、実行するサンプルに応じて必要になります。 たとえば、VM サンプルを実行する場合は、 Microsoft.Compute
リソース プロバイダーの登録が必要です。
Azure Stack Resource Manager エンドポイント
Azure Resource Manager (ARM) は、管理者が Azure リソースをデプロイ、管理、監視できるようにする管理フレームワークです。 Azure Resource Manager では、これらのタスクを 1 回の操作で個別に処理するのではなく、グループとして処理できます。 Resource Manager エンドポイントからメタデータ情報を取得できます。 エンドポイントは、コードの実行に必要な情報を含む JSON ファイルを返します。
- Azure Stack Development Kit (ASDK) の ResourceManagerEndpointUrl は、
https://management.local.azurestack.external/
です。 - 統合システムの ResourceManagerEndpointUrl は
https://management.region.<fqdn>/
で、<fqdn>
は完全修飾ドメイン名です。 - 必要なメタデータを取得するには:
<ResourceManagerUrl>/metadata/endpoints?api-version=1.0
。 使用可能な API バージョンについては、 Azure rest API の仕様を参照してください。 たとえば、2020-09-01
プロファイル バージョンでは、リソース プロバイダーのmicrosoft.resources
のapi-version
を2019-10-01
に変更できます。
サンプル JSON:
{
"galleryEndpoint": "https://portal.local.azurestack.external:30015/",
"graphEndpoint": "https://graph.windows.net/",
"portal Endpoint": "https://portal.local.azurestack.external/",
"authentication":
{
"loginEndpoint": "https://login.windows.net/",
"audiences": ["https://management.yourtenant.onmicrosoft.com/3cc5febd-e4b7-4a85-a2ed-1d730e2f5928"]
}
}
Azure Stack Hub CA ルート証明書を信頼する
ASDK を使用している場合は、リモート コンピューターで CA ルート証明書を明示的に信頼する必要があります。 Azure Stack Hub 統合システムで CA ルート証明書を信頼する必要はありません。
ウィンドウズ
コンピューター上の Python 証明書ストアの場所を見つけます。 場所は、Python をインストールした場所によって異なる場合があります。 コマンド プロンプトまたは管理者特権の PowerShell プロンプトを開き、次のコマンドを入力します。
python -c "import certifi; print(certifi.where())"
証明書ストアの場所をメモします。たとえば、 ~/lib/python3.5/site-packages/certifi/cacert.pem などです。 特定のパスは、オペレーティング システムと、インストールした Python のバージョンによって異なります。
既存の Python 証明書に追加して、Azure Stack Hub CA ルート証明書を信頼します。
$pemFile = "<Fully qualified path to the PEM certificate; for ex: C:\Users\user1\Downloads\root.pem>" $root = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 $root.Import($pemFile) Write-Host "Extracting required information from the cert file" $md5Hash = (Get-FileHash -Path $pemFile -Algorithm MD5).Hash.ToLower() $sha1Hash = (Get-FileHash -Path $pemFile -Algorithm SHA1).Hash.ToLower() $sha256Hash = (Get-FileHash -Path $pemFile -Algorithm SHA256).Hash.ToLower() $issuerEntry = [string]::Format("# Issuer: {0}", $root.Issuer) $subjectEntry = [string]::Format("# Subject: {0}", $root.Subject) $labelEntry = [string]::Format("# Label: {0}", $root.Subject.Split('=')[-1]) $serialEntry = [string]::Format("# Serial: {0}", $root.GetSerialNumberString().ToLower()) $md5Entry = [string]::Format("# MD5 Fingerprint: {0}", $md5Hash) $sha1Entry = [string]::Format("# SHA1 Fingerprint: {0}", $sha1Hash) $sha256Entry = [string]::Format("# SHA256 Fingerprint: {0}", $sha256Hash) $certText = (Get-Content -Path $pemFile -Raw).ToString().Replace("`r`n","`n") $rootCertEntry = "`n" + $issuerEntry + "`n" + $subjectEntry + "`n" + $labelEntry + "`n" + ` $serialEntry + "`n" + $md5Entry + "`n" + $sha1Entry + "`n" + $sha256Entry + "`n" + $certText Write-Host "Adding the certificate content to Python Cert store" Add-Content "${env:ProgramFiles(x86)}\Python35\Lib\site-packages\certifi\cacert.pem" $rootCertEntry Write-Host "Python Cert store was updated to allow the Azure Stack Hub CA root certificate"
注
Python SDK を使用した開発に virtualenv を使用している場合は、前の証明書を仮想環境の証明書ストアに追加する必要があります。 パスは次のようになります: ..\mytestenv\Lib\site-packages\certifi\cacert.pem
。
サンプル
最新の (トラック 2) サンプル コードについては、 このサンプル リポジトリ を参照してください。 トラック 1 サンプル コードについては、 このサンプル リポジトリ を参照してください。 ルート README.md
では一般的な要件について説明し、各サブディレクトリには、そのサンプルを実行する方法を説明する独自の README.md
を持つ特定のサンプルが含まれています。
Azure Stack バージョンの2008
またはプロファイルの2019-03-01
および以下に該当するサンプルについては、こちらを参照してください。