Rövid útmutató: Python-függvény létrehozása az Azure-ban a parancssorból
Ebben a cikkben parancssori eszközökkel hoz létre egy Python-függvényt, amely a HTTP-kérelmekre válaszol. A kódot a helyi tesztelését követően az Azure Functions kiszolgáló nélküli környezetében helyezheti üzembe.
Ez a cikk az Azure Functions Python v2 programozási modelljét használja, amely dekorátoralapú megközelítést biztosít a függvények létrehozásához. A Python v2 programozási modellel kapcsolatos további információkért tekintse meg a fejlesztői referencia-útmutatót
A rövid útmutató elvégzése néhány cent (USD) vagy még kevesebb költséggel jár az Azure-fiókját illetően.
A cikknek van egy Visual Studio Code-alapú verziója is.
A helyi környezet konfigurálása
A kezdés előtt a következő követelményekkel kell rendelkeznie:
Egy Azure-fiók, aktív előfizetéssel. Fiók ingyenes létrehozása.
Az Azure-erőforrások létrehozásához az alábbi eszközök egyike:
Az Azure CLI 2.4-es vagy újabb verziója.
Az Azure Az PowerShell-modul 5.9.0-s vagy újabb verziója.
Az Azure Functions által támogatott Python-verzió.
Az Azurite Storage emulátor. Bár tényleges Azure Storage-fiókot is használhat, a cikk feltételezi, hogy ezt az emulátort használja.
Az Azure Functions Core Tools telepítése
A Core Tools telepítésének ajánlott módja a helyi fejlesztőszámítógép operációs rendszerétől függ.
Az alábbi lépések windowsos telepítővel (MSI) telepítik a Core Tools v4.x-et. További információ a csomagalapú telepítőkről: Core Tools readme.
Töltse le és futtassa a Core Tools telepítőt a Windows-verzió alapján:
- v4.x – Windows 64 bites (ajánlott. A Visual Studio Code hibakereséséhez 64 bitesre van szükség.)
- v4.x – Windows 32 bites
Ha korábban windowsos telepítőt (MSI) használt a Core Tools windowsos telepítéséhez, a legújabb verzió telepítése előtt el kell távolítania a régi verziót a Programok eltávolítása bővítményből.
func --version
A parancs használatával győződjön meg arról, hogy a Core Tools verziója legalább 4.0.5530
.
Virtuális környezet létrehozása és aktiválása
Egy megfelelő mappában futtassa az alábbi parancsokat egy virtuális környezet .venv
létrehozásához és aktiválásához. Győződjön meg arról, hogy az Azure Functions által támogatott Python-verziót használja.
python -m venv .venv
source .venv/bin/activate
Ha a Python nem telepítette a venv-csomagot a Linux-disztribúcióra, futtassa a következő parancsot:
sudo apt-get install python3-venv
Ebben az aktivált virtuális környezetben minden további parancsot futtat.
Helyi függvény létrehozása
Az Azure Functionsben a függvényprojekt egy tároló egy vagy több egyedi függvény számára, amelyek mindegyike egy adott eseményindítóra válaszol. A projekt összes függvénye ugyanazokkal a helyi és üzemeltetési konfigurációkkal rendelkezik.
Ebben a szakaszban egy függvényprojektet hoz létre, és hozzáad egy HTTP által aktivált függvényt.
Futtassa a parancsot az
func init
alábbiak szerint egy Python v2-függvényprojekt létrehozásához a virtuális környezetben.func init --python
A környezet mostantól különböző fájlokat tartalmaz a projekthez, beleértve a local.settings.json és host.json nevű konfigurációs fájlokat. Mivel local.settings.json tartalmazhat az Azure-ból letöltött titkos kulcsokat, a fájl alapértelmezés szerint ki van zárva a .gitignore fájlból a forrásvezérlőből.
Adjon hozzá egy függvényt a projekthez az alábbi paranccsal, ahol az
--name
argumentum a függvény egyedi neve (HttpExample), az--template
argumentum pedig a függvény eseményindítóját (HTTP) adja meg.func new --name HttpExample --template "HTTP trigger" --authlevel "anonymous"
Ha a rendszer kéri, válassza a NÉVTELEN lehetőséget.
func new
hozzáad egy HTTP-eseményindító végpontotHttpExample
afunction_app.py
fájlhoz, amely hitelesítés nélkül érhető el.
Függvény helyi futtatása
Futtassa a függvényt úgy, hogy elindítja a helyi Azure Functions futtatókörnyezet gazdagépét a LocalFunctionProj mappából.
func start
A kimenet vége felé a következő soroknak kell megjelennie:
Feljegyzés
Ha a HttpExample nem jelenik meg a fent látható módon, valószínűleg a projekt gyökérmappájából indította el a gazdagépet. Ebben az esetben a Ctrl C billentyűkombinációval +állítsa le a gazdagépet, nyissa meg a projekt gyökérmappáját, és futtassa újra az előző parancsot.
Másolja a HTTP-függvény URL-címét ebből a kimenetből egy böngészőbe, és fűzze hozzá a lekérdezési sztringet
?name=<YOUR_NAME>
, így a teljes URL-cím hasonlóhttp://localhost:7071/api/HttpExample?name=Functions
lesz. A böngészőnek egy válaszüzenetet kell megjelenítenie, amely visszaadja a lekérdezési sztring értékét. Az a terminál, amelyben elindította a projektet, a naplókimenetet is megjeleníti a kérések során.Ha végzett, nyomja le a Ctrl + C billentyűkombinációt, és írja be a függvénygazda
y
leállításához.
Támogató Azure-erőforrások létrehozása a függvényhez
Mielőtt üzembe helyezheti a függvénykódot az Azure-ban, három erőforrást kell létrehoznia:
- Egy erőforráscsoport, amely a kapcsolódó erőforrások logikai tárolója.
- Egy tárfiók, amely fenntartja a projektek állapotát és egyéb adatait.
- Egy függvényalkalmazás, amely a függvénykód végrehajtásához biztosítja a környezetet. A függvényalkalmazások leképezik a helyi függvényprojektet, és lehetővé teszi a függvények logikai egységként való csoportosítását az erőforrások egyszerűbb kezelése, üzembe helyezése és megosztása érdekében.
Ezeket az elemeket az alábbi parancsokkal hozhatja létre. Az Azure CLI és a PowerShell is támogatott.
Ha szükséges, jelentkezzen be az Azure-ba.
az login
A
az login
parancs bejelentkezik az Azure-fiókjába.Hozzon létre egy erőforráscsoportot
AzureFunctionsQuickstart-rg
a kiválasztott régióban.az group create --name AzureFunctionsQuickstart-rg --location <REGION>
Az az group create parancs létrehoz egy erőforráscsoportot. A fenti parancsban cserélje le
<REGION>
az Önhöz közeli régióra az az account list-locations parancsból visszaadott elérhető régiókódot.Feljegyzés
Nem üzemeltethet Linux- és Windows-alkalmazásokat ugyanabban az erőforráscsoportban. Ha windowsos függvényalkalmazással vagy webalkalmazással rendelkezik egy meglévő erőforráscsoporttal
AzureFunctionsQuickstart-rg
, egy másik erőforráscsoportot kell használnia.Hozzon létre egy általános célú tárfiókot az erőforráscsoportban és a régióban.
az storage account create --name <STORAGE_NAME> --location <REGION> --resource-group AzureFunctionsQuickstart-rg --sku Standard_LRS
Az az storage account create parancs létrehozza a tárfiókot.
Az előző példában cserélje le
<STORAGE_NAME>
az Ön számára megfelelő és az Azure Storage-ban egyedi nevet. A neveknek csak 3–24 karakterből álló számokat és kisbetűket kell tartalmazniuk.Standard_LRS
a Functions által támogatott általános célú fiókot határoz meg.A tárfiók csak néhány centet (USD) von maga után ebben a rövid útmutatóban.
Hozza létre a függvényalkalmazást az Azure-ban.
az functionapp create --resource-group AzureFunctionsQuickstart-rg --consumption-plan-location westeurope --runtime python --runtime-version <PYTHON_VERSION> --functions-version 4 --name <APP_NAME> --os-type linux --storage-account <STORAGE_NAME>
Az az functionapp create parancs létrehozza a függvényalkalmazást az Azure-ban. Meg kell adnia,
--os-type linux
mert a Python-függvények csak Linuxon futnak.Az előző példában cserélje le
<APP_NAME>
az Ön számára megfelelő globálisan egyedi nevet. Ez<APP_NAME>
a függvényalkalmazás alapértelmezett altartománya is. Győződjön meg arról, hogy a megadott<PYTHON_VERSION>
érték a Functions által támogatott verzió, és ugyanaz a verzió, amelyet a helyi fejlesztés során használt.Ez a parancs létrehoz egy függvényalkalmazást, amely a megadott nyelvi futtatókörnyezetben fut az Azure Functions használati csomagjában, amely ingyenes az itt felmerülő használatért. A parancs egy társított Azure-alkalmazás Insights-példányt is létrehoz ugyanabban az erőforráscsoportban, amellyel figyelheti a függvényalkalmazást, és megtekintheti a naplókat. További információ: Az Azure Functions monitorozása. A példány nem jár költségekkel, amíg nem aktiválja.
A függvényprojekt üzembe helyezése az Azure-ban
Miután sikeresen létrehozta a függvényalkalmazást az Azure-ban, készen áll a helyi függvényprojekt üzembe helyezésére a func azure functionapp publish
parancs használatával.
A gyökérprojekt mappájában futtassa ezt a func azure functionapp publish
parancsot:
func azure functionapp publish <APP_NAME>
Ebben a példában cserélje le <APP_NAME>
az alkalmazás nevét. A sikeres üzembe helyezés az alábbi kimenethez hasonló eredményeket jelenít meg (az egyszerűség kedvéért csonkolt):
... Getting site publishing info... Creating archive for current directory... Performing remote build for functions project. ... Deployment successful. Remote build succeeded! Syncing triggers... Functions in msdocs-azurefunctions-qs: HttpExample - [httpTrigger] Invoke url: https://msdocs-azurefunctions-qs.azurewebsites.net/api/httpexample
A függvény meghívása az Azure-ban
Mivel a függvény HTTP-eseményindítót használ, http-kérést küld az URL-címére a böngészőben, vagy egy olyan eszközzel, mint a curl.
Másolja a parancs kimenetében látható teljes meghívási URL-címet egy böngésző címsorába a lekérdezési paraméter ?name=Functions
hozzáfűzésével.publish
A böngészőnek hasonló kimenetet kell megjelenítenie, mint amikor helyileg futtatta a függvényt.
Az erőforrások eltávolítása
Ha folytatja a következő lépést , és hozzáad egy Azure Storage-üzenetsor kimeneti kötését, tartsa a helyén az összes erőforrást, miközben a már elvégzett feladatokra épít.
Ellenkező esetben a következő paranccsal törölje az erőforráscsoportot és annak összes benne foglalt erőforrását, hogy elkerülje a további költségek felmerülését.
az group delete --name AzureFunctionsQuickstart-rg
Következő lépések
Problémákat tapasztal ezzel a cikkel kapcsolatban?