Bagikan melalui


Menggunakan profil versi API dengan Python di Azure Stack Hub

Penting

Python SDK telah diperbarui dari trek 1 ke trek 2. Sebaiknya migrasikan ke SDK trek 2 sesegera mungkin. Untuk petunjuknya, lihat panduan migrasi ini.

Python SDK mendukung profil versi API untuk menargetkan platform cloud yang berbeda, seperti Azure Stack Hub dan Azure global. Gunakan profil API dalam membuat solusi untuk cloud hibrid.

Petunjuk dalam artikel ini memerlukan langganan Microsoft Azure. Jika Anda tidak memilikinya, Anda bisa mendapatkan akun coba gratis.

Profil versi Python dan API

Python SDK mendukung profil API berikut:

  • terbaru
    Profil ini menargetkan versi API terbaru untuk semua penyedia layanan di platform Azure.

  • 2020_09_01_hybrid
    Profil ini menargetkan versi API terbaru untuk semua penyedia sumber daya di platform Azure Stack Hub untuk versi 2102 atau yang lebih baru.

  • 2019_03_01_hybrid
    Profil ini menargetkan versi API terbaru untuk semua penyedia sumber daya di platform Azure Stack Hub untuk versi 1904 atau yang lebih baru.

    Untuk info selengkapnya tentang profil API dan Azure Stack Hub, lihat Mengelola profil versi API di Azure Stack Hub.

Memasang Azure Python SDK

  1. Pasang Git.
  2. Menginstal Python SDK.

Profil

Untuk profil yang berisi tanggal, untuk menggunakan profil atau versi SDK yang berbeda, ganti tanggal di v<date>_hybrid. Misalnya, untuk versi 2008, profilnya adalah 2019_03_01, dan string menjadi v2019_03_01_hybrid. Perhatikan bahwa terkadang tim SDK mengubah nama paket, jadi hanya mengganti tanggal string dengan tanggal yang berbeda mungkin tidak berhasil. Lihat tabel berikut untuk asosiasi profil dan versi Azure Stack.

Versi 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

Untuk informasi selengkapnya tentang Azure Stack Hub serta profil API, lihat Ringkasan profil API.

Lihat Profil Python SDK.

Langganan

Jika Anda belum memiliki langganan, buat langganan dan simpan ID langganan yang akan digunakan nanti. Untuk informasi tentang cara membuat langganan, lihat dokumen ini.

Perwakilan Layanan

Perwakilan layanan dan informasi lingkungan terkait harus dibuat dan disimpan di suatu tempat. Perwakilan layanan dengan peran owner direkomendasikan, tetapi tergantung sampel, peran contributor mungkin sudah cukup. Lihat README di repositori sampel untuk nilai yang diperlukan. Anda dapat membaca nilai-nilai ini dalam format apa pun yang didukung oleh bahasa SDK seperti dari file JSON (yang digunakan dalam sampel kami). Bergantung pada sampel yang dijalankan, tidak semua nilai ini dapat digunakan. Lihat repositori sampel untuk mengetahui kode sampel terbaru atau informasi lebih lanjut.

ID Penyewa

Ikuti petunjuk dalam artikel ini untuk menemukan direktori atau ID penyewa untuk Azure Stack Hub Anda.

Mendaftarkan penyedia sumber daya

Daftarkan penyedia sumber daya yang diperlukan dengan mengikuti dokumen ini. Penyedia sumber daya ini akan diperlukan, tergantung sampel yang ingin Anda jalankan. Misalnya, jika Anda ingin menjalankan sampel mesin virtual, pendaftaran penyedia sumber daya Microsoft.Compute diperlukan.

Titik akhir Azure Stack resource manager

Azure Resource Manager (ARM) adalah kerangka kerja manajemen yang memungkinkan administrator untuk menyebarkan, mengelola, dan memantau sumber daya Azure. Azure Resource Manager dapat menangani tugas-tugas ini sebagai grup, bukan secara individu, dalam satu operasi. Anda bisa mendapatkan info metadata dari titik akhir Resource Manager. Titik akhir mengembalikan file JSON dengan info yang dibutuhkan untuk menjalankan kode Anda.

  • ResourceManagerEndpointUrl di Azure Stack Development Kit (ASDK) adalah: https://management.local.azurestack.external/.
  • ResourceManagerEndpointUrl dalam sistem terintegrasi adalah: https://management.region.<fqdn>/, dengan <fqdn> adalah nama domain Anda yang sepenuhnya memenuhi syarat.
  • Untuk mengambil metadata yang dibutuhkan: <ResourceManagerUrl>/metadata/endpoints?api-version=1.0. Untuk versi API yang tersedia, lihat Spesifikasi rest API Azure. Misalnya, dalam versi profil 2020-09-01, Anda dapat mengubah api-version ke 2019-10-01 untuk penyedia sumber daya microsoft.resources.

JSON Sampel:

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

Mempercayai sertifikat akar Azure Stack Hub CA

Jika Anda menggunakan ASDK, Anda harus secara eksplisit mempercayai sertifikat akar CA pada mesin jarak jauh Anda. Anda tidak perlu mempercayai sertifikat akar CA dengan sistem terintegrasi Azure Stack Hub.

Windows

  1. Temukan lokasi penyimpanan sertifikat Python di mesin Anda. Lokasi dapat bervariasi, tergantung di mana Anda memasang Python. Buka perintah atau prompt PowerShell yang ditinggikan, dan ketik perintah berikut:

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

    Buat catatan lokasi penyimpanan sertifikat; misalnya, ~/lib/python3.5/site-packages/certifi/cacert.pem. Jalur khusus Anda tergantung pada sistem operasi Anda dan versi Python yang telah Anda pasang.

  2. Percayai sertifikat akar Azure Stack Hub CA dengan menambahkannya ke sertifikat Python yang ada:

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

Catatan

Jika Anda menggunakan virtualenv untuk mengembangkan dengan Python SDK, Anda harus menambahkan sertifikat sebelumnya ke penyimpanan sertifikat lingkungan virtual Anda. Jalurnya mungkin terlihat mirip dengan: ..\mytestenv\Lib\site-packages\certifi\cacert.pem.

Sampel

Lihat repositori sampel ini untuk kode sampel update-to-date (track 2). Lihat repositori sampel ini untuk kode sampel trek 1. Akar README.md menjelaskan persyaratan umum, dan setiap subdirektori berisi sampel tertentu dengan sendirinya README.md yang menjelaskan cara menjalankan sampel tersebut.

Lihat di sini untuk mengetahui sampel yang berlaku pada versi 2008 atau profil 2019-03-01 Azure Stack dan di bawah ini.

Langkah berikutnya