Azure Functions fejlesztői útmutatóAzure Functions developers guide

Azure Functions az egyes függvények a használt nyelvtől vagy kötéstől függetlenül megosztanak néhány alapvető műszaki fogalmat és összetevőt.In Azure Functions, specific functions share a few core technical concepts and components, regardless of the language or binding you use. Mielőtt beolvassa az adott nyelvre vagy kötésre vonatkozó tanulási adatokat, olvassa el ezt az áttekintést, amely az összesre vonatkozik.Before you jump into learning details specific to a given language or binding, be sure to read through this overview that applies to all of them.

Ez a cikk azt feltételezi, hogy már elolvasta a Azure functions áttekintését.This article assumes that you've already read the Azure Functions overview.

Függvény kódjaFunction code

A függvény a Azure functions elsődleges fogalma.A function is the primary concept in Azure Functions. A függvény két fontos darabot tartalmaz: a kódot, amely különböző nyelveken, valamint néhány konfigurációban, a function. JSON fájlban is megírható.A function contains two important pieces - your code, which can be written in a variety of languages, and some config, the function.json file. A lefordított nyelvek esetében ez a konfigurációs fájl automatikusan létrejön a kódban szereplő jegyzetekből.For compiled languages, this config file is generated automatically from annotations in your code. A programozási nyelvek esetében saját magának kell megadnia a konfigurációs fájlt.For scripting languages, you must provide the config file yourself.

A function. JSON fájl határozza meg a függvény triggerét, kötéseit és egyéb konfigurációs beállításait.The function.json file defines the function's trigger, bindings, and other configuration settings. Minden függvénynek van egy és csak egy triggere.Every function has one and only one trigger. A futtatókörnyezet ezt a konfigurációs fájlt használja a figyelni kívánt események meghatározásához, valamint az adatoknak a függvény végrehajtásának és az adatok visszaadásának módját.The runtime uses this config file to determine the events to monitor and how to pass data into and return data from a function execution. A következő példa egy function. JSON fájlt mutat be.The following is an example function.json file.

{
    "disabled":false,
    "bindings":[
        // ... bindings here
        {
            "type": "bindingType",
            "direction": "in",
            "name": "myParamName",
            // ... more depending on binding
        }
    ]
}

További információ: Azure functions triggerek és kötések fogalmai.For more information, see Azure Functions triggers and bindings concepts.

A bindings tulajdonság az eseményindítók és kötések konfigurálására szolgál.The bindings property is where you configure both triggers and bindings. Az egyes kötések néhány gyakori beállítást és néhány olyan beállítást is megosztanak, amelyek egy adott típusú kötésre vonatkoznak.Each binding shares a few common settings and some settings which are specific to a particular type of binding. Minden kötéshez a következő beállítások szükségesek:Every binding requires the following settings:

TulajdonságProperty Értékek/típusokValues/Types MegjegyzésekComments
type Karakterláncstring Kötés típusaBinding type. Például: queueTrigger.For example, queueTrigger.
direction "in", "out"'in', 'out' Azt jelzi, hogy a kötés az adatoknak a függvénybe való fogadására vagy adatok küldésére szolgál.Indicates whether the binding is for receiving data into the function or sending data from the function.
name Karakterláncstring A függvényben a kötött adathoz használt név.The name that is used for the bound data in the function. Esetében C#ez egy argumentum neve; JavaScript esetén a kulcs/érték lista kulcsa.For C#, this is an argument name; for JavaScript, it's the key in a key/value list.

FüggvényalkalmazásFunction app

A Function alkalmazás végrehajtási környezetet biztosít az Azure-ban, amelyben a függvények futnak.A function app provides an execution context in Azure in which your functions run. Ennek megfelelően a függvények üzembe helyezésének és felügyeletének egysége.As such, it is the unit of deployment and management for your functions. A Function alkalmazás egy vagy több olyan önálló függvényből áll, amelyek kezelése, üzembe helyezése és méretezése együtt történik.A function app is comprised of one or more individual functions that are managed, deployed, and scaled together. A functions-alkalmazás összes funkciója ugyanazzal az árképzési csomaggal, telepítési módszerrel és futtatókörnyezet-verzióval rendelkezik.All of the functions in a function app share the same pricing plan, deployment method, and runtime version. Úgy képzelheti el, hogy egy Function-alkalmazás a függvények rendszerezésére és közös kezelésére szolgál.Think of a function app as a way to organize and collectively manage your functions. További információt a Function app kezelésecímű témakörben talál.To learn more, see How to manage a function app.

