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óit és kötéseit körülvevő magas szintű fogalmakat.
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 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ényhez 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énybe ( bemeneti kötés), 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.
Különböző kapcsolatokat vagy összekötéseket tetszés szerint kombinálhat, hogy illeszkedjen a függvény adott forgatókönyvéhez. 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 | Kiváltó | 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. | Sor* | Nincs | Sor* |
Egy ütemezett feladat beolvassa a Blob Storage tartalmát, és létrehoz egy új Azure Cosmos DB-dokumentumot. | Időzítő | Blob-tárhely | Azure Cosmos DB (adatbázis) |
Az Event Grid a Blob Storage-ból származó kép és az Azure Cosmos DB-ből származó dokumentumok olvasására szolgál e-mail küldéséhez. | Eseményhálózat | Blob Storage és Azure Cosmos DB | SendGrid |
* Különböző sorokat jelöl
Ezek a példák nem a teljesség igényével, hanem az eseményindítók és kötések együttes használatának szemléltetésére szolgálnak. Az átfogóbb forgatókönyvekért tekintse meg az Azure Functions-forgatókönyveket.
Jótanács
A függvényekhez nem szükséges bemeneti és kimeneti kötéseket használnia 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
Egy függvény egyetlen eseményindítóval és egy vagy több kötéssel rendelkezik. A kötés típusa bemenet vagy kimenet. Nem minden szolgáltatás támogatja mind a bemeneti, mind a kimeneti kötéseket. Konkrét kötéskód-példákért tekintse meg az adott kötésbővítményt.
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.
Ez a példa egy HTTP által aktivált függvényt mutat be egy kimeneti kötéssel, amely üzenetet ír egy Azure Storage-üzenetsorba.
C#-osztálytárfüggvények esetén az eseményindítók és kötések c# attribútumokkal rendelkező dekorálási metódusokkal és paraméterekkel vannak konfigurálva, ahol 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 azt az MultiResponse
objektumdefiníciót mutatja be, amely visszaad egy HttpResponse
a HTTP-kérésnek, és egy QueueOutput
kötés segítségével ír egy üzenetet a tárolói sorba.
public class MultiResponse
{
[QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
public string[] Messages { get; set; }
public HttpResponseData HttpResponse { get; set; }
}
További információkért tekintse meg a C# izolált feldolgozómodell-útmutatót.
Az örökölt C#-szkriptfüggvények function.json definíciós 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ók és kötések adott metódusok és paraméterek megjegyzésével vannak konfigurálva. Ez a HTTP-eseményindító (@HttpTrigger
) a run
nevű függvény HttpTriggerQueueOutput
metódusán van definiálva, amely a @QueueOutput
paraméter message
megjegyzése által meghatározott tárolási üzenetsorba ír.
@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.
Az eseményindítók és a kötések Node.js függvényekhez való definiálásának módja a Függvények Node.js adott verziójától függ:
A 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ó.
Ez a példa egy HTTP által aktivált függvény, amely minden fogadott HTTP-kéréshez létrehoz egy üzenetsor-elemet.
Az http
exportált app
objektum metódusa egy HTTP-eseményindítót határoz meg, a storageQueue
metódus output
pedig egy kimeneti kötést határoz meg ezen az eseményindítón.
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 output
pedig egy kimeneti kötést határoz meg ezen az eseményindítón.
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 a Python for Functions verziójától függ:
A Python for Functions 2-es verziójában a függvényt közvetlenül kódban definiálja 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ések hozzáadása függvényhez
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 magasabb2 | Kiváltó | Bemenet | Kimenet |
---|---|---|---|---|---|
Blob-tároló | ✔ | ✔ | ✔ | ✔ | ✔ |
Azure Cosmos DB | ✔ | ✔ | ✔ | ✔ | ✔ |
Azure Data Explorer | ✔ | ✔ | ✔ | ||
Azure SQL | ✔ | ✔ | ✔ | ✔ | |
Dapr4 | ✔ | ✔ | ✔ | ✔ | |
Event Grid | ✔ | ✔ | ✔ | ✔ | |
Event Hubs | ✔ | ✔ | ✔ | ✔ | |
HTTP > webhookok | ✔ | ✔ | ✔ | ✔ | |
IoT Hub | ✔ | ✔ | ✔ | ||
Kafka3 | ✔ | ✔ | ✔ | ||
Mobilalkalmazások | ✔ | ✔ | ✔ | ||
Értesítési központ | ✔ | ✔ | |||
Sor tároló | ✔ | ✔ | ✔ | ✔ | |
Redis | ✔ | ✔ | ✔ | ✔ | |
RabbitMQ3 | ✔ | ✔ | ✔ | ||
SendGrid | ✔ | ✔ | ✔ | ||
Service Bus | ✔ | ✔ | ✔ | ✔ | |
SignalR | ✔ | ✔ | ✔ | ✔ | |
Táblatár | ✔ | ✔ | ✔ | ✔ | |
időzítő | ✔ | ✔ | ✔ | ||
Twilio | ✔ | ✔ | ✔ |
Megjegyzések:
- Az Azure 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 .
- 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 triggerek nem támogatottak a Fogyasztási tervben. Futásidejű eseményindítókat igényel.
- Csak a Kubernetesben, az 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.
Az egyes kötésbővítmény-verziók csak akkor támogatottak, ha a mögöttes szolgáltatás SDK támogatott. 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.
Kód példák kötésekről
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-tároló |
Eseményindító Bemenet Kimenet |
Hivatkozás |
Azure Cosmos DB (adatbázis) |
Eseményindító Bemenet Kimenet |
Hivatkozás |
Azure Adatböngésző |
Bemenet Kimenet |
Hivatkozás |
Azure SQL |
Eseményindító Bemenet Kimenet |
Hivatkozás |
Eseményhálózat |
Eseményindító Kimenet |
Hivatkozás |
Event Hubs |
Eseményindító Kimenet |
|
IoT Hub |
Eseményindító Kimenet |
|
HTTP | Eseményindító | Hivatkozás |
Sor tárolás |
Eseményindító Kimenet |
Hivatkozás |
RabbitMQ |
Eseményindító Kimenet |
|
SendGrid | Kimenet | |
Szolgáltatási Busz |
Eseményindító Kimenet |
Hivatkozás |
SignalR |
Eseményindító Bemenet Kimenet |
|
Táblatároló |
Bemenet Kimenet |
|
Időzítő | Eseményindító | Hivatkozás |
Twilio | Kimenet | Hivatkozás |
Szolgáltatás | Példák | Minták |
---|---|---|
Blob-tároló |
Eseményindító Bemenet Kimenet |
Hivatkozás |
Azure Cosmos DB (adatbázis) |
Eseményindító Bemenet Kimenet |
Hivatkozás |
Azure Adatböngésző |
Bemenet Kimenet |
Hivatkozás |
Azure SQL |
Eseményindító Bemenet Kimenet |
|
Eseményhálózat |
Eseményindító Kimenet |
Hivatkozás |
Event Hubs |
Eseményindító Kimenet |
|
IoT Hub |
Eseményindító Kimenet |
|
HTTP | Eseményindító | Hivatkozás |
Sor tárolás |
Eseményindító Kimenet |
Hivatkozás |
RabbitMQ |
Eseményindító Kimenet |
|
SendGrid | Kimenet | |
Szolgáltatási Busz |
Eseményindító Kimenet |
Hivatkozás |
SignalR |
Eseményindító Bemenet Kimenet |
|
Táblatároló |
Bemenet Kimenet |
|
Időzítő | Eseményindító | Hivatkozás |
Twilio | Kimenet | Hivatkozás |
Szolgáltatás | Példák | Minták |
---|---|---|
Blob-tároló |
Eseményindító Bemenet Kimenet |
Hivatkozás |
Azure Cosmos DB (adatbázis) |
Eseményindító Bemenet Kimenet |
Hivatkozás |
Azure Adatböngésző |
Bemenet Kimenet |
|
Azure SQL |
Eseményindító Bemenet Kimenet |
Hivatkozás |
Eseményhálózat |
Eseményindító Kimenet |
Hivatkozás |
Event Hubs |
Eseményindító Kimenet |
|
IoT Hub |
Eseményindító Kimenet |
|
HTTP | Eseményindító | Hivatkozás |
Sor tárolás |
Eseményindító Kimenet |
Hivatkozás |
RabbitMQ |
Eseményindító Kimenet |
|
SendGrid | Kimenet | |
Szolgáltatási Busz |
Eseményindító Kimenet |
Hivatkozás |
SignalR |
Eseményindító Bemenet Kimenet |
|
Táblatároló |
Bemenet Kimenet |
|
Időzítő | Eseményindító | Hivatkozás |
Twilio | Kimenet | Hivatkozás |
Szolgáltatás | Példák | Minták |
---|---|---|
Blob-tároló |
Eseményindító Bemenet Kimenet |
Hivatkozás |
Azure Cosmos DB (adatbázis) |
Eseményindító Bemenet Kimenet |
Hivatkozás |
Azure SQL |
Eseményindító Bemenet Kimenet |
|
Eseményhálózat |
Eseményindító Kimenet |
Hivatkozás |
Event Hubs |
Eseményindító Kimenet |
|
IoT Hub |
Eseményindító Kimenet |
|
HTTP | Eseményindító | Hivatkozás |
Sor tárolás |
Eseményindító Kimenet |
Hivatkozás |
RabbitMQ |
Eseményindító Kimenet |
|
SendGrid | Kimenet | |
Szolgáltatási Busz |
Eseményindító Kimenet |
Hivatkozás |
SignalR |
Eseményindító Bemenet Kimenet |
|
Táblatároló |
Bemenet Kimenet |
|
Időzítő | Eseményindító | Hivatkozás |
Twilio | Kimenet | Hivatkozás |
A Python kötéskódja a Python-modell verziójától függ.
Szolgáltatás | Példák | Minták |
---|---|---|
Blob-tároló |
Eseményindító Bemenet Kimenet |
Hivatkozás |
Azure Cosmos DB (adatbázis) |
Eseményindító Bemenet Kimenet |
Hivatkozás |
Azure Adatböngésző |
Bemenet Kimenet |
|
Azure SQL |
Eseményindító Bemenet Kimenet |
Hivatkozás |
Eseményhálózat |
Eseményindító Kimenet |
Hivatkozás |
Event Hubs |
Eseményindító Kimenet |
|
IoT Hub |
Eseményindító Kimenet |
|
HTTP | Eseményindító | Hivatkozás |
Sor tárolás |
Eseményindító Kimenet |
Hivatkozás |
RabbitMQ |
Eseményindító Kimenet |
|
SendGrid | Kimenet | |
Szolgáltatási Busz |
Eseményindító Kimenet |
Hivatkozás |
SignalR |
Eseményindító Bemenet Kimenet |
|
Táblatároló |
Bemenet 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ó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.