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
Profiller
Tarih içeren profiller için farklı bir SDK profili veya sürümü kullanmak için içindeki tarihi v<date>_hybrid
kullanın. Örneğin, 2008 sürümü için profil olur 2019_03_01
ve 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.resources
için olarak değiştirebilirsinizapi-version
2019-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
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.
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.