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 kapcsolatok segítségével elkerülheti, hogy a más szolgáltatásokhoz való hozzáférés kódba legyen ágyazva. 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 üzenetsori üzenetet) a függvény visszatérési értékének 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 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 egy képet olvas be a Blob Storage-ból és egy dokumentumot az Azure Cosmos DB-ből azzal a céllal, hogy e-mailt küldjön. | 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. A forgatókönyvek átfogóbb készletét a Azure Functions forgatókönyvekben talál.
Jótanács
Azure Functions nem kötelező 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
Az alábbi példa egy HTTP-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 MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req)
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 IActionResult 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ében 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 HttpExample nevű függvénynek. A függvény egy olyan tárolási sorba outqueue ír, amelyet a @QueueOutput annotáció határoz meg a msg 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ó: Java fejlesztői útmutató.
A Node.js függvények eseményindítóinak és kötéseinek definiálása a Node.js adott verziójától függ a Azure Functions esetében:
A Node.js Azure Functions 4-es verziójához az eseményindítókat és kötéseket a @azure/functions modulból exportált objektumokkal konfigurálhatja. 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 a Azure Functions Python verziójától függ:
A Azure Functions 2- es verziójának Python 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é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ó: Megkötések hozzáadása meglévő függvényhez Azure Functions.
Azure Functions több kötést 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 a Azure Functions futtatókörnyezet fő verzióiban támogatott kötéseket mutatja be:
| Típus | 4.x1 | 1.x2 | 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 Service | ✔ | ✔ | ✔ | ✔ | |
| Table Storage | ✔ | ✔ | ✔ | ✔ | |
| időzítő | ✔ | ✔ | ✔ | ||
| Twilio | ✔ | ✔ | ✔ |
- Regisztrálja az összes kötést a HTTP és az időzítő kivételével. Lásd Az Azure Functions kötési bővítményeinek regisztrálása. Ez a lépés nem szükséges a Functions-futtatókörnyezet 1.x-es verziójának használatakor.
- A Azure Functions futtatókörnyezet 1.x-es verziójának támogatásának vége 2026. szeptember 14-én. Az alkalmazások áttelepítése a 4.x verzióra a teljes támogatás érdekében.
- A triggerek nem támogatottak a Fogyasztási csomagban. Ez a kötéstípus futásidejű triggereket igényel.
- Ez a kötéstípus csak a Kubernetesben, a Azure IoT Edge é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.
SDK-típusok
Azure Functions kötésbővítmények Azure szolgáltatás SDK-kkal csatlakoznak Azure szolgáltatásokhoz. A kötések által használt SDK-típusok hatással lehetnek a függvényekben lévő adatok kezelésére. Egyes kötések támogatják az SDK-specifikus típusokat, amelyek gazdagabb funkcionalitást és jobb integrációt biztosítanak a szolgáltatással, míg mások általánosabb típusokat, például sztringeket vagy bájttömböket használnak. Ha elérhető, az SDK-specifikus típusok olyan előnyöket biztosíthatnak, mint a jobb típusbiztonság, az egyszerűbb adatkezelés és a szolgáltatásspecifikus funkciókhoz való hozzáférés.
Ez a táblázat az SDK-típusokat jelenleg támogató kötésbővítményeket jelzi:
| Extension | Types | Támogatási szint |
|---|---|---|
| Azure Blob-tároló | BlobClientBlobContainerClientBlockBlobClientPageBlobClientAppendBlobClient |
Eseményindító: GA Bemenet: GA |
| Azure Cosmos DB | CosmosClientDatabaseContainer |
Bemenet: GA |
| Azure Event Grid | CloudEventEventGridEvent |
Eseményindító: GA |
| Azure-eseményközpontok | EventDataEventHubProducerClient |
Eseményindító: GA |
| Azure Queue Storage | QueueClientQueueMessage |
Eseményindító: GA |
| Azure Service Bus | ServiceBusClientServiceBusReceiverServiceBusSenderServiceBusMessage |
Eseményindító: GA |
| Azure Table Storage | TableClientTableEntity |
Bemenet: GA |
Az SDK-típusok szempontjai:
- Az eseményindítók adataira támaszkodó kötési kifejezések használata esetén maga az eseményindító SDK-típusai nem használhatók.
- Olyan kimeneti forgatókönyvek esetén, ahol SDK-típust használhat, hozzon létre és működjön együtt közvetlenül az SDK-ügyfelekkel a kimeneti kötés használata helyett.
- A Azure Cosmos DB eseményindító a Azure Cosmos DB változáscsatornát használja, és JSON-szerializálható típusokként teszi elérhetővé a változáscsatorna elemeit. Ennek eredményeképpen az SDK-típusok nem támogatottak az eseményindítóhoz.
További információ: SDK-típusok a C# fejlesztői útmutatójában.
| Extension | Types | Támogatási szint | Minták |
|---|---|---|---|
| Azure Blob-tároló | BlobClientContainerClientStorageStreamDownloader |
Eseményindító: GA Bemenet: GA |
QuickstartBlobClientContainerClientStorageStreamDownloader |
| Azure Cosmos DB | CosmosClientDatabaseProxyContainerProxy |
Bemenet: előzetes verzió |
QuickstartContainerProxyCosmosClientDatabaseProxy |
| Azure-eseményközpontok | EventData |
Eseményindító: előzetes verzió |
QuickstartEventData |
| Azure Service Bus | ServiceBusReceivedMessage |
Eseményindító: előzetes verzió |
QuickstartServiceBusReceivedMessage |
Az SDK-típusok szempontjai:
- Olyan kimeneti forgatókönyvek esetén, ahol SDK-típust használhat, hozzon létre és működjön együtt közvetlenül az SDK-ügyfelekkel a kimeneti kötés használata helyett.
- A Azure Cosmos DB eseményindító a Azure Cosmos DB változáscsatornát használja, és JSON-szerializálható típusokként teszi elérhetővé a változáscsatorna elemeit. Ennek eredményeképpen az SDK-típusok nem támogatottak az eseményindítóhoz.
Az SDK-típusok csak a Python v2 programozási modell használatakor támogatottak. További információ: SDK típusú kötések a Python fejlesztői útmutatójában.
| Extension | Types | Támogatási szint |
|---|---|---|
| Azure Blob-tároló | BlobClientContainerClientReadableStream |
Preview |
| Azure Service Bus | ServiceBusClientServiceBusReceiverServiceBusSenderServiceBusMessage |
Preview |
Az SDK-típusok csak a Node v4 programozási modell használatakor támogatottak. További információ: SDK-típusok a Node.js fejlesztői útmutatóban.
| Extension | Types | Támogatási szint |
|---|---|---|
| Azure Blob-tároló | BlobClientBlobContainerClient |
Preview |
További információ: SDK-típusok a Java fejlesztői útmutatójában.
Fontos
Az SDK-típusok jelenleg nem támogatottak a PowerShell-alkalmazásokban.
A Go támogatja az SDK-ügyfélinjektálást olyan triggerekhez, amelyek Azure SDK ügyfeleket biztosítanak. A nyilvános előzetes verzió során a Blob Storage-eseményindítók közvetlenül a kezelőfüggvényben kaphatnak egy hitelesített Azure SDK-*blob.Clientpéldányt.
| Extension | Types | Támogatási szint |
|---|---|---|
| Azure Blob-tároló | *blob.Client |
Preview |
További információ: Bővítmény-eseményindítók a Go fejlesztői referenciájában.
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 |
Trigger Bemenet Kimenet |
Link |
| Azure Cosmos DB |
Trigger Bemenet Kimenet |
Link |
| Azure Data Explorer |
Bemenet Kimenet |
Link |
| Azure SQL |
Trigger Bemenet Kimenet |
Link |
| Event Grid |
Trigger Kimenet |
Link |
| Event Hubs |
Trigger Kimenet |
|
| IoT Hub |
Trigger Kimenet |
|
| HTTP | Trigger | Link |
| Queue Storage |
Trigger Kimenet |
Link |
| RabbitMQ |
Trigger Kimenet |
|
| SendGrid | Kimenet | |
| Service Bus |
Trigger Kimenet |
Link |
| Azure SignalR Service |
Trigger Bemenet Kimenet |
|
| Table Storage |
Bemenet Kimenet |
|
| Időzítő | Trigger | Link |
| Twilio | Kimenet | Link |
| Szolgáltatás | Példák | Minták |
|---|---|---|
| Blob Storage |
Trigger Bemenet Kimenet |
Link |
| Azure Cosmos DB |
Trigger Bemenet Kimenet |
Link |
| Azure Data Explorer |
Bemenet Kimenet |
Link |
| Azure SQL |
Trigger Bemenet Kimenet |
|
| Event Grid |
Trigger Kimenet |
Link |
| Event Hubs |
Trigger Kimenet |
|
| IoT Hub |
Trigger Kimenet |
|
| HTTP | Trigger | Link |
| Queue Storage |
Trigger Kimenet |
Link |
| RabbitMQ |
Trigger Kimenet |
|
| SendGrid | Kimenet | |
| Service Bus |
Trigger Kimenet |
Link |
| Azure SignalR Service |
Trigger Bemenet Kimenet |
|
| Table Storage |
Bemenet Kimenet |
|
| Időzítő | Trigger | Link |
| Twilio | Kimenet |
| Szolgáltatás | Példák | Minták |
|---|---|---|
| Blob Storage |
Trigger Bemenet Kimenet |
Link |
| Azure Cosmos DB |
Trigger Bemenet Kimenet |
Link |
| Azure Data Explorer |
Bemenet Kimenet |
|
| Azure SQL |
Trigger Bemenet Kimenet |
Link |
| Event Grid |
Trigger Kimenet |
|
| Event Hubs |
Trigger Kimenet |
|
| IoT Hub |
Trigger Kimenet |
|
| HTTP | Trigger | Link |
| Queue Storage |
Trigger Kimenet |
Link |
| RabbitMQ |
Trigger Kimenet |
|
| SendGrid | Kimenet | |
| Service Bus |
Trigger Kimenet |
Link |
| Azure SignalR Service |
Trigger Bemenet Kimenet |
|
| Table Storage |
Bemenet Kimenet |
|
| Időzítő | Trigger | |
| Twilio | Kimenet |
| Szolgáltatás | Példák | Minták |
|---|---|---|
| Blob Storage |
Trigger Bemenet Kimenet |
|
| Azure Cosmos DB |
Trigger Bemenet Kimenet |
|
| Azure SQL |
Trigger Bemenet Kimenet |
|
| Event Grid |
Trigger Kimenet |
|
| Event Hubs |
Trigger Kimenet |
|
| IoT Hub |
Trigger Kimenet |
|
| HTTP | Trigger | Link |
| Queue Storage |
Trigger Kimenet |
|
| RabbitMQ |
Trigger Kimenet |
|
| SendGrid | Kimenet | |
| Service Bus |
Trigger Kimenet |
|
| Azure SignalR Service |
Trigger Bemenet Kimenet |
|
| Table Storage |
Bemenet Kimenet |
|
| Időzítő | Trigger | |
| Twilio | Kimenet |
A Python kötéskódja a modell Python verziójától függ.
| Szolgáltatás | Példák | Minták |
|---|---|---|
| Blob Storage |
Trigger Bemenet Kimenet |
Link |
| Azure Cosmos DB |
Trigger Bemenet Kimenet |
Link |
| Azure Data Explorer |
Bemenet Kimenet |
|
| Azure SQL |
Trigger Bemenet Kimenet |
Link |
| Event Grid |
Trigger Kimenet |
|
| Event Hubs |
Trigger Kimenet |
|
| IoT Hub |
Trigger Kimenet |
|
| HTTP | Trigger | Link |
| Queue Storage |
Trigger Kimenet |
|
| RabbitMQ |
Trigger Kimenet |
|
| SendGrid | Kimenet | |
| Service Bus |
Trigger Kimenet |
Link |
| Azure SignalR Service |
Trigger Bemenet Kimenet |
|
| Table Storage |
Bemenet Kimenet |
|
| Időzítő | Trigger | |
| Twilio | Kimenet |
Egyéni kötések
Létrehozhat egyéni bemeneti és kimeneti kötéseket. A kötéseket .NET-ben kell megírni, de bármely támogatott nyelvről fogyaszthatók. 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.