Megjegyzés

A Function app összes függvényét ugyanabba a nyelvre kell létrehozni.All functions in a function app must be authored in the same language. A Azure Functions futtatókörnyezet korábbi verzióiban ez nem volt szükséges.In previous versions of the Azure Functions runtime, this wasn't required.

Mappa szerkezeteFolder structure

A kód egy egyedi függvényalkalmazás a függvények a projekt gyökérmappájában, amely tartalmaz egy gazdagép konfigurációs fájlt, és a egy vagy több almappában található.The code for all the functions in a specific function app is located in a root project folder that contains a host configuration file and one or more subfolders. Minden egyes külön funkció a kódját tartalmazza.Each subfolder contains the code for a separate function. A mappastruktúra a következő ábrázolása látható:The folder structure is shown in the following representation:

FunctionApp
 | - host.json
 | - Myfirstfunction
 | | - function.json
 | | - ...  
 | - mysecondfunction
 | | - function.json
 | | - ...  
 | - SharedCode
 | - bin

A verzió 2.x verzióját a Functions-futtatókörnyezet, a függvényalkalmazás a függvények az azonos nyelvi modult meg kell osztani.In version 2.x of the Functions runtime, all functions in the function app must share the same language stack.

A host.json fájl futtatókörnyezet-specifikus konfigurációkat tartalmaz, és a függvényalkalmazás gyökérmappájában található.The host.json file contains runtime-specific configurations and is in the root folder of the function app. A bin mappa tartalmazza a csomagok és más függvénytárfájlok, amely a függvényalkalmazáshoz szükség van.A bin folder contains packages and other library files that the function app requires. Tekintse meg a függvényalkalmazás-projekt nyelvspecifikus követelményei:See the language-specific requirements for a function app project:

A fenti az alapértelmezett (és ajánlott) mappa szerkezete egy Function alkalmazáshoz.The above is the default (and recommended) folder structure for a Function app. Ha módosítani szeretné egy függvény kódjának helyét, módosítsa scriptFile a function. JSON fájl szakaszát.If you wish to change the file location of a function's code, modify the scriptFile section of the function.json file. Javasoljuk továbbá, hogy a csomag központi telepítését a projekt Azure-beli Function-alkalmazásba történő üzembe helyezéséhez használja.We also recommend using package deployment to deploy your project to your function app in Azure. Meglévő eszközöket is használhat, például a folyamatos integrációt és üzembe helyezést , valamint az Azure-DevOps.You can also use existing tools like continuous integration and deployment and Azure DevOps.

Megjegyzés

Ha manuálisan telepíti a csomagot, ügyeljen arra, hogy a gazdagép. JSON fájlját és a függvény mappáit közvetlenül wwwroot a mappába telepítse.If deploying a package manually, make sure to deploy your host.json file and function folders directly to the wwwroot folder. Ne adja meg a wwwroot mappát a központi telepítések között.Do not include the wwwroot folder in your deployments. Ellenkező esetben a wwwroot\wwwroot mappákkal végződik.Otherwise, you end up with wwwroot\wwwroot folders.

Helyi eszközök használata és közzétételUse local tools and publishing

A Function apps különböző eszközökkel, például a Visual Studióval, a Visual Studio Code, a IntelliJ, az Eclipseés a Azure functions Core Toolshasználatával hozhatók létre és tehetők közzé.Function apps can be authored and published using a variety of tools, including Visual Studio, Visual Studio Code, IntelliJ, Eclipse, and the Azure Functions Core Tools. További információ: code and test Azure functions helyileg.For more information, see Code and test Azure Functions locally.

Függvények szerkesztése a Azure PortalbanHow to edit functions in the Azure portal

A Azure Portal beépített functions-szerkesztő lehetővé teszi a kód és a function. JSON fájl közvetlen beépítését.The Functions editor built into the Azure portal lets you update your code and your function.json file directly inline. Ez csak kis-és nagymértékű módosítások esetén ajánlott, a legjobb megoldás az, ha egy helyi fejlesztési eszközt használ, például a VS Code-ot.This is recommended only for small changes or proofs of concept - best practice is to use a local development tool like VS Code.

Párhuzamos végrehajtásParallel execution

