Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Azure sandbox ortamında ve Hybrid Runbook Workers üzerinde çalışan Azure Otomasyonunda Python 3 paketlerini içeri aktarma, yönetme ve kullanma işlemleri açıklanmaktadır. Başarılı bir iş yürütmesi için Python paketleri Karma Runbook çalışanlarına indirilmelidir. Runbook'ları basitleştirmeye yardımcı olması için, ihtiyacınız olan modülleri içeri aktarmak için Python paketlerini kullanabilirsiniz.
Python 2 paketlerini yönetme hakkında bilgi için bkz . Python 2 paketlerini yönetme.
Not
Python 2.7 ve Python 3.8 artık üst platform Python tarafından desteklenmiyor. Runbook'ları yalnızca Python 3.10'da oluşturmanızı öneririz.
Varsayılan Python paketleri
Otomasyon hizmetinde Python 3.8 runbook'larını desteklemek için, bazı Python paketleri varsayılan olarak yüklenir ve bu paketlerin listesi buradadır. Python paketleri Otomasyon hesabınıza aktarılarak varsayılan sürüm geçersiz kılınabilir.
Otomasyon hesabınızdaki içeri aktarılan sürüm tercih edilir. Tek bir paketi içeri aktarmak için bkz Paket içe aktarma. Birden çok paketi olan bir paketi içeri aktarmak için bkz Bağımlılıkları Olan Bir Paketi İçe Aktarma.
Not
Python 3.10 için yüklü varsayılan paket yoktur.
Kaynak dosya olarak paketler
Azure Otomasyonu yalnızca Python kodu içeren ve diğer dillerdeki diğer dil uzantılarını veya kodları içermeyen bir Python paketini destekler. Ancak Azure Korumalı Alan ortamında C/C++ ikili dosyaları için gerekli derleyiciler olmayabilir, bu nedenle bunun yerine tekerlek dosyalarının kullanılması önerilir.
Not
Şu anda Python 3.10 yalnızca tekerlek dosyalarını destekler.
Python Paket Dizini (PyPI), Python programlama dili için bir yazılım deposudur. PyPI'dan Otomasyon hesabınıza aktarmak için bir Python 3 paketi seçerken aşağıdaki dosya adı bölümlerini not edin:
Python sürümü seçin:
| Dosya adı bölümü | Açıklama |
|---|---|
| cp310 | Otomasyon, Bulut işleri için Python 3.10'u destekler. |
| manylinux_x86_64 | Azure korumalı ortam süreçleri, Python 3.10 runbook'ları için Linux tabanlı 64 bit mimariye sahiptir. |
Örneğin:
- Pandas'ı içeri aktarmak için,
pandas-1.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whlgibi bir ada sahip wheel dosyasını seçin.
PyPI'da bulunan bazı Python paketleri tekerlek dosyası sağlamaz. Bu durumda, kaynağı indirin (.zip veya .tar.gz dosyası) ve pip kullanarak tekerlek dosyasını oluşturun.
Python 3.10.x ve tekerlek paketi yüklü bir 64 bit Linux makinesi kullanarak aşağıdaki adımları gerçekleştirin:
- Kaynak dosyayı indirme
pandas-1.2.4.tar.gz. - Aşağıdaki komutla tekerlek dosyasını almak için pip komutunu çalıştırın:
pip wheel --no-deps pandas-1.2.4.tar.gz
Paketi içeri aktarma
Paketi içeri aktarmak için şu adımları izleyin:
Otomasyon hesabınızda Paylaşılan Kaynaklar bölümündeki Python paketleri'ni seçin. Ardından + Python paketi ekle'yi seçin.
Python Paketi Ekle sayfasında karşıya yüklenecek yerel paketi seçin. Paket Python 3.8 için .whl veya .tar.gz dosyası ve Python 3.10 için .whl dosyası olabilir.
Bir ad girin ve Çalışma Zamanı Sürümünü Python 3.8 veya Python 3.10 olarak seçin.
İçeri aktar'ı seçin.
Paket içeri aktarıldıktan sonra, Otomasyon hesabınızdaki Python paketleri sayfasında listelenir. Paketi kaldırmak için paketi ve ardından Sil'i seçin.
Bağımlılıkları olan bir paketi içeri aktarma
Aşağıdaki Python betiğini bir Python 3.8 runbook'una aktararak bir Python 3.8 paketini ve bağımlılıklarını içeri aktarabilirsiniz. Yönetilen kimliğin Otomasyon hesabınız için etkinleştirildiğinden ve paketin başarıyla içeri aktarılması için Otomasyon Katılımcısı erişimine sahip olduğundan emin olun.
https://github.com/azureautomation/runbooks/blob/master/Utility/Python/import_py3package_from_pypi.py
Betiği runbook'a aktarma
Runbook'u içeri aktarma hakkında bilgi edinmek için bkz. Azure portalından bir runbook'u içeri aktarma. İçeri aktarmayı çalıştırmadan önce dosyayı GitHub'dan, portalın erişebileceği depolama alanına kopyalayın.
Runbook'u içeri aktarma sayfası, runbook adını varsayılan olarak betiğin adıyla eşleşecek şekilde kullanır. Alana erişiminiz varsa, adı değiştirebilirsiniz. Runbook türü varsayılan olarak Python 2.7 olabilir. Eğer öyleyse, Python 3.8 olarak değiştirdiğinizden emin olun.
Paketi ve bağımlılıkları içeri aktarmak için runbook'u çalıştırın.
Runbook'u oluşturup yayımladıktan sonra, paketi içeri aktarmak için çalıştırın. Runbook'u yürütme hakkında ayrıntılı bilgi için Azure Otomasyonu'nda çalışma kitabı başlatma bölümüne bakın.
Betik (import_py3package_from_pypi.py), aşağıdaki parametreleri gerektirir.
| Parametre | Açıklama |
|---|---|
| subscription_id | Otomasyon hesabının abonelik kimliği |
| kaynak_grubu | Otomasyon hesabının tanımlandığı kaynak grubunun adı |
| otomasyon_hesabı | Otomasyon hesabı adı |
| module_name | İçeri aktarılacağınız modülün adı pypi.org |
| modül_sürümü | Modülün sürümü |
Parametre değeri aşağıdaki biçimde tek bir dize olarak sağlanmalıdır:
-s <subscription_id> -g <resource_group> -a<automation_account> -m <module_name> -v module_version <>
Runbook'larla parametreleri kullanma hakkında daha fazla bilgi için bkz Runbook parametreleriyle çalışma.
Runbook'ta paket kullanma
Paket içeri aktarıldığında, bunu bir runbook'ta kullanabilirsiniz. Azure aboneliğindeki tüm kaynak gruplarını listelemek için aşağıdaki kodu ekleyin.
#!/usr/bin/env python3
import os
import requests
# printing environment variables
endPoint = os.getenv('IDENTITY_ENDPOINT')+"?resource=https://management.azure.com/"
identityHeader = os.getenv('IDENTITY_HEADER')
payload={}
headers = {
'X-IDENTITY-HEADER': identityHeader,
'Metadata': 'True'
}
response = requests.request("GET", endPoint, headers=headers, data=payload)
print(response.text)
Not
Python automationassets paketi pypi.org'da mevcut değil, bu yüzden Windows karma runbook çalışanında import edilemez.
Korumalı alanda kullanılabilir paketleri tanımlama
Varsayılan yüklü modülleri listelemek için aşağıdaki kodu kullanın:
#!/usr/bin/env python3
import pkg_resources
installed_packages = pkg_resources.working_set
installed_packages_list = sorted(["%s==%s" % (i.key, i.version)
for i in installed_packages])
for package in installed_packages_list:
print(package)
Python 3.8 PowerShell cmdlet'leri
Yeni Python 3.8 paketi ekleme
New-AzAutomationPython3Package -AutomationAccountName tarademo -ResourceGroupName mahja -Name requires.io -ContentLinkUri https://files.pythonhosted.org/packages/7f/e2/85dfb9f7364cbd7a9213caea0e91fc948da3c912a2b222a3e43bc9cc6432/requires.io-0.2.6-py2.py3-none-any.whl
Response
ResourceGroupName : mahja
AutomationAccountName : tarademo
Name : requires.io
IsGlobal : False
Version :
SizeInBytes : 0
ActivityCount : 0
CreationTime : 9/26/2022 1:37:13 PM +05:30
LastModifiedTime : 9/26/2022 1:37:13 PM +05:30
ProvisioningState : Creating
Tüm Python 3.8 paketlerini listeleme
Get-AzAutomationPython3Package -AutomationAccountName tarademo -ResourceGroupName mahja
Response :
ResourceGroupName : mahja
AutomationAccountName : tarademo
Name : cryptography
IsGlobal : False
Version :
SizeInBytes : 0
ActivityCount : 0
CreationTime : 9/26/2022 11:52:28 AM +05:30
LastModifiedTime : 9/26/2022 12:11:00 PM +05:30
ProvisioningState : Failed
ResourceGroupName : mahja
AutomationAccountName : tarademo
Name : requires.io
IsGlobal : False
Version :
SizeInBytes : 0
ActivityCount : 0
CreationTime : 9/26/2022 1:37:13 PM +05:30
LastModifiedTime : 9/26/2022 1:39:04 PM +05:30
ProvisioningState : ContentValidated
ResourceGroupName : mahja
AutomationAccountName : tarademo
Name : sockets
IsGlobal : False
Version : 1.0.0
SizeInBytes : 4495
ActivityCount : 0
CreationTime : 9/20/2022 12:46:28 PM +05:30
LastModifiedTime : 9/22/2022 5:03:42 PM +05:30
ProvisioningState : Succeeded
Belirli bir paketle ilgili ayrıntıları alma
Get-AzAutomationPython3Package -AutomationAccountName tarademo -ResourceGroupName mahja -Name sockets
Response
ResourceGroupName : mahja
AutomationAccountName : tarademo
Name : sockets
IsGlobal : False
Version : 1.0.0
SizeInBytes : 4495
ActivityCount : 0
CreationTime : 9/20/2022 12:46:28 PM +05:30
LastModifiedTime : 9/22/2022 5:03:42 PM +05:30
ProvisioningState : Succeeded
Python 3.8 paketini kaldırma
Remove-AzAutomationPython3Package -AutomationAccountName tarademo -ResourceGroupName mahja -Name sockets
Python 3.8 paketini güncelleştirme
Set-AzAutomationPython3Package -AutomationAccountName tarademo -ResourceGroupName mahja -Name requires.io -ContentLinkUri https://files.pythonhosted.org/packages/7f/e2/85dfb9f7364cbd7a9213caea0e91fc948da3c912a2b222a3e43bc9cc6432/requires.io-0.2.6-py2.py3-none-any.whl
ResourceGroupName : mahja
AutomationAccountName : tarademo
Name : requires.io
IsGlobal : False
Version : 0.2.6
SizeInBytes : 10109
ActivityCount : 0
CreationTime : 9/26/2022 1:37:13 PM +05:30
LastModifiedTime : 9/26/2022 1:43:12 PM +05:30
ProvisioningState : Creating
Sonraki adımlar
Python runbook'u hazırlamak için bkz . Python runbook'u oluşturma.