Sdílet prostřednictvím


Koncepty triggerů a vazeb v 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 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.

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ář 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 Blob Storage a vytvoří nový dokument služby Azure Cosmos DB. Časovač Úložiště blobů Azure Cosmos DB – databázový systém
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 (síť událostí) Blob Storage a Azure Cosmos DB SendGrid

* Zobrazuje různé fronty.

Tyto příklady nejsou vyčerpávající, ale jsou poskytnuty k tomu, aby ilustrovaly, jak lze použít spouštěče a vazby společně. Komplexnější sadu scénářů najdete ve scénářích Azure Functions.

Návod

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 vaše specifické rozšíření vazeb pro příklady konkrétního 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.

Názvy triggerů a vazeb jsou omezené na alfanumerické znaky a _podtržítko.

Tento příklad ukazuje funkci spuštěnou protokolem HTTP s výstupní vazbou, která zapisuje 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 jako odpověď na požadavek HTTP a také zapisuje zprávu do fronty úložiště prostřednictvím 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 na run metodě pro funkci s názvem HttpTriggerQueueOutput, která zapisuje do fronty úložiště definované anotací @QueueOutput na 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řidejte vazby 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 Spouštěč Vstup Výstup
úložiště blobů
Azure Cosmos DB
Azure Data Explorer
Azure SQL
Dapr4
Event Grid
Event Hubs
HTTP a webhooks
IoT Hub
Kafka3
Mobile Apps
Notification Hubs
Queue Storage
Redis
RabbitMQ3
SendGrid
Sběrnice služeb
Signál R
Ukládání tabulek
Č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 Rozšíření registru vazeb.
  3. Triggery nejsou v plánu typu 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.

Vázání kódu pro jazyk C# závisí na konkrétním modelu procesu.

Služba Příklady Vzorky
Úložiště blobů Spouštěč
Vstup
Výstup
Odkaz
Azure Cosmos DB – databázový systém Spouštěč
Vstup
Výstup
Odkaz
Průzkumník dat Azure Vstup
Výstup
Odkaz
Azure SQL Spouštěč
Vstup
Výstup
Odkaz
Event Grid (síť událostí) Spouštěč
Výstup
Odkaz
Centra událostí Spouštěč
Výstup
Centrum IoT Spouštěč
Výstup
Protokol HTTP Spouštěč Odkaz
Úložiště front Spouštěč
Výstup
Odkaz
RabbitMQ Spouštěč
Výstup
SendGrid Výstup
Služební autobus Spouštěč
Výstup
Odkaz
Signál R Spouštěč
Vstup
Výstup
Úložiště tabulek Vstup
Výstup
Časovač Spouštěč Odkaz
Twilio Výstup Odkaz
Služba Příklady Vzorky
Úložiště blobů Spouštěč
Vstup
Výstup
Odkaz
Azure Cosmos DB – databázový systém Spouštěč
Vstup
Výstup
Odkaz
Průzkumník dat Azure Vstup
Výstup
Odkaz
Azure SQL Spouštěč
Vstup
Výstup
Event Grid (síť událostí) Spouštěč
Výstup
Odkaz
Centra událostí Spouštěč
Výstup
Centrum IoT Spouštěč
Výstup
Protokol HTTP Spouštěč Odkaz
Úložiště front Spouštěč
Výstup
Odkaz
RabbitMQ Spouštěč
Výstup
SendGrid Výstup
Služební autobus Spouštěč
Výstup
Odkaz
Signál R Spouštěč
Vstup
Výstup
Úložiště tabulek Vstup
Výstup
Časovač Spouštěč Odkaz
Twilio Výstup Odkaz
Služba Příklady Vzorky
Úložiště blobů Spouštěč
Vstup
Výstup
Odkaz
Azure Cosmos DB – databázový systém Spouštěč
Vstup
Výstup
Odkaz
Průzkumník dat Azure Vstup
Výstup
Azure SQL Spouštěč
Vstup
Výstup
Odkaz
Event Grid (síť událostí) Spouštěč
Výstup
Odkaz
Centra událostí Spouštěč
Výstup
Centrum IoT Spouštěč
Výstup
Protokol HTTP Spouštěč Odkaz
Úložiště front Spouštěč
Výstup
Odkaz
RabbitMQ Spouštěč
Výstup
SendGrid Výstup
Služební autobus Spouštěč
Výstup
Odkaz
Signál R Spouštěč
Vstup
Výstup
Úložiště tabulek Vstup
Výstup
Časovač Spouštěč Odkaz
Twilio Výstup Odkaz
Služba Příklady Vzorky
Úložiště blobů Spouštěč
Vstup
Výstup
Odkaz
Azure Cosmos DB – databázový systém Spouštěč
Vstup
Výstup
Odkaz
Azure SQL Spouštěč
Vstup
Výstup
Event Grid (síť událostí) Spouštěč
Výstup
Odkaz
Centra událostí Spouštěč
Výstup
Centrum IoT Spouštěč
Výstup
Protokol HTTP Spouštěč Odkaz
Úložiště front Spouštěč
Výstup
Odkaz
RabbitMQ Spouštěč
Výstup
SendGrid Výstup
Služební autobus Spouštěč
Výstup
Odkaz
Signál R Spouštěč
Vstup
Výstup
Úložiště tabulek Vstup
Výstup
Časovač Spouštěč Odkaz
Twilio Výstup Odkaz

Vázání kódu pro Python závisí na verzi modelu Pythonu.

Služba Příklady Vzorky
Úložiště blobů Spouštěč
Vstup
Výstup
Odkaz
Azure Cosmos DB – databázový systém Spouštěč
Vstup
Výstup
Odkaz
Průzkumník dat Azure Vstup
Výstup
Azure SQL Spouštěč
Vstup
Výstup
Odkaz
Event Grid (síť událostí) Spouštěč
Výstup
Odkaz
Centra událostí Spouštěč
Výstup
Centrum IoT Spouštěč
Výstup
Protokol HTTP Spouštěč Odkaz
Úložiště front Spouštěč
Výstup
Odkaz
RabbitMQ Spouštěč
Výstup
SendGrid Výstup
Služební autobus Spouštěč
Výstup
Odkaz
Signál R Spouštěč
Vstup
Výstup
Úložiště tabulek Vstup
Výstup
Časovač Spouštěč 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.