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 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 pour créer des 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.

Profils de version de Python et d’API

Le Kit de développement logiciel (SDK) Python prend en charge les profils d’API suivants :

  • dernier
    Ce profil cible les versions d’API les plus récentes pour tous les fournisseurs de services de la plateforme Azure.

  • 2020_09_01_hybrid
    Ce profil cible les dernières versions d’API pour 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 pour 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, consultez Gérer les profils de version d’API dans Azure Stack Hub.

Installer le Kit de développement logiciel (SDK) Azure Python

  1. Installez Git.
  2. Installez le Kit de développement logiciel (SDK) Python.

Profils

Pour les profils contenant des dates, pour utiliser un autre profil ou version du SDK, remplacez la date dans v<date>_hybrid. Par exemple, pour la version 2008, le profil est 2019_03_01et la chaîne devient v2019_03_01_hybrid. Notez que parfois l’équipe du Kit de développement logiciel (SDK) modifie le nom des packages. Par conséquent, il se peut que le remplacement de la date d’une chaîne par une date différente ne fonctionne pas. Consultez le tableau suivant pour l’association de profils et de versions d’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 les profils Azure Stack Hub et API, consultez le résumé des profils d’API.

Consultez les profils du Kit de développement logiciel (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 création d’un abonnement, consultez ce document.

Service Principal

Un principal de service et ses informations d’environnement associées doivent être créées et enregistrées quelque part. Le principal de service avec owner un rôle est recommandé, mais en fonction de l’exemple, un contributor rôle 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 n’importe quel format pris en charge par le langage sdk, par exemple à partir d’un fichier JSON (que nos exemples utilisent). Selon l’exemple en cours d’exécution, toutes ces valeurs ne peuvent pas être utilisées. Consultez l’exemple de référentiel pour obtenir des informations supplémentaires ou des exemples de code mis à jour.

ID du locataire

Pour rechercher l’ID d’annuaire ou de locataire de votre Azure Stack Hub, suivez les instructions de cet article.

Inscrire des fournisseurs de ressources

Inscrivez les fournisseurs de ressources requis en suivant ce document. Ces fournisseurs de ressources sont requis en fonction des exemples que vous souhaitez exécuter. Par exemple, si vous souhaitez exécuter un exemple de machine virtuelle, l’inscription du Microsoft.Compute fournisseur de ressources 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 surveiller des ressources Azure. Azure Resource Manager peut gérer ces tâches en tant que groupe, plutôt que individuellement, dans une seule opération. Vous pouvez obtenir les informations de métadonnées à partir du point de terminaison Resource Manager. Le point de terminaison retourne un fichier JSON avec les informations requises pour exécuter votre code.

  • ResourceManagerEndpointUrl dans le Kit de développement Azure Stack (ASDK) est : https://management.local.azurestack.external/.
  • 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 connaître les versions d’API disponibles, consultez les spécifications de l’API rest Azure. Par exemple, dans la 2020-09-01 version du profil, vous pouvez modifier la api-version valeur du 2019-10-01 fournisseur de microsoft.resourcesressources.

Exemple 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 racine de l’autorité de certification Azure Stack Hub

Si vous utilisez le SDK ASDK, vous devez approuver explicitement le certificat racine de l’autorité de certification sur votre ordinateur distant. Vous n’avez pas besoin d’approuver le certificat racine de l’autorité de certification avec les systèmes intégrés Azure Stack Hub.

Fenêtres

  1. Recherchez l’emplacement du magasin de certificats Python sur votre ordinateur. L’emplacement peut varier en fonction de l’emplacement où vous avez installé Python. Ouvrez une invite de commandes ou une invite PowerShell avec élévation de 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 d’accès particulier dépend de votre système d’exploitation et de la version de Python que vous avez installée.

  2. Faites confiance au certificat racine de l’autorité de certification Azure Stack Hub en l’ajoutant 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 pour le développement avec le Kit de développement logiciel (SDK) Python, vous devez ajouter le certificat précédent à votre magasin de certificats d’environnement virtuel. Le chemin d’accès peut ressembler à : ..\mytestenv\Lib\site-packages\certifi\cacert.pem.

Échantillons

Consultez cet exemple de référentiel pour obtenir l’exemple de code update-to-date (track 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 exemple qui décrit comment exécuter cet exemple.

Consultez cet exemple applicable à la version 2008 ou au profil 2019-03-01 Azure Stack et ci-dessous.

Étapes suivantes