Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ebben a cikkben megismerheti a függvények eseményindítóival és kötéseivel kapcsolatos magas szintű fogalmakat.
Az eseményindítók egy függvény futtatását okozzák. Az eseményindítók meghatározzák a függvények meghívásának módját, és egy függvénynek pontosan egy eseményindítóval kell rendelkeznie. Az eseményindítók a metódushívásokhoz hasonlóan adatokat is továbbíthatnak a függvénybe.
A függvényekhez való kötéssel deklaratív módon csatlakoztathatja a függvényeket más erőforrásokhoz. A kötések vagy adatokat adnak át a függvénynek ( bemeneti kötésnek), vagy lehetővé teszik az adatok írását a függvényből ( kimeneti kötésből) kötési paraméterek használatával. A függvény eseményindítója lényegében egy speciális típusú bemeneti kötés.
A kötéseket a függvény adott forgatókönyvének megfelelően kombinálhatja és egyeztetheti. A kötések nem kötelezőek, és egy függvény egy vagy több bemeneti és/vagy kimeneti kötéssel 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 a függvények implementálására:
| Példaforgatókönyv | Kiváltó | Bemeneti kötés | Kimeneti kötés |
|---|---|---|---|
| Amikor megérkezik egy új üzenet a sorba, egy függvény fut le, amely egy másik sorba ír. | Sor* | Nincs | Sor* |
| Egy ütemezett feladat beolvassa az Azure Blob Storage tartalmát, és létrehoz egy új Azure Cosmos DB-dokumentumot. | Időzítő | Blob Storage | Azure Cosmos DB |
| Az Azure Event Grid a Blob Storage-ból származó rendszerképek és az Azure Cosmos DB-ből származó dokumentumok olvasására szolgál e-mailek küldéséhez. | Event Grid | Blob Storage és Azure Cosmos DB | SendGrid |
* Különböző sorokat jelöl.
Ezek a példák nem teljes körűek, de bemutatják, hogyan használhatók együtt az eseményindítók és kötések. Az átfogóbb forgatókönyvekért tekintse meg az Azure Functions-forgatókönyveket.
Jótanács
Az Azure Functions nem követeli meg, hogy bemeneti és kimeneti kötéseket használjon az Azure-szolgáltatásokhoz való csatlakozáshoz. A kódban mindig létrehozhat egy Azure SDK-ügyfelet, és használhatja azt az adatátvitelhez. További információ: Csatlakozás a szolgáltatásokhoz.
Trigger- és kötésdefiníciók
Az alábbi példa egy HTTP által aktivált függvényt mutat be egy kimeneti kötéssel, amely üzenetet ír egy Azure Storage-üzenetsorba.
A C#-osztálytárfüggvények esetében az eseményindítókat és kötéseket metódusok és paraméterek C# attribútumokkal való dekorálásával konfigurálhatja. Az alkalmazott attribútum a C# futtatókörnyezeti modelltől függhet:
A HTTP-eseményindító (HttpTrigger) a `Run` nevű függvény `HttpExample` metódusán van definiálva, amely egy `MultiResponse` objektumot ad vissza.
[Function("HttpExample")]
public static MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req,
FunctionContext executionContext)
{
Ez a példa az objektumdefiníciót MultiResponse mutatja be. Az objektumdefiníció visszatér HttpResponse a HTTP-kéréshez, és egy üzenetet egy kötéssel QueueOutput ír egy tárolósorba.
public class MultiResponse
{
[QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
public string[] Messages { get; set; }
public HttpResponseData HttpResponse { get; set; }
}
További információért tekintse meg a C# útmutatót izolált munkavállalói modellekhez.
Az örökölt C#-szkriptfüggvények definíciós function.json fájlt használnak. További információ: Azure Functions C# szkript (.csx) fejlesztői referencia.
Java-függvények esetén az eseményindítókat és kötéseket meghatározott metódusok és paraméterek megjegyzésével konfigurálhatja. Ez a HTTP-eseményindító (@HttpTrigger) a run metóduson van definiálva a HttpTriggerQueueOutput nevű függvénynek. A függvény egy tárolási üzenetsorba ír, amelyet a @QueueOutput megjegyzés definiál a message paraméteren:
@FunctionName("HttpExample")
public HttpResponseMessage run(
@HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS)
HttpRequestMessage<Optional<String>> request,
@QueueOutput(name = "msg", queueName = "outqueue",
connection = "AzureWebJobsStorage") OutputBinding<String> msg,
final ExecutionContext context) {
context.getLogger().info("Java HTTP trigger processed a request.");
További információt a Java fejlesztői útmutatójában talál.
A Node.js függvények eseményindítóinak és kötéseinek definiálása az Azure Functions Node.js adott verziójától függ:
Az Azure Functions 4-es verziójának Node.js eseményindítókat és kötéseket konfigurálhat a @azure/functions modulból exportált objektumok használatával. További információ: Node.js fejlesztői útmutató.
Az http exportált app objektum metódusa EGY HTTP-eseményindítót határoz meg. A storageQueue metódus definiál egy kimeneti kötést ezzel az eseményindítóval output.
const { app, output } = require('@azure/functions');
const queueOutput = output.storageQueue({
queueName: 'outqueue',
connection: 'MyStorageConnectionAppSetting',
});
app.http('httpTrigger1', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
extraOutputs: [queueOutput],
handler: async (request, context) => {
const body = await request.text();
context.extraOutputs.set(queueOutput, body);
return { body: 'Created queue item.' };
},
});
Az http exportált app objektum metódusa EGY HTTP-eseményindítót határoz meg. A storageQueue metódus definiál egy kimeneti kötést ezzel az eseményindítóval output.
import { app, HttpRequest, HttpResponseInit, InvocationContext, output } from '@azure/functions';
const queueOutput = output.storageQueue({
queueName: 'outqueue',
connection: 'MyStorageConnectionAppSetting',
});
export async function httpTrigger1(request: HttpRequest, context: InvocationContext): Promise<HttpResponseInit> {
const body = await request.text();
context.extraOutputs.set(queueOutput, body);
return { body: 'Created queue item.' };
}
app.http('httpTrigger1', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
extraOutputs: [queueOutput],
handler: httpTrigger1,
});
Ez a példafájl function.json határozza meg a függvényt:
{
"authLevel": "function",
"type": "httpTrigger",
"direction": "in",
"name": "Request",
"methods": [
"get",
"post"
]
},
{
"type": "http",
"direction": "out",
"name": "Response"
},
{
"type": "queue",
"direction": "out",
"name": "msg",
"queueName": "outqueue",
"connection": "AzureWebJobsStorage"
}
]
}
További információt a PowerShell fejlesztői útmutatójában talál.
A függvény definiálásának módja az Azure Functions Python verziójától függ:
Az Azure Functions 2-es verziójához készült Pythonban a függvényt közvetlenül kódban definiálhatja dekorátorok használatával:
app = func.FunctionApp(http_auth_level=func.AuthLevel.ANONYMOUS)
@app.route(route="HttpExample")
@app.queue_output(arg_name="msg", queue_name="outqueue", connection="AzureWebJobsStorage")
def HttpExample(req: func.HttpRequest, msg: func.Out [func.QueueMessage]) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
Kötési szempontok
Nem minden szolgáltatás támogatja mind a bemeneti, mind a kimeneti kötéseket. A kötésekre vonatkozó konkrét kód példákért tekintse meg az adott kötéskiterjesztést.
Az eseményindítók és kötések a fejlesztési nyelvtől függően eltérően vannak definiálva. Ügyeljen arra, hogy a cikk tetején válassza ki a nyelvet.
Az eseményindítók és kötések neve alfanumerikus karakterekre és
_aláhúzásjelre korlátozódik.
A függvényhez kötéseket hozzáadni kívánt feladat
A függvényt bemeneti vagy kimeneti kötések használatával csatlakoztathatja más szolgáltatásokhoz. Adjon hozzá egy kötést úgy, hogy hozzáadja annak meghatározott definícióit a függvényhez. További információ: Kötések hozzáadása meglévő függvényekhez az Azure Functionsben.
Az Azure Functions több kötést is támogat, amelyeket megfelelően kell konfigurálni. A függvények például beolvashatják az adatokat egy üzenetsorból (bemeneti kötésből), és adatokat írhatnak egy adatbázisba (kimeneti kötésbe).
Támogatott kötések
Ez a táblázat az Azure Functions-futtatókörnyezet fő verzióiban támogatott kötéseket mutatja be:
| Típus | 1.x1 | 2.x és újabb2 | Kiváltó | Bemenet | Kimenet |
|---|---|---|---|---|---|
| Blob Storage | ✔ | ✔ | ✔ | ✔ | ✔ |
| Azure Cosmos DB | ✔ | ✔ | ✔ | ✔ | ✔ |
| Azure Data Explorer | ✔ | ✔ | ✔ | ||
| Azure SQL | ✔ | ✔ | ✔ | ✔ | |
| Dapr4 | ✔ | ✔ | ✔ | ✔ | |
| Event Grid | ✔ | ✔ | ✔ | ✔ | |
| Eseményközpontok | ✔ | ✔ | ✔ | ✔ | |
| HTTP- és webhookok | ✔ | ✔ | ✔ | ✔ | |
| IoT Hub | ✔ | ✔ | ✔ | ||
| Kafka3 | ✔ | ✔ | ✔ | ||
| Mobilalkalmazások | ✔ | ✔ | ✔ | ||
| Modellkörnyezeti protokoll | ✔ | ✔ | |||
| Értesítési központ | ✔ | ✔ | |||
| Sorok tárolása | ✔ | ✔ | ✔ | ✔ | |
| Redis | ✔ | ✔ | ✔ | ✔ | |
| RabbitMQ3 | ✔ | ✔ | ✔ | ||
| SendGrid | ✔ | ✔ | ✔ | ||
| Service Bus | ✔ | ✔ | ✔ | ✔ | |
| Azure SignalR Szolgáltatás | ✔ | ✔ | ✔ | ✔ | |
| Table Storage | ✔ | ✔ | ✔ | ✔ | |
| időzítő | ✔ | ✔ | ✔ | ||
| Twilio | ✔ | ✔ | ✔ |
1 AzAzure Functions-futtatókörnyezet 1.x verziójának támogatása 2026. szeptember 14-én megszűnik. Javasoljuk, hogy a teljes támogatás érdekében migrálja az alkalmazásokat a 4.x-es verzióra .
2 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: Azure Functions kötésbővítmények regisztrálása.
3 Az eseményindítók nem támogatottak a Használati tervben. Ez a kötéstípus futásidejű triggereket igényel.
4 Ez a kötéstípus csak a Kubernetesben, az Azure IoT Edge-ben és más saját üzemeltetésű módokban támogatott.
További információ arról, hogy mely bindingek vannak előzetes megtekintés alatt, vagy melyeket hagytak jóvá éles használatra, lásd a Támogatott nyelv.
A kötésbővítmények egyes verziói csak a mögöttes szolgáltatás SDK-jának támogatásával támogatottak. Az alapszolgáltatás SDK-verziójának támogatásában bekövetkező változások hatással vannak a fogyasztók által használt bővítmény támogatására.
Példakódok kötésekhez
Az alábbi táblázat segítségével találhat újabb példákat különféle kötéstípusokra, amelyek bemutatják, hogyan használhatja a kötéseket függvényeidben. Először válassza ki a projektnek megfelelő nyelvi lapot.
A C# kötéskódja az adott folyamatmodelltől függ.
| Szolgáltatás | Példák | Minták |
|---|---|---|
| Blob Storage |
Eseményindító Bemenet Kimenet |
Hivatkozás |
| Azure Cosmos DB |
Eseményindító Bemenet Kimenet |
Hivatkozás |
| Azure Data Explorer |
Bemenet Kimenet |
Hivatkozás |
| Azure SQL |
Eseményindító Bemenet 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 |
| Azure SignalR Service |
Eseményindító Bemenet Kimenet |
|
| Table Storage |
Bemenet Kimenet |
|
| Időzítő | Eseményindító | Hivatkozás |
| Twilio | Kimenet | Hivatkozás |
| Szolgáltatás | Példák | Minták |
|---|---|---|
| Blob Storage |
Eseményindító Bemenet Kimenet |
Hivatkozás |
| Azure Cosmos DB |
Eseményindító Bemenet Kimenet |
Hivatkozás |
| Azure Data Explorer |
Bemenet Kimenet |
Hivatkozás |
| Azure SQL |
Eseményindító Bemenet Kimenet |
|
| 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 |
| Azure SignalR Service |
Eseményindító Bemenet Kimenet |
|
| Table Storage |
Bemenet Kimenet |
|
| Időzítő | Eseményindító | Hivatkozás |
| Twilio | Kimenet |
| Szolgáltatás | Példák | Minták |
|---|---|---|
| Blob Storage |
Eseményindító Bemenet Kimenet |
Hivatkozás |
| Azure Cosmos DB |
Eseményindító Bemenet Kimenet |
Hivatkozás |
| Azure Data Explorer |
Bemenet Kimenet |
|
| Azure SQL |
Eseményindító Bemenet Kimenet |
Hivatkozás |
| Event Grid |
Eseményindító Kimenet |
|
| 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 |
| Azure SignalR Service |
Eseményindító Bemenet Kimenet |
|
| Table Storage |
Bemenet Kimenet |
|
| Időzítő | Eseményindító | |
| Twilio | Kimenet |
| Szolgáltatás | Példák | Minták |
|---|---|---|
| Blob Storage |
Eseményindító Bemenet Kimenet |
|
| Azure Cosmos DB |
Eseményindító Bemenet Kimenet |
|
| Azure SQL |
Eseményindító Bemenet Kimenet |
|
| Event Grid |
Eseményindító Kimenet |
|
| Event Hubs |
Eseményindító Kimenet |
|
| IoT Hub |
Eseményindító Kimenet |
|
| HTTP | Eseményindító | Hivatkozás |
| Queue Storage |
Eseményindító Kimenet |
|
| RabbitMQ |
Eseményindító Kimenet |
|
| SendGrid | Kimenet | |
| Service Bus |
Eseményindító Kimenet |
|
| Azure SignalR Service |
Eseményindító Bemenet Kimenet |
|
| Table Storage |
Bemenet Kimenet |
|
| Időzítő | Eseményindító | |
| Twilio | Kimenet |
A Python kötéskódja a Python-modell verziójától függ.
| Szolgáltatás | Példák | Minták |
|---|---|---|
| Blob Storage |
Eseményindító Bemenet Kimenet |
Hivatkozás |
| Azure Cosmos DB |
Eseményindító Bemenet Kimenet |
Hivatkozás |
| Azure Data Explorer |
Bemenet Kimenet |
|
| Azure SQL |
Eseményindító Bemenet Kimenet |
Hivatkozás |
| Event Grid |
Eseményindító Kimenet |
|
| Event Hubs |
Eseményindító Kimenet |
|
| IoT Hub |
Eseményindító Kimenet |
|
| HTTP | Eseményindító | Hivatkozás |
| Queue Storage |
Eseményindító Kimenet |
|
| RabbitMQ |
Eseményindító Kimenet |
|
| SendGrid | Kimenet | |
| Service Bus |
Eseményindító Kimenet |
Hivatkozás |
| Azure SignalR Service |
Eseményindító Bemenet Kimenet |
|
| Table Storage |
Bemenet Kimenet |
|
| Időzítő | Eseményindító | |
| Twilio | Kimenet |
Egyéni kötések
Létrehozhat egyéni bemeneti és kimeneti kötéseket. A kötéseket a .NET-ben kell használni, de bármely támogatott nyelvről felhasználhatók. 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.