Ha több kiváltó esemény is gyorsabb, mint egy egyszálas függvény futtatókörnyezete, akkor a futtatókörnyezet párhuzamosan többször is meghívhatja a függvényt.When multiple triggering events occur faster than a single-threaded function runtime can process them, the runtime may invoke the function multiple times in parallel. Ha egy Function alkalmazás használja a használati üzemeltetési csomagot, akkor a Function alkalmazás automatikusan felskálázásra kerül.If a function app is using the Consumption hosting plan, the function app could scale out automatically. A Function alkalmazás minden példánya, függetlenül attól, hogy az alkalmazás fut-e a használati üzemeltetési csomagon vagy egy normál app Service üzemeltetési csomagon, az egyidejű függvények párhuzamos használatát több szálon is feldolgozhatja.Each instance of the function app, whether the app runs on the Consumption hosting plan or a regular App Service hosting plan, might process concurrent function invocations in parallel using multiple threads. Az egyes functions-példányokban az egyidejű függvények maximális száma a használt trigger típusától, valamint a Function alkalmazásban a más függvények által használt erőforrásoktól függően változhat.The maximum number of concurrent function invocations in each function app instance varies based on the type of trigger being used as well as the resources used by other functions within the function app.

Függvények futtatókörnyezetének verziószámozásaFunctions runtime versioning

A functions futtatókörnyezet verzióját az FUNCTIONS_EXTENSION_VERSION Alkalmazásbeállítások használatával állíthatja be.You can configure the version of the Functions runtime using the FUNCTIONS_EXTENSION_VERSION app setting. A "~ 2" érték például azt jelzi, hogy a függvényalkalmazás a főverzióként 2. x-et fog használni.For example, the value "~2" indicates that your Function App will use 2.x as its major version. A Function apps minden új alverzióra frissül, amint azok megjelentek.Function Apps are upgraded to each new minor version as they are released. További információt, többek között a Function app pontos verziójának megtekintését lásd: Azure functions futtatókörnyezet verzióinakmegcélzása.For more information, including how to view the exact version of your function app, see How to target Azure Functions runtime versions.

TárházakRepositories

A Azure Functions kódja nyílt forráskódú, és a GitHub-adattárakban tárolódik:The code for Azure Functions is open source and stored in GitHub repositories:

KötésekBindings

Itt látható az összes támogatott kötés táblázata.Here is a table of all supported bindings.

Az alábbi táblázat a kötések az Azure Functions runtime két fő verziói által támogatott.The following table shows the bindings that are supported in the two major versions of the Azure Functions runtime.

TípusType 1.x1.x 2.x12.x1 EseményindítóTrigger Input (Bemenet)Input KimenetOutput
Blob StorageBlob Storage
Cosmos DBCosmos DB
Event GridEvent Grid
Event HubsEvent Hubs
A HTTP és WebhookokHTTP & Webhooks
A Microsoft Graph
Excel-táblák
Microsoft Graph
Excel tables
A Microsoft Graph
OneDrive-fájlok
Microsoft Graph
OneDrive files
A Microsoft Graph
Outlookos e-mail cím
Microsoft Graph
Outlook email
A Microsoft Graph
események
Microsoft Graph
Events
A Microsoft Graph
hitelesítési jogkivonatok
Microsoft Graph
Auth tokens
Mobile AppsMobile Apps
Értesítési központNotification Hubs
Queue StorageQueue storage
SendGridSendGrid
SzolgáltatásbuszService Bus
SignalRSignalR
Table StorageTable storage
IdőzítőTimer
TwilioTwilio

1 2.x, HTTP- és időzítő kivételével az összes kötések kell regisztrálni.1 In 2.x, all bindings except HTTP and Timer must be registered. Lásd: regisztrálja a kötési bővítményeket.See Register binding extensions.

Problémák léptek fel a kötésekkel kapcsolatos hibákkal kapcsolatban?Having issues with errors coming from the bindings? Tekintse át a Azure functions kötési hibakódok dokumentációját.Review the Azure Functions Binding Error Codes documentation.

Jelentéskészítési problémákReporting Issues

ElemItem LeírásDescription HivatkozásLink
FuttatókörnyezetRuntime Script Host, eseményindítók és kötések, nyelvi támogatásScript Host, Triggers & Bindings, Language Support Egy problémátFile an Issue
SablonokTemplates Létrehozás sablon kód problémáiCode Issues with Creation Template Egy problémátFile an Issue
PortálPortal Felhasználói felület vagy a felhasználói élményt problémaUser Interface or Experience Issue Egy problémátFile an Issue

További lépésekNext steps

További információkért lásd a következőket:For more information, see the following resources: