Partager via


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

  1. Installer Git.
  2. Installez le Kit de développement logiciel (SDK) 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 profil 2020-09-01, vous pouvez modifier le api-version en 2019-10-01 pour le fournisseur de ressources microsoft.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

  1. 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.

  2. 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.

Étapes suivantes