API-versieprofielen gebruiken met Python in Azure Stack Hub
De Python SDK ondersteunt API-versieprofielen voor verschillende cloudplatforms, zoals Azure Stack Hub en global 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 versies 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 versie 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
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 de versie 2008 is 2019_03_01het profiel bijvoorbeeld en wordt de tekenreeks .v2019_03_01_hybrid Soms verandert het SDK-team de naam van de pakketten, 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 |
|---|---|
| 2108 | 2020_09_01 |
| 2102 | 2020_09_01 |
| 2008 | 2019_03_01 |
Zie het overzicht 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 die later moet worden gebruikt. Zie dit document voor informatie over het maken van een abonnement.
Service-principal
Een service-principal en de bijbehorende omgevingsgegevens moeten ergens worden gemaakt en opgeslagen. Service-principal met owner rol wordt aanbevolen, maar afhankelijk van het voorbeeld kan een contributor rol volstaan. Raadpleeg de README in de voorbeeldopslagplaats voor de vereiste waarden. U kunt deze waarden lezen in elke indeling die wordt ondersteund door de SDK-taal, zoals uit een JSON-bestand (die door 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 de 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 de 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 kan deze taken verwerken als een groep, in plaats van afzonderlijk, in één bewerking. U kunt de metagegevensgegevens ophalen uit het Resource Manager-eindpunt. Het eindpunt retourneert een JSON-bestand met de gegevens die nodig zijn 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>/, waar<fqdn>is uw volledig gekwalificeerde domeinnaam. - De vereiste metagegevens ophalen:
<ResourceManagerUrl>/metadata/endpoints?api-version=1.0. Zie de specificaties van de Azure REST API voor beschikbare API-versies. In profielversie kunt u bijvoorbeeld2020-09-01de naam2019-10-01van deapi-versionresourceprovidermicrosoft.resourceswijzigen.
Voorbeeld-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 expliciet vertrouwen op uw externe computer. U hoeft het CA-basiscertificaat niet te vertrouwen met geïntegreerde Azure Stack Hub-systemen.
Windows
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.
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 de voorbeeldopslagplaats voor voorbeeldcode voor update-to-date. In de hoofdmap README.md worden algemene vereisten beschreven en elke submap bevat een specifiek voorbeeld met een eigen README.md voorbeeld over het uitvoeren van dat voorbeeld.
Zie hier voor het voorbeeld dat van toepassing is op azure Stack-versie 2008 of -profiel 2019-03-01 en hieronder.