HTTP által aktivált függvény létrehozása az Azure-banCreate an HTTP triggered function in Azure

Ez a cikk bemutatja, hogyan hozhat létre olyan Python-projektet, amely Azure Functionsban fut.This article shows you how to use command-line tools to create a Python project that runs in Azure Functions. Létrehozhat egy HTTP-kérelem által aktivált függvényt is.You also create a function that is triggered by an HTTP request. Végezetül közzé kell tenni a projektet, hogy kiszolgáló nélküli függvényként fusson az Azure-ban.Finally, you publish your project to run as a serverless function in Azure.

Ez a cikk a Azure Functions első két Python-gyors útmutatója.This article is the first of two Python quickstarts for Azure Functions. A rövid útmutató elvégzése után hozzáadhat egy Azure Storage-üzenetsor kimeneti kötését a függvényhez.After you complete this quickstart, you can add an Azure Storage queue output binding to your function.

ElőfeltételekPrerequisites

A Kezdés előtt a következőket kell tennie:Before you start, you must:

Virtuális környezet létrehozása és aktiválása (nem kötelező)Create and activate a virtual environment (optional)

Python-függvények helyi fejlesztéséhez a Python 3.6. x környezetet kell használnia.You should use a Python 3.6.x environment to locally develop Python functions. Futtassa a következő parancsokat, létrehozása és aktiválása nevű virtuális környezetet .venv.Run the following commands to create and activate a virtual environment named .venv.

Megjegyzés

Ha a Python nem telepítette a venv-t a Linux-disztribúción, akkor a következő paranccsal telepítheti:If Python didn't install venv on your Linux distribution, you can install it using the following command:

sudo apt-get install python3-venv

BashBash:

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

PowerShell vagy Windows-Parancssor:PowerShell or a Windows command prompt:

py -m venv .venv
.venv\scripts\activate

Most, hogy aktiválta a virtuális környezetet, futtassa a többi parancsot.Now that you activated the virtual environment, run the remaining commands in it. Ha ki szeretné próbálni a virtuális környezetet, deactivatefuttassa a következőt:.To get out of the virtual environment, run deactivate.

Helyi functions-projekt létrehozásaCreate a local functions project

A functions-projekt egyenértékű az Azure-beli Function alkalmazásokkal.A functions project is the equivalent of a function app in Azure. Több funkcióval is rendelkezhet, amelyek mindegyike ugyanazokat a helyi és üzemeltetési konfigurációkat használja.It can have multiple functions that all share the same local and hosting configurations.

  1. A virtuális környezetben futtassa a következő parancsot:In the virtual environment, run the following command:

    func init MyFunctionProj
    
  2. Válassza a Python lehetőséget munkavégző futtatókörnyezetként.Select python as your worker runtime.

    A parancs létrehoz egy MyFunctionProj mappát.The command creates a MyFunctionProj folder. A következő három fájlt tartalmazza:It contains these three files:

    • Local. Settings. JSON: az Alkalmazásbeállítások és a kapcsolódási karakterláncok helyi futtatásakor való tárolásához használatos.local.settings.json: used to store app settings and connection strings when running locally. Ez a fájl nem jelenik meg az Azure-ban.This file doesn't get published to Azure.
    • követelmények. txt: azon csomagok listáját tartalmazza, amelyeket a rendszer az Azure-ba való közzétételre telepít.requirements.txt: contains the list of packages the system will install on publishing to Azure.
    • a Host. JSON: olyan globális konfigurációs beállításokat tartalmaz, amelyek a Function alkalmazás összes funkcióját érintik.host.json: contains global configuration options that affect all functions in a function app. Ez a fájl közzé van téve az Azure-ban.This file does get published to Azure.
  3. Nyissa meg az új MyFunctionProj mappát:Go to the new MyFunctionProj folder:

    cd MyFunctionProj
    

Függvény létrehozásaCreate a function

