Azure Stack Hub'da Python ile API sürüm profillerini kullanma

Önemli

Python SDK'sı 1. izden 2'ye güncelleştirildi. En kısa sürede track 2 SDK'sına geçiş yapmanızı öneririz. Yönergeler için bu geçiş kılavuzuna bakın.

Python SDK'sı, Azure Stack Hub ve genel Azure gibi farklı bulut platformlarını hedeflemek için API sürüm profillerini destekler. Hibrit bulut için çözüm oluştururken API profillerini kullanın.

Bu makaledeki yönergeler bir Microsoft Azure aboneliği gerektirir. Hesabınız yoksa ücretsiz bir deneme hesabı alabilirsiniz.

Python ve API sürüm profilleri

Python SDK'sı aşağıdaki API profillerini destekler:

  • Son
    Bu profil, Azure platformundaki tüm hizmet sağlayıcıları için en son API sürümlerini hedefler.

  • 2020_09_01_hybrid
    Bu profil, 2102 veya sonraki sürümler için Azure Stack Hub platformundaki tüm kaynak sağlayıcıları için en son API sürümlerini hedefler.

  • 2019_03_01_hybrid
    Bu profil, 1904 veya sonraki sürümler için Azure Stack Hub platformundaki tüm kaynak sağlayıcıları için en son API sürümlerini hedefler.

    API profilleri ve Azure Stack Hub hakkında daha fazla bilgi için bkz. Azure Stack Hub'da API sürüm profillerini yönetme.

Azure Python SDK'sını yükleme

  1. Git'i yükleyin.
  2. Python SDK'sı yükleyin.

Profiller

Tarih içeren profiller için farklı bir SDK profili veya sürümü kullanmak için içindeki tarihi v<date>_hybridkullanın. Örneğin, 2008 sürümü için profil olur 2019_03_01ve dize olur v2019_03_01_hybrid. Bazen SDK ekibinin paketlerin adını değiştirdiğini unutmayın; bu nedenle bir dizenin tarihini farklı bir tarihle değiştirmek işe yaramayabilir. Profillerin ve Azure Stack sürümlerinin ilişkilendirmesi için aşağıdaki tabloya bakın.

Azure Stack sürümü 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

Azure Stack Hub ve API profilleri hakkında daha fazla bilgi için bkz. API profillerinin özeti.

Bkz. Python SDK profilleri.

Abonelik

Henüz aboneliğiniz yoksa bir abonelik oluşturun ve daha sonra kullanmak üzere abonelik kimliğini kaydedin. Abonelik oluşturma hakkında bilgi için bu belgeye bakın.

Hizmet sorumlusu

Bir hizmet sorumlusu ve ilişkili ortam bilgileri oluşturulup bir yere kaydedilmelidir. Rolü olan owner hizmet sorumlusu önerilir, ancak örne bağlı olarak bir contributor rol yeterli olabilir. Gerekli değerler için örnek depodaki BENİOKU'ya bakın. Bu değerleri SDK dili tarafından desteklenen JSON dosyasından (örneklerimizin kullandığı) gibi herhangi bir biçimde okuyabilirsiniz. Çalıştırılan örne bağlı olarak, bu değerlerin tümü kullanılamaz. Güncelleştirilmiş örnek kod veya daha fazla bilgi için örnek depoya bakın.

Kiracı Kimliği

Azure Stack Hub'ınızın dizin veya kiracı kimliğini bulmak için bu makaledeki yönergeleri izleyin.

Kaynak sağlayıcılarını kaydetme

Bu belgeyi izleyerek gerekli kaynak sağlayıcılarını kaydedin. Çalıştırmak istediğiniz örneklere bağlı olarak bu kaynak sağlayıcıları gereklidir. Örneğin, bir VM örneği çalıştırmak istiyorsanız kaynak Microsoft.Compute sağlayıcısı kaydı gereklidir.

Azure Stack kaynak yöneticisi uç noktası

Azure Resource Manager (ARM), yöneticilerin Azure kaynaklarını dağıtmasını, yönetmesini ve izlemesini sağlayan bir yönetim çerçevesidir. Azure Resource Manager bu görevleri tek bir işlemde tek tek değil grup olarak işleyebilir. Meta veri bilgilerini Resource Manager uç noktasından alabilirsiniz. Uç nokta, kodunuzu çalıştırmak için gereken bilgileri içeren bir JSON dosyası döndürür.

  • Azure Stack Geliştirme Seti'ndeki (ASDK) ResourceManagerEndpointUrl : https://management.local.azurestack.external/.
  • Tümleşik sistemlerdeki ResourceManagerEndpointUrl şu şekildedir: https://management.region.<fqdn>/burada <fqdn> tam etki alanı adınızdır.
  • Gerekli meta verileri almak için: <ResourceManagerUrl>/metadata/endpoints?api-version=1.0. Kullanılabilir API sürümleri için bkz. Azure rest API belirtimleri. Örneğin, 2020-09-01 profil sürümünde kaynak sağlayıcısı microsoft.resourcesiçin olarak değiştirebilirsiniz api-version2019-10-01.

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

Azure Stack Hub CA kök sertifikasına güvenme

ASDK kullanıyorsanız, uzak makinenizdeki CA kök sertifikasına açıkça güvenmeniz gerekir. Azure Stack Hub tümleşik sistemleriyle CA kök sertifikasına güvenmeniz gerekmez.

Windows

  1. Makinenizde Python sertifika deposu konumunu bulun. Konum, Python'ı yüklediğiniz yere bağlı olarak değişebilir. Bir komut istemi veya yükseltilmiş bir PowerShell istemi açın ve aşağıdaki komutu yazın:

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

    Sertifika deposunun konumunu not edin; örneğin, ~/lib/python3.5/site-packages/certifi/cacert.pem. Kendi yolunuz işletim sisteminize ve yüklediğiniz Python sürümüne bağlıdır.

  2. Azure Stack Hub CA kök sertifikasını mevcut Python sertifikasına ekleyerek güvenin:

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

Not

Python SDK ile geliştirme için virtualenv kullanıyorsanız, önceki sertifikayı sanal ortam sertifika deponuza eklemeniz gerekir. Yol şuna benzer olabilir: ..\mytestenv\Lib\site-packages\certifi\cacert.pem.

Örnekler

Güncelleştirme tarihi (izleme 2) örnek kodu için bu örnek depoya bakın. 1. örnek kodu izlemek için bu örnek depoya bakın. Kök README.md , genel gereksinimleri açıklar ve her alt dizin, bu örneğin nasıl çalıştırıldığını açıklayan kendi README.md örneğiyle birlikte belirli bir örneği içerir.

Azure Stack sürümü 2008 veya profili 2019-03-01 için geçerli olan örnek için buraya bakın ve aşağıya bakın.

Sonraki adımlar