Sdílet prostřednictvím


Triggery a vazby Azure Functions

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.