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:

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:

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 .venvlé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.

  1. 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.

  2. 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égpontot HttpExample a function_app.py fájlhoz, amely hitelesítés nélkül érhető el.

Függvény helyi futtatása

  1. 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:

    Screenshot of terminal window output when running function locally.

    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.

  2. 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=Functionslesz. 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.

  3. 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.

  1. Ha szükséges, jelentkezzen be az Azure-ba.

    az login
    

    A az login parancs bejelentkezik az Azure-fiókjába.

  2. 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.

  3. 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_LRSa 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.

  4. 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 Elemzések-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 paranccsal.

Az alábbi példában cserélje le <APP_NAME> az alkalmazás nevét.

func azure functionapp publish <APP_NAME>

A közzétételi parancs 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=Functionshozzá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?