Sdílet prostřednictvím


Koncepty triggerů a vazeb Azure Functions.

V tomto článku se seznámíte s koncepty vysoké úrovně, které obklopují triggery a vazby funkcí.

Triggery způsobují spuštění funkce. Trigger definuje způsob volání funkce a každá funkce musí mít právě jeden trigger. 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. Aktivační událost funkce je v podstatě speciálním typem vstupní vazby.

Různé vazby můžete kombinovat a spárovat tak, aby vyhovovaly konkrétnímu scénáři vaší funkce. Vazby jsou volitelné a funkce může mít jednu nebo více vstupních 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 toho, jak byste mohli implementovat různé funkce.

Ukázkový scénář Trigger 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 Blob Storage a vytvoří nový dokument služby Azure Cosmos DB. Časovač Blob Storage Azure Cosmos DB
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 poskytují se k ilustraci toho, jak můžete použít triggery a vazby společně. Komplexnější sadu scénářů najdete ve scénářích Azure Functions.

Tip

Funkce nevyžadují 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

Funkce má jeden trigger a jednu nebo více vazeb. Typ vazby je vstup nebo výstup. Ne všechny služby podporují vstupní i výstupní vazby. Podívejte se na konkrétní rozšíření vazeb pro konkrétní příklady kódu vazeb.

Triggery a vazby se definují odlišně v závislosti na vývojovém jazyce. Nezapomeňte vybrat jazyk v horní části článku.

Tento 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# jsou triggery a vazby nakonfigurovány dekódováním metod a parametrů pomocí atributů jazyka C#, kde konkrétní použitý atribut může záviset na modelu modulu runtime 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 , která vrací HttpResponse požadavek HTTP a také zapisuje zprávu do fronty úložiště pomocí vazby QueueOutput :

public class MultiResponse
{
    [QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
    public string[] Messages { get; set; }
    public HttpResponseData HttpResponse { get; set; }
}

Další informace najdete v průvodci modelem izolovaného pracovního procesu jazyka C#.

Starší funkce skriptu jazyka C# používají definiční soubor function.json. Další informace najdete v referenčních informacích pro vývojáře azure Functions v jazyce C# (.csx).

Pro funkce Java se triggery a vazby konfigurují 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 HttpTriggerQueueOutput, která zapisuje do fronty úložiště definované @QueueOutput poznámkou parametru message :

@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 definování triggerů a vazeb pro funkce Node.js závisí na konkrétní verzi Node.js pro functions:

V Node.js pro 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.

Tento příklad je funkce aktivovaná protokolem HTTP, která vytvoří položku fronty pro každý přijatý požadavek HTTP.

Metoda http u exportovaného app objektu definuje trigger HTTP a storageQueue metoda definuje output výstupní vazbu pro tento trigger.

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 u exportovaného app objektu definuje trigger HTTP a storageQueue metoda definuje output výstupní vazbu pro tento trigger.

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 funkce:

V Pythonu pro 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.')

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 vyšší2 Trigger 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
Notification Hubs
Queue Storage
Redis
RabbitMQ3
SendGrid
Service Bus
SignalR
Table Storage
Časovač
Twilio

Poznámky:

