Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek popisuje, jak importovat, spravovat a používat balíčky Pythonu 3 ve službě Azure Automation spuštěné v prostředí sandboxu Azure a hybrid Runbook Worker. Balíčky Pythonu by se měly stahovat do pracovních procesů Hybrid Runbook, aby bylo možné úlohy úspěšně provést. Pokud chcete zjednodušit runbooky, můžete použít balíčky Pythonu k importu modulů, které potřebujete.
Informace o správě balíčků Pythonu 2 najdete v tématu Správa balíčků Pythonu 2.
Note
Python 2.7 a Python 3.8 už nejsou podporovány nadřazenou platformou Python. Doporučujeme vytvářet runbooky jenom v Pythonu 3.10.
Výchozí balíčky Pythonu
Kvůli podpoře runbooků Pythonu 3.8 ve službě Automation se ve výchozím nastavení instalují některé balíčky Pythonu a seznam těchto balíčků najdete tady. Výchozí verzi je možné přepsat importem balíčků Pythonu na účet Automation.
Přednost má importovaná verze na vašem účtu Automation. Pokud chcete importovat jeden balíček, přečtěte si téma Import balíčku. Pokud chcete importovat balíček s více balíčky, přečtěte si téma Import balíčku se závislostmi.
Note
Pro Python 3.10 nejsou nainstalované žádné výchozí balíčky.
Balíčky jako zdrojové soubory
Azure Automation podporuje pouze balíček Pythonu, který obsahuje jenom kód Pythonu a neobsahuje další jazyková rozšíření ani kód v jiných jazycích. Prostředí Azure Sandbox ale nemusí mít požadované kompilátory pro binární soubory C/C++, proto se doporučuje místo toho používat soubory kolečka .
Note
Python 3.10 v současné době podporuje pouze soubory kol.
Index balíčků Pythonu (PyPI) je úložiště softwaru pro programovací jazyk Python. Při výběru balíčku Pythonu 3 pro import do účtu Automation z PyPI si všimněte následujících částí názvu souboru:
Vyberte verzi Pythonu:
| Část názvu souboru | Description |
|---|---|
| cp310 | Automatizace podporuje Python 3.10 pro cloudové úlohy. |
| manylinux_x86_64 | Procesy sandboxu Azure jsou 64bitové architektury založené na Linuxu pro runbooky Python 3.10. |
Například:
- Pro import pandas – vyberte soubor ve formátu Wheel, který má podobný název jako
pandas-1.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Některé balíčky Pythonu, které jsou k dispozici na PyPI, neposkytují soubor kola. V tomto případě stáhněte zdroj (.zip nebo .tar.gz soubor) a vygenerujte soubor kola pomocí pip.
Pomocí 64bitového počítače s Linuxem s nainstalovaným pythonem 3.10.x a balíčkem kola proveďte následující kroky:
- Stažení zdrojového souboru
pandas-1.2.4.tar.gz. - Spusťte pip a získejte wheel soubor pomocí následujícího příkazu:
pip wheel --no-deps pandas-1.2.4.tar.gz
Import balíčku
Chcete-li importovat balíček, postupujte takto:
Na svém účtu Automation vyberte Balíčky Pythonu v části Sdílené prostředky. Pak vyberte + Přidat balíček Pythonu.
Na stránce Přidat balíček Pythonu vyberte místní balíček, který chcete nahrát. Balíček může být soubor .whl nebo .tar.gz pro soubor Python 3.8 a .whl pro Python 3.10.
Zadejte název a vyberte verzi modulu runtime jako Python 3.8 nebo Python 3.10.
Vyberte Importovat.
Po importu bude balíček uvedený na stránce Balíčky Pythonu na vašem účtu Automation. Pokud chcete balíček odebrat, vyberte ho a vyberte Odstranit.
Import balíčku se závislostmi
Balíček Pythonu 3.8 a jeho závislosti můžete importovat importem následujícího skriptu Pythonu do runbooku Pythonu 3.8. Ujistěte se, že je pro váš účet Automation povolená spravovaná identita a že má pro úspěšný import balíčku přístup Přispěvatel služby Automation.
https://github.com/azureautomation/runbooks/blob/master/Utility/Python/import_py3package_from_pypi.py
Import skriptu do runbooku
Informace o importu runbooku najdete v tématu Import runbooku z Azure Portal. Před spuštěním importu zkopírujte soubor z GitHubu do úložiště, ke kterému má portál přístup.
Na stránce Import runbooku je výchozí název runbooku tak, aby odpovídal názvu skriptu. Pokud máte přístup k poli, můžete název změnit. Typ runbooku může být ve výchozím nastavení Python 2.7. Pokud ano, nezapomeňte ho změnit na Python 3.8.
Spuštěním runbooku importujte balíček a závislosti.
Po vytvoření a publikování runbooku ho spusťte a naimportujte balíček. Podrobnosti o spuštění runbooku najdete v tématu Spuštění runbooku v Azure Automation.
Skript (import_py3package_from_pypi.py) vyžaduje následující parametry.
| Parameter | Description |
|---|---|
| subscription_id | ID předplatného účtu Automation |
| resource_group | Název skupiny prostředků, ve které je účet Automation definovaný |
| automation_account | Název účtu služby Automation |
| module_name | Název modulu, ze který se má importovat pypi.org |
| module_version | Verze modulu |
Hodnota parametru by měla být zadaná jako jeden řetězec v následujícím formátu:
-s <subscription_id> -g <resource_group> -a<automation_account> -m <module_name> -v <module_version>
Další informace o použití parametrů s runbooky naleznete v tématu Práce s parametry sady Runbook.
Použití balíčku v runbooku
Po importu balíčku ho můžete použít v runbooku. Přidejte následující kód, který zobrazí seznam všech skupin prostředků v předplatném Azure.
#!/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)
Note
Balíček Pythonu automationassets není v pypi.org k dispozici, takže není k dispozici pro import do procesu hybrid Runbook Worker pro Windows.
Identifikace dostupných balíčků v sandboxu
K výpisu výchozích nainstalovaných modulů použijte následující kód:
#!/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)
Rutiny PowerShellu pro Python 3.8
Přidání nového balíčku Python 3.8
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
Výpis všech balíčků Pythonu 3.8
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
Získání podrobností o konkrétním balíčku
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
Odebrání balíčku Python 3.8
Remove-AzAutomationPython3Package -AutomationAccountName tarademo -ResourceGroupName mahja -Name sockets
Aktualizace balíčku Python 3.8
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
Další kroky
Pokud chcete připravit runbook Pythonu, přečtěte si téma Vytvoření runbooku Pythonu.