Udostępnij przez


Używanie profilów wersji interfejsu API z językiem Python w usłudze Azure Stack Hub

Ważne

Zestaw SDK języka Python został zaktualizowany z ścieżki 1 do 2. Zalecamy jak najszybsze przejście na zestaw SDK wersji 2. Aby uzyskać instrukcje, zobacz ten przewodnik migracji.

Zestaw SDK języka Python obsługuje profile wersji interfejsu API przeznaczone dla różnych platform w chmurze, takich jak Azure Stack Hub i globalna platforma Azure. Używanie profilów interfejsu API w tworzeniu rozwiązań dla chmury hybrydowej.

Instrukcje opisane w tym artykule wymagają subskrypcji platformy Microsoft Azure. Jeśli go nie masz, możesz uzyskać bezpłatne konto próbne.

Profile wersji języka Python i interfejsu API

Zestaw SDK języka Python obsługuje następujące profile interfejsu API:

  • najnowszy
    Ten profil jest przeznaczony dla najnowszych wersji interfejsu API dla wszystkich dostawców usług na platformie Azure.

  • 2020_09_01_hybrid
    Ten profil jest przeznaczony dla najnowszych wersji interfejsu API dla wszystkich dostawców zasobów na platformie Azure Stack Hub w wersji 2102 lub nowszej.

  • 2019_03_01_hybrid
    Ten profil jest przeznaczony dla najnowszych dostępnych wersji API w przypadku wszystkich dostawców zasobów na platformie Azure Stack Hub w wersji 1904 lub nowszej.

    Aby uzyskać więcej informacji na temat profilów interfejsu API i usługi Azure Stack Hub, zobacz Zarządzanie profilami wersji interfejsu API w usłudze Azure Stack Hub.

Instalowanie zestawu Azure Python SDK

  1. Zainstaluj oprogramowanie Git.
  2. Zainstaluj zestaw SDK języka Python.

Profile

W przypadku profilów zawierających daty, aby użyć innego profilu lub wersji zestawu SDK, zastąp datę w polu v<date>_hybrid. Na przykład w wersji 2008 profil to 2019_03_01, a ciąg staje się v2019_03_01_hybrid. Należy pamiętać, że czasami zespół zestawu SDK zmienia nazwę pakietów, więc po prostu zastąpienie daty ciągu inną datą może nie działać. W poniższej tabeli przedstawiono skojarzenie profilów i wersji usługi Azure Stack.

Wersja usługi Azure Stack Profil
2311 2020_09_01
2301 2020_09_01
2206 2020_09_01
2108 2020_09_01
2102 2020_09_01
2008 01.03.2019

Aby uzyskać więcej informacji na temat profilów usługi Azure Stack Hub i interfejsu API, zobacz Podsumowanie profilów interfejsu API.

Zobacz Profile zestawu SDK języka Python.

Subskrypcja

Jeśli nie masz jeszcze subskrypcji, utwórz subskrypcję i zapisz identyfikator subskrypcji do późniejszego użycia. Aby uzyskać informacje o sposobie tworzenia subskrypcji, zobacz ten dokument.

Jednostka usługi

Obiekt główny usługi oraz powiązane z nim informacje dotyczące środowiska powinny zostać utworzone i zapisane w określonym miejscu. Zalecany jest podmiot usługi z rolą owner, ale w zależności od przykładu może wystarczyć rola contributor. Zapoznaj się z plikiem README w przykładowym repozytorium , aby uzyskać wymagane wartości. Te wartości można odczytać w dowolnym formacie obsługiwanym przez język zestawu SDK, na przykład z pliku JSON (którego używają nasze przykłady). W zależności od uruchamianego przykładu nie wszystkie te wartości mogą być używane. Zobacz przykładowe repozytorium , aby uzyskać zaktualizowany przykładowy kod lub więcej informacji.

Identyfikator dzierżawy