  1. Podpora pro modul runtime Azure Functions verze 1.x skončí 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 http a časovače. Viz Registrace rozšíření vazeb.
  3. Triggery nejsou v plánu Consumption podporované. Vyžaduje triggery řízené modulem runtime.
  4. Podporováno pouze v režimech Kubernetes, 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 vazeb

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.

Vytvoření vazby kódu pro jazyk C# závisí na konkrétním modelu procesu.

Služba Příklady Ukázky
Blob Storage Trigger
Vstup
Výstup
Odkaz
Azure Cosmos DB Trigger
Vstup
Výstup
Odkaz
Průzkumník dat Azure Vstup
Výstup
Odkaz
Azure SQL Trigger
Vstup
Výstup
Odkaz
Event Grid Trigger
Výstup
Odkaz
Event Hubs Trigger
Výstup
IoT Hub Trigger
Výstup
HTTP Trigger Odkaz
Queue Storage Trigger
Výstup
Odkaz
RabbitMQ Trigger
Výstup
SendGrid Výstup
Service Bus Trigger
Výstup
Odkaz
SignalR Trigger
Vstup
Výstup
Table Storage Vstup
Výstup
Časovač Trigger Odkaz
Twilio Výstup Odkaz
Služba Příklady Ukázky
Blob Storage Trigger
Vstup
Výstup
Odkaz
Azure Cosmos DB Trigger
Vstup
Výstup
Odkaz
Průzkumník dat Azure Vstup
Výstup
Odkaz
Azure SQL Trigger
Vstup
Výstup
Event Grid Trigger
Výstup
Odkaz
Event Hubs Trigger
Výstup
IoT Hub Trigger
Výstup
HTTP Trigger Odkaz
Queue Storage Trigger
Výstup
Odkaz
RabbitMQ Trigger
Výstup
SendGrid Výstup
Service Bus Trigger
Výstup
Odkaz
SignalR Trigger
Vstup
Výstup
Table Storage Vstup
Výstup
Časovač Trigger Odkaz
Twilio Výstup Odkaz
Služba Příklady Ukázky
Blob Storage Trigger
Vstup
Výstup
Odkaz
Azure Cosmos DB Trigger
Vstup
Výstup
Odkaz
Průzkumník dat Azure Vstup
Výstup
Azure SQL Trigger
Vstup
Výstup
Odkaz
Event Grid Trigger
Výstup
Odkaz
Event Hubs Trigger
Výstup
IoT Hub Trigger
Výstup
HTTP Trigger Odkaz
Queue Storage Trigger
Výstup
Odkaz
RabbitMQ Trigger
Výstup
SendGrid Výstup
Service Bus Trigger
Výstup
Odkaz
SignalR Trigger
Vstup
Výstup
Table Storage Vstup
Výstup
Časovač Trigger Odkaz
Twilio Výstup Odkaz
Služba Příklady Ukázky
Blob Storage Trigger
Vstup
Výstup
Odkaz
Azure Cosmos DB Trigger
Vstup
Výstup
Odkaz
Azure SQL Trigger
Vstup
Výstup
Event Grid Trigger
Výstup
Odkaz
Event Hubs Trigger
Výstup
IoT Hub Trigger
Výstup
HTTP Trigger Odkaz
Queue Storage Trigger
Výstup
Odkaz
RabbitMQ Trigger
Výstup
SendGrid Výstup
Service Bus Trigger
Výstup
Odkaz
SignalR Trigger
Vstup
Výstup
Table Storage Vstup
Výstup
Časovač Trigger Odkaz
Twilio Výstup Odkaz

Vytvoření vazby kódu pro Python závisí na verzi modelu Pythonu.

Služba Příklady Ukázky
Blob Storage Trigger
Vstup
Výstup
Odkaz
Azure Cosmos DB Trigger
Vstup
Výstup
Odkaz
Průzkumník dat Azure Vstup
Výstup
Azure SQL Trigger
Vstup
Výstup
Odkaz
Event Grid Trigger
Výstup
Odkaz
Event Hubs Trigger
Výstup
IoT Hub Trigger
Výstup
HTTP Trigger Odkaz
Queue Storage Trigger
Výstup
Odkaz
RabbitMQ Trigger
Výstup
SendGrid Výstup
Service Bus Trigger
Výstup
Odkaz
SignalR Trigger
Vstup
Výstup
Table Storage Vstup
Výstup
Časovač Trigger Odkaz
Twilio Výstup Odkaz

Vlastní vazby

Můžete vytvořit vlastní vstupní a výstupní vazby. Vazby musí být vytvořené v .NET, ale je možné je 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.