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. Vy 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 obsah služby Azure Blob Storage a vytvoří nový dokument služby Azure Cosmos DB. | Časovač | Blob Storage | Azure Cosmos DB |
| Azure Event Grid slouží ke čtení obrázku ze služby Blob Storage a dokumentu ze služby 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 ve scénářích Azure Functions.
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 sady 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 aktivovanou 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 static MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req,
FunctionContext executionContext)
{
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 HttpResponseData 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 v jazyce C# (.csx).
Pro funkce Java nakonfigurujete triggery a vazby tak, že označíte konkrétní metody a parametry. Tento trigger HTTP (@HttpTrigger) je definován v run metodě pro funkci s názvem HttpTriggerQueueOutput. Funkce zapisuje do fronty úložiště, kterou definuje anotace na parametru @QueueOutput.
@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 v Javě.
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 @azure/functions modulu. 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, jakým je funkce definovaná, závisí na verzi Pythonu pro Azure Functions:
V Pythonu pro Azure Functions verze 2 definujete funkci přímo v kódu pomocí dekorátorů:
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.')
Ú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řidání vazeb do existující funkce v Azure Functions.
Azure Functions podporuje více vazeb, které je potřeba správně nakonfigurovat. 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 runtime Azure Functions:
| Typ | 1,x1 | 2.x a novější2 | Spouštěč | Vstup | Výstup |
|---|---|---|---|---|---|
| Blob Storage | ✔ | ✔ | ✔ | ✔ | ✔ |
| Azure Cosmos DB | ✔ | ✔ | ✔ | ✔ | ✔ |
| Azure Data Explorer | ✔ | ✔ | ✔ | ||
| Azure SQL | ✔ | ✔ | ✔ | ✔ | |
| Dapr4 | ✔ | ✔ | ✔ | ✔ | |
| Event Grid | ✔ | ✔ | ✔ | ✔ | |
| Event Hubs | ✔ | ✔ | ✔ | ✔ | |
| HTTP a webhooky | ✔ | ✔ | ✔ | ✔ | |
| IoT Hub | ✔ | ✔ | ✔ | ||
| Kafka3 | ✔ | ✔ | ✔ | ||
| Mobile Apps | ✔ | ✔ | ✔ | ||
| Protokol kontextu modelu | ✔ | ✔ | |||
| Centra oznámení | ✔ | ✔ | |||
| Queue Storage | ✔ | ✔ | ✔ | ✔ | |
| Redis | ✔ | ✔ | ✔ | ✔ | |
| RabbitMQ3 | ✔ | ✔ | ✔ | ||
| SendGrid | ✔ | ✔ | ✔ | ||
| Sběrnice služeb | ✔ | ✔ | ✔ | ✔ | |
| Služba Azure SignalR | ✔ | ✔ | ✔ | ✔ | |
| Table Storage | ✔ | ✔ | ✔ | ✔ | |
| Časovač | ✔ | ✔ | ✔ | ||
| Twilio | ✔ | ✔ | ✔ |
1. Podpora skončí pro modul runtime Azure Functions verze 1.x 14. září 2026. Důrazně doporučujeme migrovat aplikace na verzi 4.x , abyste měli plnou podporu.
2 Počínaje modulem runtime verze 2.x musí být zaregistrovány všechny vazby s výjimkou protokolu HTTP a časovače. Viz Registrace rozšíření vazeb Azure Functions.
3 Triggery nejsou v plánu Consumption podporované. Tento typ vazby vyžaduje triggery řízené modulem runtime.
4 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í.
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 |
Odkaz |
| Azure Cosmos DB |
Spouštěč Vstup Výstup |
Odkaz |
| Azure Data Explorer |
Vstup Výstup |
Odkaz |
| Azure SQL |
Spouštěč Vstup Výstup |
Odkaz |
| Event Grid |
Spouštěč Výstup |
Odkaz |
| Centra událostí |
Spouštěč Výstup |
|
| Centrum IoT |
Spouštěč Výstup |
|
| HTTP | Spouštěč | Odkaz |
| Queue Storage |
Spouštěč Výstup |
Odkaz |
| RabbitMQ |
Spouštěč Výstup |
|
| SendGrid | Výstup | |
| Sběrnice |
Spouštěč Výstup |
Odkaz |
| Azure SignalR Service |
Spouštěč Vstup Výstup |
|
| Table Storage |
Vstup Výstup |
|
| Časovač | Spouštěč | Odkaz |
| Twilio | Výstup | Odkaz |
| Služba | Příklady | Vzorky |
|---|---|---|
| Blob Storage |
Spouštěč Vstup Výstup |
Odkaz |
| Azure Cosmos DB |
Spouštěč Vstup Výstup |
Odkaz |
| Azure Data Explorer |
Vstup Výstup |
Odkaz |
| Azure SQL |
Spouštěč Vstup Výstup |
|
| Event Grid |
Spouštěč Výstup |
Odkaz |
| Centra událostí |
Spouštěč Výstup |
|
| Centrum IoT |
Spouštěč Výstup |
|
| HTTP | Spouštěč | Odkaz |
| Queue Storage |
Spouštěč Výstup |
Odkaz |
| RabbitMQ |
Spouštěč Výstup |
|
| SendGrid | Výstup | |
| Sběrnice |
Spouštěč Výstup |
Odkaz |
| Azure SignalR Service |
Spouštěč Vstup Výstup |
|
| Table Storage |
Vstup Výstup |
|
| Časovač | Spouštěč | Odkaz |
| Twilio | Výstup |
| Služba | Příklady | Vzorky |
|---|---|---|
| Blob Storage |
Spouštěč Vstup Výstup |
Odkaz |
| Azure Cosmos DB |
Spouštěč Vstup Výstup |
Odkaz |
| Azure Data Explorer |
Vstup Výstup |
|
| Azure SQL |
Spouštěč Vstup Výstup |
Odkaz |
| Event Grid |
Spouštěč Výstup |
|
| Centra událostí |
Spouštěč Výstup |
|
| Centrum IoT |
Spouštěč Výstup |
|
| HTTP | Spouštěč | Odkaz |
| Queue Storage |
Spouštěč Výstup |
Odkaz |
| RabbitMQ |
Spouštěč Výstup |
|
| SendGrid | Výstup | |
| Sběrnice |
Spouštěč Výstup |
Odkaz |
| 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ěč | Odkaz |
| 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 |
Vázání kódu pro Python závisí na verzi modelu Pythonu.
| Služba | Příklady | Vzorky |
|---|---|---|
| Blob Storage |
Spouštěč Vstup Výstup |
Odkaz |
| Azure Cosmos DB |
Spouštěč Vstup Výstup |
Odkaz |
| Azure Data Explorer |
Vstup Výstup |
|
| Azure SQL |
Spouštěč Vstup Výstup |
Odkaz |
| Event Grid |
Spouštěč Výstup |
|
| Centra událostí |
Spouštěč Výstup |
|
| Centrum IoT |
Spouštěč Výstup |
|
| HTTP | Spouštěč | Odkaz |
| Queue Storage |
Spouštěč Výstup |
|
| RabbitMQ |
Spouštěč Výstup |
|
| SendGrid | Výstup | |
| Sběrnice |
Spouštěč Výstup |
Odkaz |
| 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 naleznete v tématu Vytváření vlastních vstupních a výstupních vazeb.