Usare i profili di versione api con Python nell'hub di Azure Stack
Importante
Python SDK è stato aggiornato dalla traccia 1 alla traccia 2. È consigliabile eseguire la migrazione al track 2 SDK non appena possibile. Per istruzioni, vedere questa guida alla migrazione.
Python SDK supporta i profili di versione api per indirizzare diverse piattaforme cloud, ad esempio l'hub di Azure Stack e Azure globale. Usare i profili API nella creazione di soluzioni per un cloud ibrido.
Le istruzioni contenute in questo articolo richiedono una sottoscrizione di Microsoft Azure. Se non ne hai uno, puoi ottenere un account di valutazione gratuito.
Profili di versione di Python e API
Python SDK supporta i profili API seguenti:
più recenti
Questo profilo è destinato alle versioni API più recenti per tutti i provider di servizi nella piattaforma Azure.2020_09_01_hybrid
Questo profilo è destinato alle versioni api più recenti per tutti i provider di risorse nella piattaforma Hub di Azure Stack per le versioni 2102 o successive.2019_03_01_hybrid
Questo profilo è destinato alle versioni api più recenti per tutti i provider di risorse nella piattaforma Hub di Azure Stack per le versioni 1904 o successive.Per altre informazioni sui profili API e sull'hub di Azure Stack, vedere Gestire i profili di versione dell'API nell'hub di Azure Stack.
Installare Azure Python SDK
Profiles
Per i profili contenenti date, per usare un profilo o una versione SDK diversi, sostituire la data in v<date>_hybrid
. Ad esempio, per la versione 2008, il profilo è 2019_03_01
e la stringa diventa v2019_03_01_hybrid
. Si noti che a volte il team SDK modifica il nome dei pacchetti, quindi è sufficiente sostituire la data di una stringa con una data diversa potrebbe non funzionare. Vedere la tabella seguente per l'associazione di profili e versioni di Azure Stack.
Versione di Azure Stack | Profilo |
---|---|
2311 | 2020_09_01 |
2301 | 2020_09_01 |
2206 | 2020_09_01 |
2108 | 2020_09_01 |
2102 | 2020_09_01 |
2008 | 2019_03_01 |
Per altre informazioni sui profili dell'hub e delle API di Azure Stack, vedere Riepilogo dei profili API.
Vedere Profili SDK Python.
Subscription
Se non si ha già una sottoscrizione, creare una sottoscrizione e salvare l'ID sottoscrizione da usare in un secondo momento. Per informazioni su come creare una sottoscrizione, vedere questo documento.
Entità servizio
È necessario creare e salvare un'entità servizio e le relative informazioni sull'ambiente associate. L'entità servizio con owner
ruolo è consigliata, ma a seconda dell'esempio, un contributor
ruolo può essere sufficiente. Per i valori necessari, vedere README nel repository di esempio . È possibile leggere questi valori in qualsiasi formato supportato dal linguaggio SDK, ad esempio da un file JSON (che vengono usati dagli esempi). A seconda dell'esecuzione dell'esempio, non tutti questi valori possono essere usati. Vedere il repository di esempio per il codice di esempio aggiornato o altre informazioni.
ID tenant
Per trovare la directory o l'ID tenant per l'hub di Azure Stack, seguire le istruzioni riportate in questo articolo.
Registrare i provider di risorse
Registrare i provider di risorse necessari seguendo questo documento. Questi provider di risorse saranno necessari a seconda degli esempi da eseguire. Ad esempio, se si vuole eseguire un esempio di macchina virtuale, è necessaria la registrazione del Microsoft.Compute
provider di risorse.
Endpoint di Azure Stack resource manager
Azure Resource Manager (ARM) è un framework di gestione che consente agli amministratori di distribuire, gestire e monitorare le risorse di Azure. Azure Resource Manager può gestire queste attività come gruppo, anziché singolarmente, in una singola operazione. È possibile ottenere le informazioni sui metadati dall'endpoint di Resource Manager. L'endpoint restituisce un file JSON con le informazioni necessarie per eseguire il codice.
-
ResourceManagerEndpointUrl in Azure Stack Development Kit (ASDK) è:
https://management.local.azurestack.external/
. -
ResourceManagerEndpointUrl nei sistemi integrati è:
https://management.region.<fqdn>/
, dove<fqdn>
è il nome di dominio completo. - Per recuperare i metadati necessari:
<ResourceManagerUrl>/metadata/endpoints?api-version=1.0
. Per le versioni api disponibili, vedere Specifiche dell'API rest di Azure. Ad esempio, nella versione del2020-09-01
profilo è possibile modificare in per ilapi-version
2019-10-01
providermicrosoft.resources
di risorse .
JSON di esempio:
{
"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"]
}
}
Considerare attendibile il certificato radice della CA dell'hub di Azure Stack
Se si usa ASDK, è necessario considerare attendibile in modo esplicito il certificato radice della CA nel computer remoto. Non è necessario considerare attendibile il certificato radice della CA con i sistemi integrati dell'hub di Azure Stack.
Windows
Trovare il percorso dell'archivio certificati Python nel computer. Il percorso può variare, a seconda della posizione in cui è stato installato Python. Aprire un prompt dei comandi o un prompt di PowerShell con privilegi elevati e digitare il comando seguente:
python -c "import certifi; print(certifi.where())"
Prendere nota della posizione dell'archivio certificati; Ad esempio, ~/lib/python3.5/site-packages/certifi/cacert.pem. Il percorso specifico dipende dal sistema operativo e dalla versione di Python installata.
Considerare attendibile il certificato radice della CA dell'hub di Azure Stack aggiungendolo al certificato Python esistente:
$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"
Nota
Se si usa virtualenv per lo sviluppo con Python SDK, è necessario aggiungere il certificato precedente all'archivio certificati dell'ambiente virtuale. Il percorso potrebbe essere simile a: ..\mytestenv\Lib\site-packages\certifi\cacert.pem
.
Esempi
Vedere questo repository di esempio per il codice di esempio update-to-date (track 2). Vedere questo repository di esempio per il codice di esempio traccia 1. La radice README.md
descrive i requisiti generali e ogni sottocartella contiene un esempio specifico con il proprio README.md
che descrive come eseguire tale esempio.
Per l'esempio applicabile alla versione 2008
o al profilo 2019-03-01
di Azure Stack, vedere qui.