Azure Functions-eseményindítók és -kötések – fogalmak

Ebben a cikkben a függvények eseményindítóival és kötéseivel kapcsolatos magas szintű fogalmakat ismerheti meg.

Az eseményindítók egy függvény futtatását okozzák. Az eseményindítók határozzák meg a függvények meghívásának módját, és a függvényeknek pontosan egy eseményindítóval kell rendelkezniük. A triggerekhez társított adatok tartoznak, amelyek gyakran a függvény hasznos adataiként vannak megadva.

A függvényhez kötéssel deklaratív módon csatlakoztathat egy másik erőforrást a függvényhez; a kötések bemeneti kötésként, kimeneti kötésként vagy mindkettőként kapcsolhatók össze. A kötések adatai a függvények számára paraméterekként vannak megadva.

A különböző kötéseket igény szerint kombinálhatja. A kötések opcionálisak, és egy függvény egy vagy több bemeneti, illetve kimeneti kötéssel is rendelkezhet.

Az eseményindítók és kötések segítségével elkerülheti a más szolgáltatásokhoz való hozzáférés korlátozását. A függvény függvényparaméterekben kapja meg az adatokat (például egy üzenetsor üzenetének tartalmát). 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.

Tekintse meg az alábbi példákat arra, hogyan implementálhat különböző függvényeket.

Példaforgatókönyv Eseményindító Bemeneti kötés Kimeneti kötés
Megérkezik egy új üzenetsor, amely egy függvényt futtat egy másik üzenetsorba való íráshoz. Üzenetsor* Nincs Üzenetsor*
Egy ütemezett feladat beolvassa a Blob Storage tartalmát, és létrehoz egy új Cosmos DB-dokumentumot. Időzítő Blob Storage Cosmos DB
Az Event Grid egy Blob-Storage és egy Cosmos DB-dokumentumból származó kép olvasására szolgál e-mail küldéséhez. Event Grid Blob Storage és Cosmos DB SendGrid
Egy webhook, amely a Microsoft Graph használatával frissít egy Excel lapot. HTTP Nincs Microsoft Graph

* Különböző üzenetsorokat jelöl

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.

Trigger- és kötésdefiníciók

Az eseményindítók és kötések a fejlesztési nyelvtől függően eltérően vannak meghatározva.

Nyelv Az eseményindítókat és kötéseket...
C#-osztálytár      metódusok és paraméterek dekorálása C#-attribútumokkal
Java      metódusok és paraméterek dekorálása Java-széljegyzetekkel
JavaScript/PowerShell/Python/TypeScript      function.json frissítése (séma)

A function.json fájlra támaszkodó nyelvek esetében a portál egy felhasználói felületet biztosít a kötések hozzáadásához az Integráció lapon. A fájlt közvetlenül a portálon is szerkesztheti a függvény Kód + teszt lapján. Visual Studio Code segítségével egyszerűen hozzáadhat kötést egy function.json fájlhoz a kényelmes kérések követésével.

A .NET-ben és a Java-ban a paramétertípus határozza meg a bemeneti adatok adattípusát. Használhatja például string egy üzenetsor-eseményindító szövegéhez való kötéshez, egy binárisként beolvasható bájttömbhöz, valamint egy egyéni típushoz, amely egy objektumhoz deszerializálható. Mivel a .NET-osztálytárfüggvények és a Java-függvények nem függenek a function.json fájltól a kötésdefiníciókhoz, nem hozhatók létre és nem szerkeszthetők a portálon. A C#-portál szerkesztése C#-szkripten alapul, amely attribútumok helyett function.json fájlt használ.

Ha többet szeretne megtudni arról, hogyan adhat kötéseket meglévő függvényekhez, tekintse meg Csatlakozás függvényeket az Azure-szolgáltatásokhoz kötések használatával.