Adjon hozzá egy függvényt az új projekthez.Add a function to the new project.

  1. Ha függvényt szeretne hozzáadni a projekthez, futtassa a következő parancsot:To add a function to your project, run the following command:

    func new
    
  2. A http-trigger sablon kiválasztásához használja a lefelé mutató nyilat.Use your down-arrow to select the HTTP trigger template.

  3. Ha a rendszer kéri a függvény nevét, írja be a HttpTrigger nevet, majd nyomja le az ENTER billentyűt.When you're prompted for a function name, enter HttpTrigger and then press Enter.

Ezek a parancsok létrehoznak egy _HttpTrigger_nevű almappát.These commands create a subfolder named HttpTrigger. A következő fájlokat tartalmazza:It contains the following files:

  • function. JSON: konfigurációs fájl, amely meghatározza a függvényt, az triggert és az egyéb kötéseket.function.json: configuration file that defines the function, trigger, and other bindings. Figyelje meg, hogy ebben a fájlban az érték scriptFile a függvényt tartalmazó fájlra mutat, bindings a tömb pedig meghatározza a meghívásos triggert és kötéseket.Notice that in this file, the value for scriptFile points to the file containing the function, and the bindings array defines the invocation trigger and bindings.

    Minden kötéshez meg kell adni egy irányt, egy típust és egy egyedi nevet.Each binding requires a direction, type and a unique name. A http httpTrigger -trigger típusa és kimeneti kötése típusú httpbemeneti kötést tartalmaz.The HTTP trigger has an input binding of type httpTrigger and output binding of type http.

  • init.file_: a http által aktivált függvényt tartalmazó parancsfájl._ _ ___init__.py: script file that is your HTTP triggered function. Figyelje meg, hogy ez a parancsfájl main()alapértelmezett.Notice that this script has a default main(). A triggerből származó http-adatok az req elnevezett binding parameterparanccsal jutnak el a függvényhez.HTTP data from the trigger passes to the function using the req named binding parameter. A req, amely a function. JSON fájlban van definiálva, az Azure. functions. HttpRequest osztályegy példánya.The req, which is defined in function.json, is an instance of the azure.functions.HttpRequest class.

    A function. JSONfájlban megadott $return visszatérési objektum az Azure. functions. HttpResponse osztályegy példánya.The return object, defined as $return in function.json, is an instance of azure.functions.HttpResponse class. További információ: Azure FUNCTIONS http-eseményindítók és-kötések.To learn more, see Azure Functions HTTP triggers and bindings.

Függvény helyi futtatásaRun the function locally

A függvény helyileg fut a Azure Functions Runtime használatával.The function runs locally using the Azure Functions runtime.

  1. Ez a parancs elindítja a Function alkalmazást:This command starts the function app:

    func host start
    

    A Azure Functions-állomás indításakor a következő kimenethez hasonlóan kell írnia.When the Azure Functions host starts, it writes something like the following output. Itt csonkolt, így jobban áttekinthető:It's truncated here so you can read it better:

    
                      %%%%%%
                     %%%%%%
                @   %%%%%%    @
              @@   %%%%%%      @@
           @@@    %%%%%%%%%%%    @@@
         @@      %%%%%%%%%%        @@
           @@         %%%%       @@
             @@      %%%       @@
               @@    %%      @@
                    %%
                    %
    
    ...
    
    Content root path: C:\functions\MyFunctionProj
    Now listening on: http://0.0.0.0:7071
    Application started. Press Ctrl+C to shut down.
    
    ...
    
    Http Functions:
    
            HttpTrigger: http://localhost:7071/api/HttpTrigger
    
    [8/27/2018 10:38:27 PM] Host started (29486ms)
    [8/27/2018 10:38:27 PM] Job host started
    
  2. Másolja ki a HttpTrigger függvény URL-címét a futtatókörnyezetének kimenetéből, majd illessze be a böngészője címsorába.Copy the URL of your HttpTrigger function from the runtime output and paste it into your browser's address bar.

  3. Az URL-címhez fűzze hozzá a ?name=<yourname> lekérdezési sztringet, és hajtsa végre a kérelmet.Append the query string ?name=<yourname> to this URL and execute the request. Az alábbi képernyőfelvételen a GET kérelemre adott válasz látható, amelyet a helyi függvény a böngészőnek ad vissza:The following screenshot shows the response to the GET request that the local function returns to the browser:

    Helyi ellenőrzés a böngészőben

  4. Válassza a CTRL + C billentyűkombinációt a Function alkalmazás leállításához.Select Ctrl+C to shut down your function app.

