Dela via


Använda API-versionsprofiler med Python i Azure Stack Hub

Viktigt

Python SDK har uppdaterats från spår 1 till spår 2. Vi rekommenderar att du migrerar till spår 2 SDK så snart som möjligt. Anvisningar finns i den här migreringsguiden.

Python SDK stöder API-versionsprofiler för att rikta in sig på olika molnplattformar, till exempel Azure Stack Hub och globala Azure. Använd API-profiler för att skapa lösningar för ett hybridmoln.

Anvisningarna i den här artikeln kräver en Microsoft Azure-prenumeration. Om du inte har ett konto kan du få ett kostnadsfritt utvärderingskonto.

Python- och API-versionsprofiler

Python SDK stöder följande API-profiler:

  • senaste
    Den här profilen riktar sig till de senaste API-versionerna för alla tjänstleverantörer på Azure-plattformen.

  • 2020_09_01_hybrid
    Den här profilen riktar sig till de senaste API-versionerna för alla resursprovidrar på Azure Stack Hub-plattformen för version 2102 eller senare.

  • 2019_03_01_hybrid
    Den här profilen riktar sig till de senaste API-versionerna för alla resursprovidrar på Azure Stack Hub-plattformen för version 1904 eller senare.

    Mer information om API-profiler och Azure Stack Hub finns i Hantera API-versionsprofiler i Azure Stack Hub.

Installera Azure Python SDK

  1. Installera Git.
  2. Installera Python SDK.

Profiler

För profiler som innehåller datum ersätter du datumet i v<date>_hybridom du vill använda en annan SDK-profil eller -version. För 2008-versionen är 2019_03_01till exempel profilen och strängen blir v2019_03_01_hybrid. Observera att SDK-teamet ibland ändrar namnet på paketen, så att helt enkelt ersätta datumet för en sträng med ett annat datum kanske inte fungerar. Se följande tabell för association av profiler och Azure Stack-versioner.

Azure Stack-version 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

Mer information om Azure Stack Hub- och API-profiler finns i Sammanfattning av API-profiler.

Se Python SDK-profiler.

Prenumeration

Om du inte redan har en prenumeration skapar du en prenumeration och sparar prenumerations-ID:t som ska användas senare. Information om hur du skapar en prenumeration finns i det här dokumentet.

Tjänstens huvudnamn

Ett huvudnamn för tjänsten och dess associerade miljöinformation bör skapas och sparas någonstans. Tjänstens huvudnamn med owner roll rekommenderas, men beroende på exemplet kan en contributor roll räcka. Referera till README i exempellagringsplatsen för de värden som krävs. Du kan läsa dessa värden i valfritt format som stöds av SDK-språket, till exempel från en JSON-fil (som våra exempel använder). Beroende på vilket exempel som körs kan inte alla dessa värden användas. Se exempellagringsplatsen för uppdaterad exempelkod eller ytterligare information.

Klientorganisations-ID

Följ anvisningarna i den här artikeln om du vill hitta katalogen eller klientorganisations-ID:t för din Azure Stack Hub.

Registrera resursprovidrar

Registrera nödvändiga resursprovidrar genom att följa det här dokumentet. Dessa resursprovidrar krävs beroende på vilka exempel du vill köra. Om du till exempel vill köra ett virtuellt datorexempel krävs registreringen av resursprovidern Microsoft.Compute .

Azure Stack Resource Manager-slutpunkt

Azure Resource Manager (ARM) är ett hanteringsramverk som gör det möjligt för administratörer att distribuera, hantera och övervaka Azure-resurser. Azure Resource Manager kan hantera dessa uppgifter som en grupp, snarare än individuellt, i en enda åtgärd. Du kan hämta metadatainformationen från Resource Manager slutpunkten. Slutpunkten returnerar en JSON-fil med den information som krävs för att köra koden.

  • ResourceManagerEndpointUrl i Azure Stack Development Kit (ASDK) är: https://management.local.azurestack.external/.
  • ResourceManagerEndpointUrl i integrerade system är: https://management.region.<fqdn>/, där <fqdn> är ditt fullständigt kvalificerade domännamn.
  • Så här hämtar du de metadata som krävs: <ResourceManagerUrl>/metadata/endpoints?api-version=1.0. Tillgängliga API-versioner finns i Specifikationer för Azure REST API. I profilversionen kan du t.ex 2020-09-01 . ändra api-version till 2019-10-01 för resursprovidern microsoft.resources.

Exempel på 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"]
      }
}

Lita på Azure Stack Hub CA-rotcertifikatet

Om du använder ASDK måste du uttryckligen lita på CA-rotcertifikatet på fjärrdatorn. Du behöver inte lita på CA-rotcertifikatet med integrerade Azure Stack Hub-system.

Windows

  1. Hitta platsen för Python-certifikatarkivet på datorn. Platsen kan variera beroende på var du installerade Python. Öppna en kommandotolk eller en upphöjd PowerShell-kommandotolk och skriv följande kommando:

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

    Anteckna platsen för certifikatarkivet. till exempel ~/lib/python3.5/site-packages/certifi/cacert.pem. Din specifika sökväg beror på operativsystemet och vilken version av Python du har installerat.

  2. Lita på Azure Stack Hub CA-rotcertifikatet genom att lägga till det i det befintliga Python-certifikatet:

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

Anteckning

Om du använder virtualenv för att utveckla med Python SDK måste du lägga till det tidigare certifikatet i certifikatarkivet för den virtuella miljön. Sökvägen kan se ut ungefär så här: ..\mytestenv\Lib\site-packages\certifi\cacert.pem.

Exempel

Se den här exempellagringsplatsen för uppdatering till datum (spår 2) exempelkod. Se den här exempellagringsplatsen för att spåra 1 exempelkod. Roten README.md beskriver allmänna krav och varje underkatalog innehåller ett specifikt exempel med ett eget README.md som beskriver hur du kör exemplet.

Här finns det exempel som gäller för Azure Stack-version 2008 eller -profil 2019-03-01 och nedan.

Nästa steg