Udostępnij za pośrednictwem


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 śledzenia 2. Zalecamy jak najszybsze przeprowadzenie migracji do zestawu SDK 2. Aby uzyskać instrukcje, zobacz ten przewodnik po 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żyj 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 w wersji próbnej.

Profile wersji języka Python i interfejsu API

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

  • Najnowsza
    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 wersji interfejsu API dla 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 usługę Git.
  2. Zainstaluj zestaw PYTHON SDK.

Profile

W przypadku profilów zawierających daty użyj innego profilu lub wersji zestawu SDK, zastąp datę w pliku v<date>_hybrid. Na przykład w wersji 2008 profil to 2019_03_01, a ciąg staje się ciągiem 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ć. Zapoznaj się z poniższą tabelą, aby zapoznać się z skojarzeniem 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 2019_03_01

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 na temat tworzenia subskrypcji, zobacz ten dokument.

Jednostka usługi

Jednostka usługi i skojarzone z nią informacje o środowisku powinny zostać utworzone i zapisane gdzieś. Zalecana jest jednostka usługi z rolą owner , ale w zależności od próbki contributor rola może wystarczyć. 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 przebiegu próbki nie można użyć wszystkich tych wartości. Zobacz przykładowe repozytorium , aby uzyskać zaktualizowany przykładowy kod lub więcej informacji.

Identyfikator dzierżawy

Aby znaleźć katalog lub identyfikator dzierżawy 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ą zobowiązani w zależności od przykładów, które chcesz uruchomić. Jeśli na przykład chcesz uruchomić przykładową maszynę wirtualną, Microsoft.Compute wymagana 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 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/.
  • Element ResourceManagerEndpointUrl w zintegrowanych systemach to: https://management.region.<fqdn>/, gdzie <fqdn> jest w pełni kwalifikowaną nazwą domeny.
  • 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 2020-09-01 wersji profilu można zmienić wartość na api-version2019-10-01 dla dostawcy microsoft.resourceszasobów .

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"]
      }
}

Ufaj certyfikatowi głównemu urzędu certyfikacji usługi 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 usługi Azure Stack Hub.

Windows

  1. Znajdź lokalizację magazynu certyfikatów języka Python na maszynie. Lokalizacja może się różnić w zależności od lokalizacji zainstalowanego języka 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. Określona ś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

Jeśli używasz programu virtualenv do tworzenia za pomocą zestawu SDK języka Python, 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 uzyskać przykładowy kod aktualizacji (śledzenie 2). Zobacz to przykładowe repozytorium, aby śledzić 1 przykładowy kod. 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ą lub profilem 2019-03-01 usługi Azure Stack 2008 i poniżej.

Następne kroki