Most, hogy már futtatta a függvényt helyben, létrehozhatja az Azure-ban a függvényalkalmazást és az egyéb szükséges erőforrásokat.Now that you have run your function locally, you can create the function app and other required resources in Azure.

Hozzon létre egy erőforráscsoportotCreate a resource group

Hozzon létre egy erőforráscsoportot az az group create paranccsal.Create a resource group with the az group create command. Az Azure-erőforráscsoport olyan logikai tároló, amelyben a rendszer üzembe helyezi és kezeli az Azure-erőforrásokat (például a függvényalkalmazásokat, az adatbázisokat és a tárfiókokat).An Azure resource group is a logical container into which Azure resources like function apps, databases, and storage accounts are deployed and managed.

A következő példában létrehozunk egy myResourceGroup nevű erőforráscsoportot.The following example creates a resource group named myResourceGroup.
Ha nem használja a Cloud Shellt, először jelentkezzen az loginbe a használatával.If you aren't using Cloud Shell, sign in first using az login.

az group create --name myResourceGroup --location westeurope

Az erőforráscsoportot és az erőforrásokat általában egy közeli régióban hozza létre.You generally create your resource group and the resources in a region near you.

Azure Storage-fiók létrehozásaCreate an Azure Storage account

A Functions szolgáltatás egy általános célú Azure Storage-fiókot használ a függvények állapotának és egyéb adatainak kezeléséhez.Functions uses a general-purpose account in Azure Storage to maintain state and other information about your functions. Az az storage account create paranccsal hozzon létre egy általános célú tárfiókot a létrehozott erőforráscsoportban.Create a general-purpose storage account in the resource group you created by using the az storage account create command.

A következő parancsban a <storage_name> helyőrző helyett írjon be egy globálisan egyedi tárfióknevét.In the following command, substitute a globally unique storage account name where you see the <storage_name> placeholder. A tárfiókok neve 3–24 karakter hosszúságú lehet, és csak számokból és kisbetűkből állhat.Storage account names must be between 3 and 24 characters in length and may contain numbers and lowercase letters only.

az storage account create --name <storage_name> --location westeurope --resource-group myResourceGroup --sku Standard_LRS

Function-alkalmazás létrehozása az Azure-banCreate a function app in Azure

A Function alkalmazás egy környezetet biztosít a függvény kódjának végrehajtásához.A function app provides an environment for executing your function code. Lehetővé teszi, hogy egyszerűbb felügyelete, üzembe helyezéséhez és erőforrás-megosztás logikai egységbe csoportosítsa a függvényeket.It lets you group functions as a logical unit for easier management, deployment, and sharing of resources.

Futtassa a következő parancsot.Run the following command. Cserélje <APP_NAME> le a függvényt egy egyedi Function app-névre.Replace <APP_NAME> with a unique function app name. Cserélje <STORAGE_NAME> le a nevet a Storage-fiók nevére.Replace <STORAGE_NAME> with a storage account name. Az <APP_NAME> egyben a függvényalkalmazás alapértelmezett DNS-tartományaként is szolgál,The <APP_NAME> is also the default DNS domain for the function app. ezért az Azure összes alkalmazásában csak egyszer használhatja.This name needs to be unique across all apps in Azure.

Megjegyzés

Nem futtathat Linux-és Windows-alkalmazásokat ugyanabban az erőforráscsoporthoz.You can't host Linux and Windows apps in the same resource group. Ha már van egy nevű myResourceGroup erőforráscsoport egy Windows-függvény alkalmazással vagy webalkalmazással, egy másik erőforráscsoportot kell használnia.If you have an existing resource group named myResourceGroup with a Windows function app or web app, you must use a different resource group.

