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áljainout, 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ötési kifejezések és minták
- Az Azure-függvény visszatérési értékének használata
- Kötési kifejezés regisztrálása
- Vizsgálat:
- Kötési hibák kezelése