Azure Functions-eseményindítók és -kötések – fogalmakAzure Functions triggers and bindings concepts
Ebből a cikkből megtudhatja, hogy milyen magas szintű fogalmakat indít a functions-eseményindítók és-kötések.In this article you learn the high-level concepts surrounding functions triggers and bindings.
Az eseményindítók a függvény futtatását okozzák.Triggers are what cause a function to run. Egy eseményindító határozza meg a függvény meghívásának módját, és a függvénynek pontosan egy eseményindítóval kell rendelkeznie.A trigger defines how a function is invoked and a function must have exactly one trigger. A triggerekhez társított adatok tartoznak, amelyek gyakran a függvény hasznos adataiként vannak megadva.Triggers have associated data, which is often provided as the payload of the function.
A függvények kötése egy másik erőforrás a függvényhez való deklaratív csatlakoztatásának módja. a kötések bemeneti Kötésként, kimeneti Kötésként vagy mindkettőként is csatlakoztathatók.Binding to a function is a way of declaratively connecting another resource to the function; bindings may be connected as input bindings, output bindings, or both. A kötések adatai a függvények számára paraméterekként vannak megadva.Data from bindings is provided to the function as parameters.
A különböző kötéseket igény szerint kombinálhatja.You can mix and match different bindings to suit your needs. A kötések opcionálisak, és egy függvény egy vagy több bemeneti, illetve kimeneti kötéssel is rendelkezhet.Bindings are optional and a function might have one or multiple input and/or output bindings.
Az eseményindítók és kötések lehetővé teszik a más szolgáltatásokhoz való rögzítjük való hozzáférés elkerülését.Triggers and bindings let you avoid hardcoding access to other services. A függvény függvényparaméterekben kapja meg az adatokat (például egy üzenetsor üzenetének tartalmát).Your function receives data (for example, the content of a queue message) in function parameters. Az adatokat (például egy üzenetsor üzenetének tartalmát) a függvény által visszaadott értékek használatával küldheti el.You send data (for example, to create a queue message) by using the return value of the function.
Tekintse át az alábbi példákat a különböző függvények megvalósítására.Consider the following examples of how you could implement different functions.
PéldaforgatókönyvExample scenario | EseményindítóTrigger | Bemeneti kötésInput binding | Kimeneti kötésOutput binding |
---|---|---|---|
Egy új üzenetsor-üzenet érkezik, amely egy függvény futtatásával ír egy másik várólistára.A new queue message arrives which runs a function to write to another queue. | Várólista*Queue* | NincsNone | Várólista*Queue* |
Az ütemezett feladatok beolvassák Blob Storage tartalmát, és létrehoz egy új Cosmos DB dokumentumot.A scheduled job reads Blob Storage contents and creates a new Cosmos DB document. | IdőzítőTimer | Blob StorageBlob Storage | Cosmos DBCosmos DB |
A Event Grid egy rendszerképet olvas be a Blob Storageról, és a Cosmos DB dokumentumból küld e-mailt.The Event Grid is used to read an image from Blob Storage and a document from Cosmos DB to send an email. | Event GridEvent Grid | Blob Storage és Cosmos DBBlob Storage and Cosmos DB | SendGridSendGrid |
Egy webhook, amely Microsoft Grapht használ az Excel-lapok frissítéséhez.A webhook that uses Microsoft Graph to update an Excel sheet. | HTTPHTTP | NincsNone | Microsoft GraphMicrosoft Graph |
* Különböző várólistákat jelöl* Represents different queues
Ezek a példák nem teljes körűek, de az eseményindítók és kötések együttes használatának szemléltetésére szolgálnak.These examples are not meant to be exhaustive, but are provided to illustrate how you can use triggers and bindings together.
Trigger-és kötési definíciókTrigger and binding definitions
Az eseményindítók és kötések a fejlesztési nyelvtől függően eltérő módon vannak definiálva.Triggers and bindings are defined differently depending on the development language.
NyelvLanguage | Az eseményindítók és kötések konfigurálása...Triggers and bindings are configured by... |
---|---|
C# osztály könyvtáraC# class library | díszítő módszerek és paraméterek C#-attribútumokkal decorating methods and parameters with C# attributes |
JavaJava | díszítő módszerek és paraméterek Java-megjegyzésekkel decorating methods and parameters with Java annotations |
JavaScript/PowerShell/Python/írógéppelJavaScript/PowerShell/Python/TypeScript | function.js frissítése (séma) updating function.json (schema) |
Az function.js-on alapuló nyelveken a portál a kötések hozzáadására szolgáló felhasználói felületet biztosít az integráció lapon. A fájlt közvetlenül a portálon is szerkesztheti a függvény kód + teszt lapján.For languages that rely on function.json, the portal provides a UI for adding bindings in the Integration tab. You can also edit the file directly in the portal in the Code + test tab of your function. A Visual Studio Code segítségével egyszerűen adhat hozzá egy kötést egy function.jsfájlhoz , ha a promptok kényelmes készletét követi.Visual Studio Code lets you easily add a binding to a function.json file by following a convenient set of prompts.
A .NET-ben és a Java-ban a paraméter típusa határozza meg a bemeneti adatok adattípusát.In .NET and Java, the parameter type defines the data type for input data. Például a paranccsal string
kötést lehet létrehozni egy üzenetsor-trigger, egy bájtos tömb, amely bináris fájlként olvasható, valamint egy objektumra deszerializálható egyéni típus.For instance, use string
to bind to the text of a queue trigger, a byte array to read as binary, and a custom type to de-serialize to an object. Mivel a .NET-osztály függvénytár-függvények és a Java-függvények nem a kötési definíciók function.jsra támaszkodnak, nem hozhatók létre és nem szerkeszthetők a portálon.Since .NET class library functions and Java functions don't rely on function.json for binding definitions, they can't be created and edited in the portal. A c#-portál szerkesztése C#-parancsfájlon alapul, amely az attribútumok helyett function.jst használ.C# portal editing is based on C# script, which uses function.json instead of attributes.
A kötések meglévő függvényekbe való hozzáadásával kapcsolatos további információkért lásd: függvények összekapcsolását az Azure-szolgáltatásokhoz kötések használatával.To learn more about how to adding bindings to existing functions, see Connect functions to Azure services using bindings.
A dinamikusan beírt nyelvek (például JavaScript) esetében használja a dataType
function.js fájljában található tulajdonságot.For languages that are dynamically typed such as JavaScript, use the dataType
property in the function.json file. Ha például bináris formátumban szeretné beolvasni egy HTTP-kérelem tartalmát, állítsa a következőre dataType
binary
:For example, to read the content of an HTTP request in binary format, set dataType
to binary
:
{
"dataType": "binary",
"type": "httpTrigger",
"name": "req",
"direction": "in"
}
A és a további beállításai dataType
stream
string
.Other options for dataType
are stream
and string
.
Kötési irányBinding direction
Minden eseményindító és kötés rendelkezik egy direction
tulajdonsággal a (z) function.js fájlban:All triggers and bindings have a direction
property in the function.json file:
- Az eseményindítók esetében az irány mindig
in
For triggers, the direction is alwaysin
- A bemeneti és kimeneti kötések használata
in
ésout
Input and output bindings usein
andout
- Egyes kötések speciális irányt támogatnak
inout
.Some bindings support a special directioninout
. A használata eseténinout
csak a speciális szerkesztő érhető el a portál integrálás lapján.If you useinout
, only the Advanced editor is available via the Integrate tab in the portal.
Ha az attribútumokat egy osztály-függvénytárban konfigurálja az eseményindítók és kötések konfigurálásához, az irány egy attribútum konstruktorában van megadva, vagy a paraméter típusa alapján következtethető ki.When you use attributes in a class library to configure triggers and bindings, the direction is provided in an attribute constructor or inferred from the parameter type.
Kötések hozzáadása egy függvényhezAdd bindings to a function
A függvényt a bemeneti vagy kimeneti kötések használatával más szolgáltatásokhoz is összekapcsolhatjuk.You can connect your function to other services by using input or output bindings. Adja hozzá a kötést úgy, hogy hozzáadja a függvényhez tartozó konkrét definíciókat.Add a binding by adding its specific definitions to your function. További információ: kötések hozzáadása meglévő függvényhez Azure functions.To learn how, see Add bindings to an existing function in Azure Functions.
Támogatott kötésekSupported bindings
Ez a táblázat a Azure Functions futtatókörnyezet főbb verzióiban támogatott kötéseket mutatja be:This table shows the bindings that are supported in the major versions of the Azure Functions runtime:
TípusType | 1. x1.x | 2. x és újabb12.x and higher1 | EseményindítóTrigger | Input (Bemenet)Input | KimenetOutput |
---|---|---|---|---|---|
Blob StorageBlob storage | ✔✔ | ✔✔ | ✔✔ | ✔✔ | ✔✔ |
Azure Cosmos DBAzure Cosmos DB | ✔✔ | ✔✔ | ✔✔ | ✔✔ | ✔✔ |
3 . DaprDapr3 | ✔✔ | ✔✔ | ✔✔ | ✔✔ | |
Event GridEvent Grid | ✔✔ | ✔✔ | ✔✔ | ✔✔ | |
Event HubsEvent Hubs | ✔✔ | ✔✔ | ✔✔ | ✔✔ | |
HTTP & webhookokHTTP & webhooks | ✔✔ | ✔✔ | ✔✔ | ✔✔ | |
IoT HubIoT Hub | ✔✔ | ✔✔ | ✔✔ | ✔✔ | |
Kafka2Kafka2 | ✔✔ | ✔✔ | ✔✔ | ||
Mobile AppsMobile Apps | ✔✔ | ✔✔ | ✔✔ | ||
Notification HubsNotification Hubs | ✔✔ | ✔✔ | |||
Queue StorageQueue storage | ✔✔ | ✔✔ | ✔✔ | ✔✔ | |
2 . RabbitMQRabbitMQ2 | ✔✔ | ✔✔ | ✔✔ | ||
SendGridSendGrid | ✔✔ | ✔✔ | ✔✔ | ||
SzolgáltatásbuszService Bus | ✔✔ | ✔✔ | ✔✔ | ✔✔ | |
SignalRSignalR | ✔✔ | ✔✔ | ✔✔ | ||
Table StorageTable storage | ✔✔ | ✔✔ | ✔✔ | ✔✔ | |
IdőzítőTimer | ✔✔ | ✔✔ | ✔✔ | ||
TwilioTwilio | ✔✔ | ✔✔ | ✔✔ |
1 a 2. x verziótól kezdődően a http és az időzítő kivételével minden kötést regisztrálni kell.1 Starting with the version 2.x runtime, all bindings except HTTP and Timer must be registered. Lásd: kötési bővítmények regisztrálása.See Register binding extensions.
2 eseményindító nem támogatott a használati tervben.2 Triggers aren't supported in the Consumption plan. Futtatókörnyezet által vezérelt eseményindítókszükségesek.Requires runtime-driven triggers.
3 csak Kubernetes, IoT Edge és más, saját üzemeltetésű módban támogatott.3 Supported only in Kubernetes, IoT Edge, and other self-hosted modes only.
További információ arról, hogy mely kötések érhetők el előzetes verzióban, vagy hogy a rendszer az éles használatra jóváhagyja a támogatott nyelveket.For information about which bindings are in preview or are approved for production use, see Supported languages.
Példák a kötések kódjáraBindings code examples
A következő táblázat példákat mutat be bizonyos kötési típusokra, amelyek bemutatják, hogyan használhatók a függvények kötései.Use the following table to find examples of specific binding types that show you how to work with bindings in your functions. Először válassza ki a projektnek megfelelő nyelv fület.First, choose the language tab that corresponds to your project.
SzolgáltatásService | PéldákExamples | PéldákSamples |
---|---|---|
Blob StorageBlob storage | EseményindítóTrigger BevitelInput KimenetOutput |
HivatkozásLink |
Azure Cosmos DBAzure Cosmos DB | EseményindítóTrigger BevitelInput KimenetOutput |
HivatkozásLink |
Event GridEvent Grid | EseményindítóTrigger KimenetOutput |
HivatkozásLink |
Event HubsEvent Hubs | EseményindítóTrigger KimenetOutput |
|
IoT HubIoT Hub | EseményindítóTrigger KimenetOutput |
|
HTTPHTTP | EseményindítóTrigger | HivatkozásLink |
Queue StorageQueue storage | EseményindítóTrigger KimenetOutput |
HivatkozásLink |
RabbitMQRabbitMQ | EseményindítóTrigger KimenetOutput |
|
SendGridSendGrid | KimenetOutput | |
Service BusService Bus | EseményindítóTrigger KimenetOutput |
HivatkozásLink |
SignalRSignalR | EseményindítóTrigger BevitelInput KimenetOutput |
|
Table StorageTable storage | BevitelInput KimenetOutput |
|
IdőzítőTimer | EseményindítóTrigger | HivatkozásLink |
TwilioTwilio | KimenetOutput | HivatkozásLink |
Egyéni kötésekCustom bindings
Létrehozhat egyéni bemeneti és kimeneti kötéseket is.You can create custom input and output bindings. A kötéseket a .NET-ben kell létrehozni, de bármilyen támogatott nyelvről felhasználhatók.Bindings must be authored in .NET, but can be consumed from any supported language. Az egyéni kötések létrehozásával kapcsolatos további információkért lásd: Egyéni bemeneti és kimeneti kötések létrehozása.For more information about creating custom bindings, see Creating custom input and output bindings.
ForrásokResources
- Kötési kifejezések és mintákBinding expressions and patterns
- Az Azure Function Return értékének használataUsing the Azure Function return value
- Kötési kifejezés regisztrálásaHow to register a binding expression
- VizsgálatTesting:
- Kötési hibák feldolgozásaHandling binding errors