Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto článku se seznámíte s koncepty vysoké úrovně, které obklopují triggery a vazby pro funkce.
Triggery způsobují spuštění funkce. Trigger definuje způsob vyvolání funkce a funkce musí mít přesně jednu aktivační událost. Triggery můžou také předávat data do vaší funkce stejně jako volání metody.
Vazba na funkci je způsob deklarativního propojení funkcí s jinými prostředky. Vazby buď předávají data do vaší funkce ( vstupní vazby), nebo umožňují zapisovat data z vaší funkce ( výstupní vazby) pomocí parametrů vazby. Spouštěč vaší funkce je v podstatě speciální typ vazby na vstupu.
Vazby můžete kombinovat tak, aby vyhovovaly specifické potřebě vaší funkce. Vazby jsou volitelné a funkce může mít jednu nebo více vstupních a/nebo výstupních vazeb.
Triggery a vazby umožňují vyhnout se pevnému kódování přístupu k jiným službám. Vaše funkce přijímá data (například obsah zprávy fronty) v parametrech funkce. Posíláte data, například k vytvoření zprávy fronty, pomocí návratové hodnoty funkce.
Podívejte se na následující příklady implementace funkcí:
| Ukázkový scénář | Spouštěč | Vstupní vazba | Výstupní vazba |
|---|---|---|---|
| Dorazí nová zpráva fronty, která spustí funkci pro zápis do jiné fronty. | Fronta* | Nic | Fronta* |
| Naplánovaná úloha čte Azure Blob Storage obsah a vytvoří nový Azure Cosmos DB dokument. | Časovač | Blob Storage | Azure Cosmos DB |
| Azure Event Grid slouží ke čtení obrázku z Blob Storage a dokumentu z Azure Cosmos DB k odeslání e-mailu. | Event Grid | Blob Storage a Azure Cosmos DB | SendGrid |
* Představuje různé fronty.
Tyto příklady nejsou vyčerpávající, ale ilustrují, jak můžete používat triggery a bindingy společně. Komplexnější sadu scénářů najdete v Azure Functions scénářích.
Návod
Azure Functions nevyžaduje použití vstupních a výstupních vazeb pro připojení ke službám Azure. V kódu můžete vždy vytvořit klienta Azure SDK a místo toho ho použít pro přenosy dat. Další informace najdete v tématu Připojení ke službám.
Definice triggerů a vazeb
Následující příklad ukazuje funkci spuštěnou protokolem HTTP s výstupní vazbou, která zapíše zprávu do fronty Azure Storage.
Pro funkce knihovny tříd jazyka C# nakonfigurujete triggery a vazby dekódováním metod a parametrů pomocí atributů jazyka C#. Konkrétní atribut, který použijete, může záviset na modelu modulu runtime jazyka C#:
Trigger HTTP (HttpTrigger) je definován v Run metodě pro funkci s názvem HttpExample , která vrací MultiResponse objekt:
[Function("HttpExample")]
public MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req)
Tento příklad ukazuje definici objektu MultiResponse . Definice objektu odešle HttpResponse jako odpověď na požadavek HTTP a zapíše zprávu do fronty úložiště pomocí QueueOutput bindingu.
public class MultiResponse
{
[QueueOutput("outqueue", Connection = "AzureWebJobsStorage")]
public string[] Messages { get; set; }
public IActionResult HttpResponse { get; set; }
}
Další informace najdete v průvodci jazykem C# pro izolované modely pracovních procesů.
Starší funkce skriptů jazyka function.json C# používají definiční soubor. Další informace najdete v referenčních informacích pro vývojáře Azure Functions skript jazyka C# (.csx.
Pro Java funkce nakonfigurujete triggery a vazby přidáním poznámek ke konkrétním metodám a parametrům. Tento trigger HTTP (@HttpTrigger) je definován v run metodě pro funkci s názvem HttpExample. Funkce zapíše do fronty úložiště s názvem outqueue, kterou definuje anotace @QueueOutput na parametru msg.
@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.");
Další informace najdete v příručce pro vývojáře Java.
Způsob, jakým definujete triggery a vazby pro Node.js funkce, závisí na konkrétní verzi Node.js pro Azure Functions:
V Node.js pro Azure Functions verze 4 nakonfigurujete triggery a vazby pomocí objektů exportovaných z modulu @azure/functions. Další informace najdete v Node.js příručce pro vývojáře.
Metoda http pro exportovaný app objekt definuje trigger HTTP. Metoda storageQueue pro output definuje výstupní vazbu pro tuto aktivační událost.
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.' };
},
});
Metoda http pro exportovaný app objekt definuje trigger HTTP. Metoda storageQueue pro output definuje výstupní vazbu pro tuto aktivační událost.
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,
});
Tento ukázkový function.json soubor definuje funkci:
{
"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"
}
]
}
Další informace najdete v příručce pro vývojáře PowerShellu.
Způsob definování funkce závisí na verzi Python pro Azure Functions:
V Python pro Azure Functions verze 2 definujete funkci přímo v kódu pomocí dekorátorů:
app = func.FunctionApp(http_auth_level=func.AuthLevel.FUNCTION)
@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.')
Úvahy k vazbám
Ne všechny služby podporují vstupní i výstupní vazby. Konkrétní rozšíření vazby najdete v konkrétních příkladech kódu pro vazby.
Triggery a vazby se definují odlišně v závislosti na vývojovém jazyce. Nezapomeňte vybrat jazyk v horní části tohoto článku.
Názvy triggerů a vazeb jsou omezené na alfanumerické znaky a
_podtržítko.
Úkol přidání vazeb do funkce
Funkci můžete připojit k jiným službám pomocí vstupních nebo výstupních vazeb. Přidejte vazbu přidáním jejích konkrétních definic do vaší funkce. Postup najdete v tématu Přidat vazby k existující funkci v Azure Functions.
Azure Functions podporuje více vazeb, které musí být správně nakonfigurované. Funkce může například číst data z fronty (vstupní vazby) a zapisovat data do databáze (výstupní vazby) současně.
Podporované vazby
Tato tabulka ukazuje vazby podporované v hlavních verzích modulu Azure Functions runtime:
| Typ | 4.x1 | 1,x2 | Spouštěč | Vstup | Výstup |
|---|---|---|---|---|---|
| Blob Storage | ✔ | ✔ | ✔ | ✔ | ✔ |
| Azure Cosmos DB | ✔ | ✔ | ✔ | ✔ | ✔ |
| Azure Data Explorer | ✔ | ✔ | ✔ | ||
| Azure SQL | ✔ | ✔ | ✔ | ✔ | |
| Dapr4 | ✔ | ✔ | ✔ | ✔ | |
| Event Grid | ✔ | ✔ | ✔ | ✔ | |
| Event Hubs | ✔ | ✔ | ✔ | ✔ | |
| HTTP a webhoky | ✔ | ✔ | ✔ | ✔ | |
| IoT Hub | ✔ | ✔ | ✔ | ||
| Kafka3 | ✔ | ✔ | ✔ | ||
| Mobilní aplikace | ✔ | ✔ | ✔ | ||
| Protokol kontextu modelu | ✔ | ✔ | |||
| Centra oznámení | ✔ | ✔ | |||
| Úložiště front | ✔ | ✔ | ✔ | ✔ | |
| Redis | ✔ | ✔ | ✔ | ✔ | |
| RabbitMQ3 | ✔ | ✔ | ✔ | ||
| SendGrid | ✔ | ✔ | ✔ | ||
| Service Bus | ✔ | ✔ | ✔ | ✔ | |
| Služba Azure SignalR | ✔ | ✔ | ✔ | ✔ | |
| Úložiště tabulek | ✔ | ✔ | ✔ | ✔ | |
| Časovač | ✔ | ✔ | ✔ | ||
| Twilio | ✔ | ✔ | ✔ |
- Zaregistrujte všechny vazby kromě HTTP a časovače. Viz Register Azure Functions rozšíření vazeb. Tento krok se nevyžaduje při použití verze 1.x modulu runtime Functions.
- Support končí pro verzi 1.x modulu runtime Azure Functions 14. září 2026. Migrujte své aplikace na verzi 4.x a získáte plnou podporu.
- Triggery nejsou v plánu Consumption podporované. Tento typ vazby vyžaduje triggery řízené modulem runtime.
- Tento typ vazby se podporuje jenom v Kubernetes, Azure IoT Edge a dalších režimech v místním prostředí.
Informace o tom, které vazby jsou ve verzi Preview nebo jsou schválené pro použití v produkčním prostředí, najdete v tématu Podporované jazyky.
Konkrétní verze rozšíření vazeb se podporují jenom v době, kdy je podporována podkladová sada SDK služby. Změny podpory v základní verzi sady SDK služby ovlivňují podporu pro využívání rozšíření.
Typů SDK
Rozšiřitelnost vazeb Azure Functions využívá sady SDK služby Azure k připojení ke službám Azure. Konkrétní typy sad SDK používané vazbami můžou ovlivnit způsob práce s daty ve vašich funkcích. Některé vazby podporují typy specifické pro sadu SDK, které poskytují bohatší funkce a lepší integraci se službou, zatímco jiné používají obecnější typy, jako jsou řetězce nebo pole bajtů. Pokud je k dispozici, používání typů specifických pro sadu SDK může poskytovat výhody, jako je lepší zabezpečení typů, jednodušší manipulace s daty a přístup k funkcím specifickým pro službu.
Tato tabulka označuje rozšíření vazeb, která aktuálně podporují typy sad SDK:
| Extension | Types | Úroveň podpory |
|---|---|---|
| Azure Blob Storage | BlobClientBlobContainerClientBlockBlobClientPageBlobClientAppendBlobClient |
Aktivační událost: GA Vstup: GA |
| Azure Cosmos DB | CosmosClientDatabaseContainer |
Vstup: GA |
| Azure Event Grid | CloudEventEventGridEvent |
Aktivační událost: GA |
| Azure Event Hubs | EventDataEventHubProducerClient |
Aktivační událost: GA |
| Azure Queue Storage | QueueClientQueueMessage |
Aktivační událost: GA |
| Azure Service Bus | ServiceBusClientServiceBusReceiverServiceBusSenderServiceBusMessage |
Aktivační událost: GA |
| Azure Table Storage | TableClientTableEntity |
Vstup: GA |
Úvahy o typech SDK:
- Pokud používáte vazbové výrazy, které spoléhají na data triggeru , nelze použít typy sad SDK pro samotný trigger.
- Ve výstupních scénářích, ve kterých můžete použít typ sady SDK, můžete vytvářet klienty sady SDK a pracovat s klienty sady SDK přímo místo použití výstupní vazby.
- Trigger Azure Cosmos DB používá kanál změn Azure Cosmos DB a zveřejňuje položky kanálu změn jako serializovatelné typy JSON. V důsledku toho nejsou typy SDK podporované pro tento spouštěč.
Další informace najdete v tématu Typy sad SDK v příručce pro vývojáře jazyka C#.
| Extension | Types | Úroveň podpory | Vzorky |
|---|---|---|---|
| Azure Blob Storage | BlobClientContainerClientStorageStreamDownloader |
Aktivační událost: GA Vstup: GA |
QuickstartBlobClientContainerClientStorageStreamDownloader |
| Azure Cosmos DB | CosmosClientDatabaseProxyContainerProxy |
Vstup: náhled |
QuickstartContainerProxyCosmosClientDatabaseProxy |
| Azure Event Hubs | EventData |
Spouštěč: náhled |
QuickstartEventData |
| Azure Service Bus | ServiceBusReceivedMessage |
Spouštěč: náhled |
QuickstartServiceBusReceivedMessage |
Úvahy o typech SDK:
- Ve výstupních scénářích, ve kterých můžete použít typ sady SDK, můžete vytvářet klienty sady SDK a pracovat s klienty sady SDK přímo místo použití výstupní vazby.
- Trigger Azure Cosmos DB používá kanál změn Azure Cosmos DB a zveřejňuje položky kanálu změn jako serializovatelné typy JSON. V důsledku toho nejsou typy SDK podporované pro tento spouštěč.
Typy sad SDK se podporují pouze při použití programovacího modelu Python v2. Další informace najdete v vazbách typů sadySDK v příručce pro vývojáře Python.
| Extension | Types | Úroveň podpory |
|---|---|---|
| Azure Blob Storage | BlobClientContainerClientReadableStream |
Preview |
| Azure Service Bus | ServiceBusClientServiceBusReceiverServiceBusSenderServiceBusMessage |
Preview |
Typy sad SDK se podporují pouze při použití programovacího modelu Node v4. Další informace najdete v tématu Typy sad SDK v Node.js příručce pro vývojáře.
| Extension | Types | Úroveň podpory |
|---|---|---|
| Azure Blob Storage | BlobClientBlobContainerClient |
Preview |
Další informace najdete v SDK typů v Java příručce pro vývojáře.
Důležité
Typy SDK nejsou v současné době podporovány pro PowerShell aplikace.
Go podporuje injektáž klienta sady SDK pro triggery, které poskytují Azure SDK klienty. Během veřejné verze Preview můžou triggery Blob Storage přijímat ověřené Azure SDK *blob.Client přímo v obslužné rutině.
| Extension | Types | Úroveň podpory |
|---|---|---|
| Azure Blob Storage | *blob.Client |
Preview |
Další informace najdete v tématu Triggery rozšíření v referenčních informacích pro vývojáře Go.
Příklady kódu pro vazby
V následující tabulce najdete další příklady konkrétních typů vazeb, které ukazují, jak pracovat s vazbami ve vašich funkcích. Nejprve zvolte kartu jazyka, která odpovídá vašemu projektu.
Vázání kódu pro jazyk C# závisí na konkrétním modelu procesu.
| Služba | Příklady | Vzorky |
|---|---|---|
| Blob Storage |
Spouštěč Vstup Výstup |
Link |
| Azure Cosmos DB |
Spouštěč Vstup Výstup |
Link |
| Azure Data Explorer |
Vstup Výstup |
Link |
| Azure SQL |
Spouštěč Vstup Výstup |
Link |
| Event Grid |
Spouštěč Výstup |
Link |
| Centra událostí |
Spouštěč Výstup |
|
| Centrum IoT |
Spouštěč Výstup |
|
| HTTP | Spouštěč | Link |
| Queue Storage |
Spouštěč Výstup |
Link |
| RabbitMQ |
Spouštěč Výstup |
|
| SendGrid | Výstup | |
| Sběrnice |
Spouštěč Výstup |
Link |
| Azure SignalR Service |
Spouštěč Vstup Výstup |
|
| Table Storage |
Vstup Výstup |
|
| Časovač | Spouštěč | Link |
| Twilio | Výstup | Link |
| Služba | Příklady | Vzorky |
|---|---|---|
| Blob Storage |
Spouštěč Vstup Výstup |
Link |
| Azure Cosmos DB |
Spouštěč Vstup Výstup |
Link |
| Azure Data Explorer |
Vstup Výstup |
Link |
| Azure SQL |
Spouštěč Vstup Výstup |
|
| Event Grid |
Spouštěč Výstup |
Link |
| Centra událostí |
Spouštěč Výstup |
|
| Centrum IoT |
Spouštěč Výstup |
|
| HTTP | Spouštěč | Link |
| Queue Storage |
Spouštěč Výstup |
Link |
| RabbitMQ |
Spouštěč Výstup |
|
| SendGrid | Výstup | |
| Sběrnice |
Spouštěč Výstup |
Link |
| Azure SignalR Service |
Spouštěč Vstup Výstup |
|
| Table Storage |
Vstup Výstup |
|
| Časovač | Spouštěč | Link |
| Twilio | Výstup |
| Služba | Příklady | Vzorky |
|---|---|---|
| Blob Storage |
Spouštěč Vstup Výstup |
Link |
| Azure Cosmos DB |
Spouštěč Vstup Výstup |
Link |
| Azure Data Explorer |
Vstup Výstup |
|
| Azure SQL |
Spouštěč Vstup Výstup |
Link |
| Event Grid |
Spouštěč Výstup |
|
| Centra událostí |
Spouštěč Výstup |
|
| Centrum IoT |
Spouštěč Výstup |
|
| HTTP | Spouštěč | Link |
| Queue Storage |
Spouštěč Výstup |
Link |
| RabbitMQ |
Spouštěč Výstup |
|
| SendGrid | Výstup | |
| Sběrnice |
Spouštěč Výstup |
Link |
| Azure SignalR Service |
Spouštěč Vstup Výstup |
|
| Table Storage |
Vstup Výstup |
|
| Časovač | Spouštěč | |
| Twilio | Výstup |
| Služba | Příklady | Vzorky |
|---|---|---|
| Blob Storage |
Spouštěč Vstup Výstup |
|
| Azure Cosmos DB |
Spouštěč Vstup Výstup |
|
| Azure SQL |
Spouštěč Vstup Výstup |
|
| Event Grid |
Spouštěč Výstup |
|
| Centra událostí |
Spouštěč Výstup |
|
| Centrum IoT |
Spouštěč Výstup |
|
| HTTP | Spouštěč | Link |
| Queue Storage |
Spouštěč Výstup |
|
| RabbitMQ |
Spouštěč Výstup |
|
| SendGrid | Výstup | |
| Sběrnice |
Spouštěč Výstup |
|
| Azure SignalR Service |
Spouštěč Vstup Výstup |
|
| Table Storage |
Vstup Výstup |
|
| Časovač | Spouštěč | |
| Twilio | Výstup |
Kód vazby pro Python závisí na verzi modelu Python.
| Služba | Příklady | Vzorky |
|---|---|---|
| Blob Storage |
Spouštěč Vstup Výstup |
Link |
| Azure Cosmos DB |
Spouštěč Vstup Výstup |
Link |
| Azure Data Explorer |
Vstup Výstup |
|
| Azure SQL |
Spouštěč Vstup Výstup |
Link |
| Event Grid |
Spouštěč Výstup |
|
| Centra událostí |
Spouštěč Výstup |
|
| Centrum IoT |
Spouštěč Výstup |
|
| HTTP | Spouštěč | Link |
| Queue Storage |
Spouštěč Výstup |
|
| RabbitMQ |
Spouštěč Výstup |
|
| SendGrid | Výstup | |
| Sběrnice |
Spouštěč Výstup |
Link |
| Azure SignalR Service |
Spouštěč Vstup Výstup |
|
| Table Storage |
Vstup Výstup |
|
| Časovač | Spouštěč | |
| Twilio | Výstup |
Vlastní vazby
Můžete vytvořit vlastní vstupní a výstupní vazby. Vazby musí být vytvořené v .NET, ale dají se využívat z libovolného podporovaného jazyka. Další informace o vytváření vlastních vazeb najdete v tématu Vytvoření vlastních vstupních a výstupních vazeb.