Olvasás angol nyelven

Megosztás a következőn keresztül:


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 az APT használatával telepítik a Core Toolst az Ubuntu/Debian Linux-disztribúcióra. Egyéb Linux-disztribúciók esetén lásd a Core Tools readme című cikket.

  1. Telepítse a Microsoft-csomagtár GPG-kulcsát a csomagintegritás ellenőrzéséhez:

    Bash
    curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
    sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
    
  2. Az APT-frissítés előtt állítsa be az APT-forráslistát.

    Ubuntu
    Bash
    sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-$(lsb_release -cs 2>/dev/null)-prod $(lsb_release -cs 2>/dev/null) main" > /etc/apt/sources.list.d/dotnetdev.list'
    
    Debian
    Bash
    sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/debian/$(lsb_release -rs 2>/dev/null | cut -d'.' -f 1)/prod $(lsb_release -cs 2>/dev/null) main" > /etc/apt/sources.list.d/dotnetdev.list'
    
  3. Az alábbi táblázatban ellenőrizze a /etc/apt/sources.list.d/dotnetdev.list megfelelő Linux-verziósztringek egyikét:

    Linux-disztribúció Verzió
    Debian 12 bookworm
    Debian 11 bullseye
    Debian 10 buster
    Debian 9 stretch
    Ubuntu 22.04 jammy
    Ubuntu 20.04 focal
    Ubuntu 19.04 disco
    Ubuntu 18.10 cosmic
    Ubuntu 18.04 bionic
    Ubuntu 17.04 zesty
    Ubuntu 16.04/Linux Mint 18 xenial
  4. Indítsa el az APT forrásfrissítést:

    Bash
    sudo apt-get update
    
  5. Telepítse a Core Tools csomagot:

    Bash
    sudo apt-get install azure-functions-core-tools-4
    

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.

Bash
python -m venv .venv
Bash
source .venv/bin/activate

Ha a Python nem telepítette a venv-csomagot a Linux-disztribúcióra, futtassa a következő parancsot:

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

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

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

    Console
    func start
    

    A kimenet vége felé a következő soroknak kell megjelennie:

    Képernyőkép a terminálablak kimenetéről a függvény helyi futtatásakor.

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

    Azure CLI
    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.

    Azure CLI
    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.

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

    Azure CLI
    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.

    Azure CLI
    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:

Console
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=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.

Azure CLI
az group delete --name AzureFunctionsQuickstart-rg

Következő lépések

Problémákat tapasztal ezzel a cikkel kapcsolatban?