Azure Otomasyonu'nda Python 3 paketlerini yönetme
Bu makalede, Azure korumalı alan ortamında ve Karma Runbook Çalışanlarında çalışan Azure Otomasyonu 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.
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 . Paketi içeri aktarma. Birden çok paket içeren bir paketi içeri aktarmak için bkz . Bağımlılıkları olan bir paketi içeri aktarma.
Not
Python 3.10 (önizleme) 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 (önizleme) 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 |
---|---|
cp38 | Otomasyon, Bulut işleri için Python 3.8'i destekler. |
amd64 | Azure korumalı alan işlemleri Windows 64 bit mimarisidir. |
Örneğin:
- Pandas'ı içeri aktarmak için - gibi
pandas-1.2.3-cp38-win_amd64.whl
bir ada sahip bir tekerlek dosyası seçin.
PyPI'da bulunan bazı Python paketleri tekerlek dosyası sağlamaz. Bu durumda, kaynağı indirin (.zip veya .tar.gz dosyası) ve kullanarak pip
tekerlek dosyasını oluşturun.
Python 3.8.x ve tekerlek paketi yüklü bir 64 bit Windows makinesi kullanarak aşağıdaki adımları gerçekleştirin:
- Kaynak dosyasını
pandas-1.2.4.tar.gz
indirin. - 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
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ı (önizleme) olabilir.
Bir ad girin ve Çalışma Zamanı Sürümünü Python 3.8 veya Python 3.10 (önizleme) olarak seçin.
Not
Python 3.10 (önizleme) çalışma zamanı sürümü şu anda Orta Avustralya2, Güney Kore, İsveç Güney, Jio Hindistan Orta, Brezilya Güneydoğu, Orta Hindistan, Batı Hindistan, BAE Orta ve Gov bulutları dışındaki tüm Genel bölgelerde Bulut ve Hibrit işleri için desteklenmektedir.
İç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.
Not
Şu anda Python 3.10 (önizleme) için Azure Portal'dan bir runbook içeri aktarılamıyor.
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. Bu durumda Python 3.8 olarak değiştirdiğinizden emin olun.
Paketi ve bağımlılıkları içeri aktarmak için runbook'u yürütme
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 bkz. Azure Otomasyonu'nda runbook başlatma.
Betik (import_py3package_from_pypi.py
), aşağıdaki parametreleri gerektirir.
Parametre | Açıklama |
---|---|
subscription_id | Otomasyon hesabının abonelik kimliği |
resource_group | Otomasyon hesabının tanımlandığı kaynak grubunun adı |
automation_account | Otomasyon hesabı adı |
module_name | İçeri aktarılacağınız modülün adı pypi.org |
module_version | 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 kullanılamaz, bu nedenle Windows karma runbook çalışanına aktarılamayabilir.
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.