Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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.
Feljegyzés
A Python 2.7-et és a Python 3.8-at a Python szülőplatformja már nem támogatja. Javasoljuk, hogy csak a Python 3.10-ben hozzon létre runbookokat.
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 nincsenek alapértelmezett csomagok telepítve.
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 jelenleg csak a kerékfá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 |
|---|---|
| cp310 | Az Automation támogatja a Python 3.10-t felhőalapú feladatokhoz. |
| manylinux_x86_64 | Az Azure sandbox folyamatok Linux-alapú, 64 bites architektúrára épülnek a Python 3.10 runbookokhoz. |
Példa:
- Pandas importálása – válasszon ki egy whl fájlt, amelynek neve hasonló
pandas-1.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
A PyPI-n elérhető egyes Python csomagok nem biztosítanak wheel fájlt. Ebben az esetben töltse le a forrást (.zip vagy .tar.gz fájlt), és hozza létre a kerékfájlt pip használatával.
Hajtsa végre a következő lépéseket egy 64 bites Linux rendszerű géppel, amelyen telepítve van a Python 3.10.x és a kerékcsomag:
- A forrásfájl letöltése
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
Csomag importálásához kövesse az alábbi lépéseket:
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.
Adjon meg egy nevet, és válassza ki a futtatókörnyezeti verziót Python 3.8 vagy Python 3.10 néven.
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 a 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.
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. Ha igen, módosítsa az értéket Python 3.8-ra.
Futtassa a runbookot, hogy importálja a csomagot és a függőségeket.
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 |
|---|---|
| előfizetési_azonosító | Az Automation-fiók előfizetés-azonosítója |
| erőforráscsoport | Annak az erőforráscsoportnak a neve, amelyben az Automation-fiók definiálva van |
| automatizálási_fiók | Automation-fiók neve |
| module_name | A modul neve, amelyből importálni szeretné pypi.org |
| modul_verzió | 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
Miután importáltad a csomagot, felhasználhatod egy runbookban. 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 automationassets csomag nem érhető el a pypi.org weboldalon, ezért nem importálható egy Windows hibrid runbook feldolgozóra.
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-parancsmódosítók
Ú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.