A dinamikusan beírt nyelvek( például JavaScript) esetében használja a dataTypefunction.json fájlban található tulajdonságot. Ha például egy HTTP-kérelem tartalmát bináris formátumban szeretné olvasni, állítsa a dataType következőre binary:

{
    "dataType": "binary",
    "type": "httpTrigger",
    "name": "req",
    "direction": "in"
}

Egyéb lehetőségek a következőkre dataType : stream és string.

Kötés iránya

Minden eseményindító és kötés rendelkezik egy tulajdonságot direction a function.json fájlban:

  • Eseményindítók esetében az irány mindig in
  • A bemeneti és kimeneti kötések a következőt használják in : out
  • Egyes kötések speciális irányt inouttámogatnak. Ha használja inout, csak a Speciális szerkesztő érhető el a portál Integrálás lapján.

Ha egy osztálytárban attribútumokat használ az eseményindítók és kötések konfigurálásához, az irány egy attribútumkonstruktorban van megadva, vagy a paramétertípusból következtethető ki.

Kötések hozzáadása függvényhez

A függvényt más szolgáltatásokhoz is csatlakoztathatja bemeneti vagy kimeneti kötések használatával. Kötés hozzáadásához adja hozzá a saját definícióit a függvényhez. További információ: Kötések hozzáadása meglévő függvényhez Azure Functions.

Támogatott kötések

Ez a táblázat a Azure Functions futtatókörnyezet főverzióiban támogatott kötéseket mutatja be:

Típus 1.x 2.x és újabb1 Eseményindító Input (Bemenet) Kimenet
Blob Storage
Azure Cosmos DB
Azure SQL (előzetes verzió)
Dapr3
Event Grid
Event Hubs
HTTP-webhookok &
IoT Hub
Kafka2
Mobilalkalmazások
Notification Hubs
Queue Storage
RabbitMQ2
SendGrid
Szolgáltatásbusz
SignalR
Table Storage
Időzítő
Twilio

1 A 2.x-es futtatókörnyezettől kezdve a HTTP és az időzítő kivételével minden kötést regisztrálni kell. Lásd: Kötésbővítmények regisztrálása.

A használatalapú csomag nem támogatja a 2 eseményindítót. Futásidejű eseményindítókat igényel.

3 Csak a Kubernetesben, IoT Edge és más saját üzemeltetésű módokban támogatott.

További információ arról, hogy mely kötések vannak előzetes verzióban, vagy melyek engedélyezettek éles környezetben való használatra: Támogatott nyelvek.

Kötési kód példák

Az alábbi táblázat olyan konkrét kötéstípusokra mutat be példákat, amelyek bemutatják, hogyan dolgozhat kötésekkel a függvényekben. Először válassza ki a projektnek megfelelő nyelvlapot.

Szolgáltatás Példák Példák
Blob Storage Eseményindító
Bevitel
Kimenet
Hivatkozás
Azure Cosmos DB Eseményindító
Bevitel
Kimenet
Hivatkozás
Azure SQL (előzetes verzió) Bevitel
Kimenet
Hivatkozás
Event Grid Eseményindító
Kimenet
Hivatkozás
Event Hubs Eseményindító
Kimenet
IoT Hub Eseményindító
Kimenet
HTTP Eseményindító Hivatkozás
Queue Storage Eseményindító
Kimenet
Hivatkozás
RabbitMQ Eseményindító
Kimenet
SendGrid Kimenet
Service Bus Eseményindító
Kimenet
Hivatkozás
SignalR Eseményindító
Bevitel
Kimenet
Table Storage Bevitel
Kimenet
Időzítő Eseményindító Hivatkozás
Twilio Kimenet Hivatkozás

Egyéni kötések

Létrehozhat egyéni bemeneti és kimeneti kötéseket. A kötéseket a .NET-ben kell megszerkesíteni, de bármely támogatott nyelvről felhasználható. További információ az egyéni kötések létrehozásáról: Egyéni bemeneti és kimeneti kötések létrehozása.

Források

Következő lépések