Delen via


API-versieprofielen gebruiken met Python in Azure Stack Hub

Belangrijk

De Python SDK is bijgewerkt van track 1 naar track 2. U wordt aangeraden zo snel mogelijk te migreren naar de track 2 SDK. Zie deze migratiehandleiding voor instructies.

De Python SDK ondersteunt API-versieprofielen voor verschillende cloudplatforms, zoals Azure Stack Hub en wereldwijde Azure. Api-profielen gebruiken bij het maken van oplossingen voor een hybride cloud.

Voor de instructies in dit artikel is een Microsoft Azure-abonnement vereist. Als u nog geen account hebt, kunt u een gratis proefaccount krijgen.

Python- en API-versieprofielen

De Python SDK ondersteunt de volgende API-profielen:

  • meest recente
    Dit profiel is gericht op de meest recente API-versies voor alle serviceproviders in het Azure-platform.

  • 2020_09_01_hybrid
    Dit profiel is gericht op de nieuwste API-versies voor alle resourceproviders in het Azure Stack Hub-platform voor versie 2102 of hoger.

  • 2019_03_01_hybrid
    Dit profiel is gericht op de nieuwste API-versies voor alle resourceproviders in het Azure Stack Hub-platform voor versies 1904 of hoger.

    Zie API-versieprofielen beheren in Azure Stack Hub voor meer informatie over API-profielen en Azure Stack Hub.

De Azure Python SDK installeren

  1. Installeer Git.
  2. Installeer de Python-SDK.

Profielen

Als u voor profielen met datums een ander SDK-profiel of een andere versie wilt gebruiken, vervangt u de datum in v<date>_hybrid. Voor versie 2008 is 2019_03_01het profiel bijvoorbeeld , en wordt de tekenreeks v2019_03_01_hybrid. Houd er rekening mee dat het SDK-team soms de naam van de pakketten wijzigt, dus het vervangen van de datum van een tekenreeks door een andere datum werkt mogelijk niet. Zie de volgende tabel voor het koppelen van profielen en Azure Stack-versies.

Azure Stack-versie Profiel
2311 2020_09_01
2301 2020_09_01
2206 2020_09_01
2108 2020_09_01
2102 2020_09_01
2008 2019_03_01

Zie Samenvatting van API-profielen voor meer informatie over Azure Stack Hub- en API-profielen.

Zie Python SDK-profielen.

Abonnement

Als u nog geen abonnement hebt, maakt u een abonnement en slaat u de abonnements-id op voor later gebruik. Zie dit document voor meer informatie over het maken van een abonnement.

Service-principal

Een service-principal en de bijbehorende omgevingsgegevens moeten worden gemaakt en ergens worden opgeslagen. Service-principal met owner rol wordt aanbevolen, maar afhankelijk van het voorbeeld kan een contributor rol voldoende zijn. Raadpleeg leesmij in de voorbeeldopslagplaats voor de vereiste waarden. U kunt deze waarden lezen in elke indeling die wordt ondersteund door de SDK-taal, zoals in een JSON-bestand (dat in onze voorbeelden wordt gebruikt). Afhankelijk van het voorbeeld dat wordt uitgevoerd, kunnen niet al deze waarden worden gebruikt. Zie de voorbeeldopslagplaats voor bijgewerkte voorbeeldcode of meer informatie.

Tenant-id

Volg de instructies in dit artikel om de map of tenant-id voor uw Azure Stack Hub te vinden.

Resourceprovider registreren

Registreer vereiste resourceproviders door dit document te volgen. Deze resourceproviders zijn vereist, afhankelijk van de voorbeelden die u wilt uitvoeren. Als u bijvoorbeeld een VM-voorbeeld wilt uitvoeren, is registratie van de Microsoft.Compute resourceprovider vereist.

Azure Stack Resource Manager-eindpunt

Azure Resource Manager (ARM) is een beheerframework waarmee beheerders Azure-resources kunnen implementeren, beheren en bewaken. Azure Resource Manager kunt deze taken als een groep afhandelen, in plaats van afzonderlijk, in één bewerking. U kunt de metagegevensgegevens ophalen van het Resource Manager-eindpunt. Het eindpunt retourneert een JSON-bestand met de informatie die nodig is om uw code uit te voeren.

  • De ResourceManagerEndpointUrl in de Azure Stack Development Kit (ASDK) is: https://management.local.azurestack.external/.
  • De ResourceManagerEndpointUrl in geïntegreerde systemen is: https://management.region.<fqdn>/, waarbij <fqdn> uw fully qualified domain name is.
  • Om de vereiste metagegevens op te halen: <ResourceManagerUrl>/metadata/endpoints?api-version=1.0. Zie Azure REST API-specificaties voor beschikbare API-versies. In de profielversie kunt u bijvoorbeeld 2020-09-01 de wijzigen in 2019-10-01 voor resourceprovider microsoft.resourcesapi-version .

Voorbeeld van 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"]
      }
}

Het CA-basiscertificaat van Azure Stack Hub vertrouwen

Als u de ASDK gebruikt, moet u het CA-basiscertificaat op uw externe computer expliciet vertrouwen. U hoeft het CA-basiscertificaat niet te vertrouwen met geïntegreerde Azure Stack Hub-systemen.

Windows

  1. Zoek de locatie van het Python-certificaatarchief op uw computer. De locatie kan variëren, afhankelijk van waar u Python hebt geïnstalleerd. Open een opdrachtprompt of een PowerShell-prompt met verhoogde bevoegdheid en typ de volgende opdracht:

      python -c "import certifi; print(certifi.where())"
    

    Noteer de locatie van het certificaatarchief. bijvoorbeeld ~/lib/python3.5/site-packages/certifi/cacert.pem. Uw specifieke pad is afhankelijk van uw besturingssysteem en de versie van Python die u hebt geïnstalleerd.

  2. Vertrouw het Ca-basiscertificaat van Azure Stack Hub door het toe te voegen aan het bestaande Python-certificaat:

    $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"
    

Notitie

Als u virtualenv gebruikt voor het ontwikkelen met Python SDK, moet u het vorige certificaat toevoegen aan het certificaatarchief van uw virtuele omgeving. Het pad kan er ongeveer als volgt uitzien: ..\mytestenv\Lib\site-packages\certifi\cacert.pem.

Voorbeelden

Zie deze voorbeeldopslagplaats voor voorbeeldcode voor update-to-date (track 2). Zie deze voorbeeldopslagplaats voor het bijhouden van 1 voorbeeldcode. In de hoofdmap README.md worden algemene vereisten beschreven en elke submap bevat een specifiek voorbeeld met een eigen README.md voorbeeld waarin wordt beschreven hoe dat voorbeeld moet worden uitgevoerd.

Kijk hier voor het voorbeeld dat van toepassing is op azure Stack-versie 2008 of -profiel 2019-03-01 en hieronder.

Volgende stappen