az functionapp create --resource-group myResourceGroup --os-type Linux \
--consumption-plan-location westeurope  --runtime python \
--name <APP_NAME> --storage-account  <STORAGE_NAME>

Az előző parancs egy társított Azure Application Insights-példányt is kiépít ugyanabban az erőforráscsoporthoz.The preceding command also provisions an associated Azure Application Insights instance in the same resource group. Ezzel a példánnyal figyelheti a Function alkalmazást, és megtekintheti a naplókat.You can use this instance to monitor your function app and view logs.

Most már készen áll a helyi functions-projekt közzétételére az Azure-beli Function alkalmazásban.You're now ready to publish your local functions project to the function app in Azure.

A függvényalkalmazás projektjének üzembe helyezése az Azure-banDeploy the function app project to Azure

Miután létrehozta a Function alkalmazást az Azure-ban, használhatja a functions Azure functionapp publish Core Tools parancsot a projekt kódjának az Azure-ba történő üzembe helyezéséhez.After you create the function app in Azure, you can use the func azure functionapp publish Core Tools command to deploy your project code to Azure. Ebben a példában a helyére <APP_NAME> írja be az alkalmazás nevét.In this example, replace <APP_NAME> with the name of your app.

func azure functionapp publish <APP_NAME> --build remote

A --build remote lehetőség a Python-projektet a központi telepítési csomagban található fájlokból távolról, az Azure-ban hozza létre.The --build remote option builds your Python project remotely in Azure from the files in the deployment package.

A következő üzenethez hasonló kimenet jelenik meg.You'll see output similar to the following message. Itt csonkolt, így jobban áttekinthető:It's truncated here so you can read it better:

Getting site publishing info...
...

Preparing archive...
Uploading content...
Upload completed successfully.
Deployment completed successfully.
Syncing triggers...
Functions in myfunctionapp:
    HttpTrigger - [httpTrigger]
        Invoke url: https://myfunctionapp.azurewebsites.net/api/httptrigger?code=cCr8sAxfBiow548FBDLS1....

Az Invoke url értéketHttpTrigger átmásolhatja, és felhasználhatja az Azure-ban található függvény ellenőrzéséhez.You can copy the Invoke url value for your HttpTrigger and use it to verify your function in Azure. Az URL-cím code olyan lekérdezési karakterlánc-értéket tartalmaz, amely a függvény kulcsa, ami megnehezíti mások számára a http-trigger végpontjának meghívását az Azure-ban.The URL contains a code query string value that is your function key, which makes it difficult for others to call your HTTP trigger endpoint in Azure.

A függvény ellenőrzése az Azure-banVerify the function in Azure

A cURL használatával ellenőrizze az üzembe helyezett függvényt.Use cURL to verify the deployed function. Az előző lépésben átmásolt URL-cím (például a Function Key) használatával fűzze hozzá a lekérdezési &name=<yourname> karakterláncot az URL-címhez.Using the URL, including the function key, that you copied from the previous step, append the query string &name=<yourname> to the URL.

a cURL használatával hívja meg a függvényt az Azure-ban.

A vágólapra másolt URL-címet, beleértve a funkcióbillentyű is, a webböngésző címsorába is beillesztheti.You can also paste the copied URL, including the function key, into the address bar of your web browser. A kérés végrehajtása előtt fűzze hozzá &name=<yourname> a lekérdezési karakterláncot az URL-címhez.Again, append the query string &name=<yourname> to the URL before you execute the request.

A függvény meghívásához egy webböngészőt használjon.

Megjegyzés

A közzétett Python-alkalmazások közel valós idejű naplófájljainak megtekintéséhez használja a Application Insights élő metrikastream.To view near real-time logs for a published Python app, use the Application Insights Live Metrics Stream.

További lépésekNext steps

Létrehozott egy Python functions-projektet egy HTTP által aktivált függvénnyel, futtatta azt a helyi gépen, és üzembe helyezte az Azure-ban.You've created a Python functions project with an HTTP triggered function, run it on your local machine, and deployed it to Azure. Most terjessze ki a függvényt...Now, extend your function by...