Aby znaleźć katalog lub identyfikator dzierżawy dla usługi Azure Stack Hub, postępuj zgodnie z instrukcjami w tym artykule.

Rejestrowanie dostawców zasobów

Zarejestruj wymaganych dostawców zasobów, postępując zgodnie z tym dokumentem. Ci dostawcy zasobów będą potrzebni w zależności od próbek, które chcesz uruchomić. Jeśli na przykład chcesz uruchomić przykład maszyny wirtualnej, wymagana Microsoft.Compute jest rejestracja dostawcy zasobów.

Punkt końcowy usługi Azure Stack resource manager

Azure Resource Manager (ARM) to struktura zarządzania, która umożliwia administratorom wdrażanie i monitorowanie zasobów platformy Azure oraz zarządzanie nimi. Usługa Azure Resource Manager może obsługiwać te zadania jako grupę, a nie pojedynczo, w ramach jednej operacji. Informacje o metadanych można uzyskać z punktu końcowego usługi Resource Manager. Punkt końcowy zwraca plik JSON z informacjami wymaganymi do uruchomienia kodu.

  • Element ResourceManagerEndpointUrl w zestawie Azure Stack Development Kit (ASDK) to: https://management.local.azurestack.external/.
  • ResourceManagerEndpointUrl w systemach zintegrowanych to: https://management.region.<fqdn>/, gdzie <fqdn> jest w pełni kwalifikowaną nazwą domenową.
  • Aby pobrać wymagane metadane: <ResourceManagerUrl>/metadata/endpoints?api-version=1.0. Aby uzyskać informacje o dostępnych wersjach interfejsu API, zobacz Specyfikacje interfejsu API REST platformy Azure. Na przykład w wersji profilu 2020-09-01 możesz zmienić api-version na 2019-10-01 dla dostawcy zasobów microsoft.resources.

Przykładowy kod 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"]
      }
}

Zaufaj certyfikatowi głównemu urzędu certyfikacji Azure Stack Hub

Jeśli używasz zestawu ASDK, musisz jawnie ufać certyfikatowi głównemu urzędu certyfikacji na maszynie zdalnej. Nie musisz ufać certyfikatowi głównemu urzędu certyfikacji w zintegrowanych systemach Azure Stack Hub.

Windows

  1. Znajdź lokalizację magazynu certyfikatów języka Python na komputerze. Lokalizacja może się różnić w zależności od tego, gdzie zainstalowano język Python. Otwórz wiersz polecenia lub wiersz polecenia programu PowerShell z podwyższonym poziomem uprawnień i wpisz następujące polecenie:

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

    Zanotuj lokalizację magazynu certyfikatów; na przykład ~/lib/python3.5/site-packages/certifi/cacert.pem. Konkretna ścieżka zależy od systemu operacyjnego i zainstalowanej wersji języka Python.

  2. Ufaj certyfikatowi głównemu urzędu certyfikacji usługi Azure Stack Hub, dołączając go do istniejącego certyfikatu języka Python:

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

Uwaga / Notatka

Jeśli używasz programu virtualenv do tworzenia za pomocą zestawu PYTHON SDK, musisz dodać poprzedni certyfikat do magazynu certyfikatów środowiska wirtualnego. Ścieżka może wyglądać podobnie do: ..\mytestenv\Lib\site-packages\certifi\cacert.pem.

Przykłady

Zobacz to przykładowe repozytorium, aby znaleźć najbardziej aktualny przykładowy kod (ścieżka 2). Zobacz to przykładowe repozytorium z przykładowym kodem dla ścieżki 1. Katalog główny README.md opisuje ogólne wymagania, a każdy podkatalog zawiera konkretny przykład z własnym README.md opisem sposobu uruchamiania tego przykładu.

Zobacz tutaj , aby zapoznać się z przykładową wersją 2008 lub profilem 2019-03-01 usługi Azure Stack i poniżej.

Dalsze kroki