Utiliser des profils de version d’API avec Python dans Azure Stack Hub
Important
Le Kit de développement logiciel (SDK) Python a été mis à jour de la piste 1 à la piste 2. Nous vous recommandons de migrer vers le Kit de développement logiciel (SDK) track 2 dès que possible. Pour obtenir des instructions, consultez ce guide de migration.
Le Kit de développement logiciel (SDK) Python prend en charge les profils de version d’API pour cibler différentes plateformes cloud telles qu’Azure Stack Hub et Azure global. Utilisez des profils d’API dans la création de solutions pour un cloud hybride.
Les instructions de cet article nécessitent un abonnement Microsoft Azure. Si vous n’en avez pas, vous pouvez obtenir un compte d’essai gratuit.
Python et les profils de version d’API
Le Kit de développement logiciel (SDK) Python prend en charge les profils d’API suivants :
le plus récent
Ce profil cible les dernières versions d’API de tous les fournisseurs de services de la plateforme Azure.2020_09_01_hybrid
Ce profil cible les dernières versions d’API de tous les fournisseurs de ressources de la plateforme Azure Stack Hub pour les versions 2102 ou ultérieures.2019_03_01_hybrid
Ce profil cible les dernières versions d’API de tous les fournisseurs de ressources de la plateforme Azure Stack Hub pour les versions 1904 ou ultérieures.Pour plus d’informations sur les profils d’API et Azure Stack Hub, voir Gérer les profils de version des API dans Azure Stack Hub.
Installer le kit SDK Azure Python
Profils
Pour les profils qui contiennent des dates, pour utiliser un autre profil ou une autre version du SDK, remplacez la date dans v<date>_hybrid
. Par exemple, pour la version 2008, le profil est 2019_03_01
et la chaîne devient v2019_03_01_hybrid
. Notez que, parfois, l’équipe du kit de développement modifie le nom des packages. Il est donc possible que le remplacement de la date d’une chaîne par une autre date ne fonctionne pas. Consultez le tableau suivant pour l’association des profils et des versions de Azure Stack.
Version d’Azure Stack | Profil |
---|---|
2311 | 2020_09_01 |
2301 | 2020_09_01 |
2206 | 2020_09_01 |
2108 | 2020_09_01 |
2102 | 2020_09_01 |
2008 | 2019_03_01 |
Pour plus d’informations sur Azure Stack Hub et les profils d’API, voir Résumé des profils d’API.
Consultez Profils du SDK Python.
Abonnement
Si vous n’avez pas encore d’abonnement, créez un abonnement et enregistrez l’ID d’abonnement à utiliser ultérieurement. Pour plus d’informations sur la manière de créer un abonnement, consultez ce document.
Principal du service
Le principal de service et ses informations d’environnement associées doivent être créés et enregistrés quelque part. Le principal de service avec rôle owner
est recommandé, mais en fonction de l’exemple, un rôle contributor
peut suffire. Reportez-vous au fichier README dans l’exemple de référentiel pour connaître les valeurs requises. Vous pouvez lire ces valeurs dans tout format pris en charge par le langage du SDK, par exemple à partir d’un fichier JSON (que nos exemples utilisent). Selon l’exemple en cours d’exécution, toutes ces valeurs peuvent ne pas être utilisées. Consultez l’exemple de référentiel pour obtenir des exemples de code à jour ou des informations supplémentaires.
ID client
Pour rechercher le répertoire ou l’ID de locataire de votre environnement Azure Stack Hub, suivez les instructions fournies dans cet article.
Inscrire des fournisseurs de ressources
Inscrivez les fournisseurs de ressources requis en suivant ce document. Ces fournisseurs de ressources seront nécessaires en fonction des exemples que vous souhaitez exécuter. Par exemple, si vous souhaitez exécuter un exemple de machine virtuelle, l’inscription du fournisseur de ressources Microsoft.Compute
est requise.
Point de terminaison Azure Stack Resource Manager
Azure Resource Manager (ARM) est un framework de gestion qui permet aux administrateurs de déployer, gérer et superviser les ressources Azure. Azure Resource Manager peut gérer ces tâches en groupe, plutôt qu’individuellement, dans une seule opération. Vous pouvez obtenir les informations de métadonnées du point de terminaison du Gestionnaire des ressources. Le point de terminaison retourne un fichier JSON avec les informations requises pour exécuter votre code.
- Le ResourceManagerEndpointUrl dans le kit de développement Azure Stack (ASDK) est :
https://management.local.azurestack.external/
. - Le ResourceManagerEndpointUrl dans les systèmes intégrés est :
https://management.region.<fqdn>/
, où<fqdn>
est votre nom de domaine complet. - Pour récupérer les métadonnées requises :
<ResourceManagerUrl>/metadata/endpoints?api-version=1.0
. Pour obtenir les versions d’API disponibles, consultez les spécifications de l’API REST Azure. Par exemple, dans la version de profil2020-09-01
, vous pouvez modifier leapi-version
en2019-10-01
pour le fournisseur de ressourcesmicrosoft.resources
.
Exemple de code 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"]
}
}
Approuver le certificat d’autorité de certification racine d’Azure Stack Hub
Si vous utilisez le kit ASDK, vous devez approuver explicitement le certificat racine de l’autorité de certification sur votre machine distante. Vous n’avez pas besoin d’approuver le certificat d’autorité de certification racine avec des systèmes intégrés Azure Stack Hub.
Windows
Trouvez l’emplacement du magasin de certificats Python sur votre machine. Cet emplacement peut varier en fonction de l’endroit où vous avez installé Python. Ouvrez une invite de commandes ou une invite PowerShell avec élévation des privilèges, puis tapez la commande suivante :
python -c "import certifi; print(certifi.where())"
Notez l’emplacement du magasin de certificats ; par exemple, ~/lib/python3.5/site-packages/certifi/cacert.pem. Votre chemin particulier dépend de votre système d’exploitation et de la version de Python que vous avez installée.
Pour approuver le certificat d’autorité de certification racine Azure Stack Hub, ajoutez-le au certificat Python existant :
$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"
Remarque
Si vous utilisez virtualenv dans le cadre du développement avec le SDK Python, vous devez ajouter le certificat précédent au magasin de certificats de votre environnement virtuel. Le chemin peut se présenter comme suit : ..\mytestenv\Lib\site-packages\certifi\cacert.pem
.
exemples
Consultez cet exemple de référentiel pour obtenir l’exemple de code de mise à jour à date (piste 2). Consultez cet exemple de référentiel pour suivre 1 exemple de code. La racine README.md
décrit les exigences générales, et chaque sous-répertoire contient un exemple spécifique avec son propre README.md
qui décrit comment exécuter cet exemple.
Découvrez ici l’exemple applicable à la version Azure Stack 2008
ou au profil 2019-03-01
et versions antérieures.