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
Profiler
För profiler som innehåller datum ersätter du datumet i v<date>_hybrid
om du vill använda en annan SDK-profil eller -version. För 2008-versionen är 2019_03_01
till 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.
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.ex2020-09-01
. ändraapi-version
till2019-10-01
för resursprovidernmicrosoft.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
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.
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.