Python 3-csomagok kezelése az Azure Automationben
Ez a cikk bemutatja, hogyan importálhatja, kezelheti és használhatja a Python 3-csomagokat az Azure Automationben, amely az Azure-tesztkörnyezetben és a hibrid Runbook-feldolgozókban fut. A Python-csomagokat hibrid runbook-feldolgozókra kell letölteni a sikeres feladat-végrehajtás érdekében. A runbookok egyszerűsítése érdekében Python-csomagokkal importálhatja a szükséges modulokat.
A Python 2-csomagok kezelésével kapcsolatos információkért lásd: Python 2-csomagok kezelése.
Alapértelmezett Python-csomagok
A Python 3.8-runbookok Automation szolgáltatásban való támogatásához néhány Python-csomag alapértelmezés szerint telepítve van. Ezeknek a csomagoknak a listáját itt találja. Az alapértelmezett verzió felülbírálható, ha Python-csomagokat importál az Automation-fiókjába.
Az Automation-fiókban az importált verzió fog előnyt élvezni. Egyetlen csomag importálásához lásd : Csomag importálása. Ha több csomagot tartalmazó csomagot szeretne importálni, olvassa el a függőségekkel rendelkező csomag importálása című témakört.
Feljegyzés
A Python 3.10-hez (előzetes verzió) nincsenek telepítve alapértelmezett csomagok.
Csomagok forrásfájlokként
Az Azure Automation csak olyan Python-csomagot támogat, amely csak Python-kódot tartalmaz, és nem tartalmaz más nyelvi bővítményeket vagy kódot más nyelveken. Előfordulhat azonban, hogy az Azure Sandbox-környezet nem rendelkezik a C/C++ bináris fájlokhoz szükséges fordítókkal, ezért javasoljuk, hogy inkább kerékfájlokat használjon.
Feljegyzés
A Python 3.10 (előzetes verzió) jelenleg csak a kerekes fájlokat támogatja.
A Python-csomagindex (PyPI) a Python programozási nyelv szoftvereinek adattára. Amikor kiválaszt egy Python 3-csomagot, amely importálható az Automation-fiókjába a PyPI-ból, jegyezze fel a következő fájlnévrészeket:
Válasszon egy Python-verziót:
Fájlnév rész | Leírás |
---|---|
cp38 | Az Automation támogatja a Python 3.8 for Cloud-feladatokat. |
amd64 | Az Azure-tesztkörnyezeti folyamatok Windows 64 bites architektúrák. |
Példa:
- Pandas importálásához válasszon ki egy hasonló nevű
pandas-1.2.3-cp38-win_amd64.whl
kerekes fájlt.
A PyPI-n elérhető Egyes Python-csomagok nem biztosítanak kerékfájlt. Ebben az esetben töltse le a forrást (.zip vagy .tar.gz fájlt), és hozza létre a kerékfájlt a használatával pip
.
Hajtsa végre a következő lépéseket egy 64 bites Windows rendszerű géppel, amelyen telepítve van a Python 3.8.x és a kerékcsomag:
- Töltse le a forrásfájlt
pandas-1.2.4.tar.gz
. - Futtassa a pipet a kerékfájl lekéréséhez a következő paranccsal:
pip wheel --no-deps pandas-1.2.4.tar.gz
Csomag importálása
Az Automation-fiókjában a Megosztott erőforrások területen válassza a Python-csomagok lehetőséget. Ezután válassza a + Python-csomag hozzáadása lehetőséget.
A Python-csomag hozzáadása lapon válassza ki a feltöltendő helyi csomagot. A csomag lehet .whl- vagy .tar.gz-fájl a Python 3.8-hoz és .whl-fájl a Python 3.10-hez (előzetes verzió).
Adjon meg egy nevet, és a Futtatókörnyezet-verzió lehetőségnél válassza a Python 3.8 vagy a Python 3.10 (előzetes verzió) értéket.
Feljegyzés
A Python 3.10 -es (előzetes verziójú) futtatókörnyezet verziója jelenleg a felhőbeli és a hibrid feladatok esetében is támogatott az összes nyilvános régióban, kivéve Ausztrália középső régiójában, Dél-Koreában, Dél-Svédországban, Jio India középső régiójában, Délkelet-Brazíliában, Közép-Indiában, Nyugat-Indiában, az Egyesült Arab Emírségek középső régiójában és a Gov-felhőkben.
Válassza az Importálás lehetőséget.
A csomag importálása után a csomag az Automation-fiók Python-csomagok lapján fog szerepelni. Ha el szeretne távolítani egy csomagot, jelölje ki a csomagot, és válassza a Törlés gombot.
Függőségeket tartalmazó csomag importálása
A Python 3.8-csomagokat és azok függőségeit a következő Python-szkript Python 3.8-as runbookba való importálásával importálhatja. A csomag sikeres importálása érdekében győződjön meg arról, hogy a felügyelt identitás engedélyezve van az Automation-fiókhoz, és rendelkezik Automation-közreműködői hozzáféréssel.
https://github.com/azureautomation/runbooks/blob/master/Utility/Python/import_py3package_from_pypi.py
A szkript importálása runbookba
A runbook importálásával kapcsolatos információkért lásd: Runbook importálása az Azure Portalról. Az importálás futtatása előtt másolja a fájlt a GitHubról a portál által elérhető tárolóba.
Feljegyzés
A Python 3.10 (előzetes verzió) esetében jelenleg nem támogatott runbook importálása az Azure Portalról.
A Runbook importálása lapon a runbook neve alapértelmezés szerint a szkript nevének megfelelően lesz megadva. Ha rendelkezik hozzáféréssel a mezőhöz, módosíthatja a nevet. Lehet, hogy a Runbook típusa alapértelmezés szerint a Python 2.7 értéket kapja. Ebben az esetben módosítsa az értéket Python 3.8-ra.
A runbook végrehajtása a csomag és a függőségek importálásához
A runbook létrehozása és közzététele után futtassa a runbookot a csomag importálásához. A runbook végrehajtásával kapcsolatos részletekért lásd: Runbook indítása az Azure Automationben.
A szkripthez (import_py3package_from_pypi.py
) a következő paraméterek szükségesek.
Paraméter | Leírás |
---|---|
subscription_id | Az Automation-fiók előfizetés-azonosítója |
resource_group | Annak az erőforráscsoportnak a neve, amelyben az Automation-fiók definiálva van |
automation_account | Automation-fiók neve |
module_name | A modul neve, amelyből importálni szeretné pypi.org |
module_version | A modul verziója |
A paraméter értékét egyetlen sztringként kell megadni az alábbi formátumban:
-s <subscription_id> -g <resource_group> -a<automation_account> -m <module_name> -v <module_version>
A paraméterek runbookokkal való használatáról további információt a Runbook paramétereinek használata című témakörben talál.
Csomag használata runbookban
Az importált csomag egy runbookban is használható. Adja hozzá az alábbi kódot egy Azure-előfizetés összes erőforráscsoportjának listázásához.
#!/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)
Feljegyzés
A Python-csomag automationassets
nem érhető el pypi.org, ezért nem importálható hibrid Windows-runbook-feldolgozóba.
A tesztkörnyezetben elérhető csomagok azonosítása
Az alapértelmezett telepített modulok felsorolásához használja az alábbi kódot:
#!/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-parancsmagok
Új Python 3.8-csomag hozzáadása
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
Az összes Python 3.8-csomag listázása
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
Az adott csomag részleteinek lekérése
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-csomag eltávolítása
Remove-AzAutomationPython3Package -AutomationAccountName tarademo -ResourceGroupName mahja -Name sockets
Python 3.8-csomag frissítése
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
Következő lépések
Python-runbook előkészítéséhez lásd : Python-runbook létrehozása.