Pojęcia powiązań i wyzwalaczy usługi Azure FunctionsAzure Functions triggers and bindings concepts

Ten artykuł zawiera informacje o pojęciach dotyczących wysokiego poziomu otaczających wyzwalacze i powiązania funkcji.In this article you learn the high-level concepts surrounding functions triggers and bindings.

Wyzwalacze to przyczyny uruchomienia funkcji.Triggers are what cause a function to run. Wyzwalacz definiuje sposób wywoływania funkcji, a funkcja musi mieć dokładnie jeden wyzwalacz.A trigger defines how a function is invoked and a function must have exactly one trigger. Wyzwalacze mają skojarzone dane, które często są dostarczane jako ładunek funkcji.Triggers have associated data, which is often provided as the payload of the function.

Powiązanie z funkcją jest sposobem deklaratywnego łączenia innego zasobu z funkcją; powiązania mogą być połączone jako powiązania wejściowe, powiązania wyjściowelub oba te elementy.Binding to a function is a way of declaratively connecting another resource to the function; bindings may be connected as input bindings, output bindings, or both. Dane z powiązań są podawane do funkcji jako parametry.Data from bindings is provided to the function as parameters.

Możesz mieszać i dopasowywać różne powiązania, aby dostosować je do własnych potrzeb.You can mix and match different bindings to suit your needs. Powiązania są opcjonalne, a funkcja może mieć jedno lub wiele powiązań wejściowych i/lub wyjściowych.Bindings are optional and a function might have one or multiple input and/or output bindings.

Wyzwalacze i powiązania pozwalają uniknąć zakodowana dostępu do innych usług.Triggers and bindings let you avoid hardcoding access to other services. Funkcja będzie odbierać dane (np. zawartość komunikatu kolejki) w parametrach funkcji.Your function receives data (for example, the content of a queue message) in function parameters. Możesz wysłać dane (np. w celu utworzenia komunikatu kolejki) przy użyciu wartości zwracanej przez funkcję.You send data (for example, to create a queue message) by using the return value of the function.

Rozważmy następujące przykłady sposobu implementacji różnych funkcji.Consider the following examples of how you could implement different functions.

Przykładowy scenariuszExample scenario WyzwalaczTrigger Powiązanie danych wejściowychInput binding Powiązanie danych wyjściowychOutput binding
Zostanie wyświetlony nowy komunikat w kolejce, który uruchamia funkcję do zapisu w innej kolejce.A new queue message arrives which runs a function to write to another queue. Niej*Queue* BrakNone Niej*Queue*
Zaplanowane zadanie odczytuje Blob Storage zawartość i tworzy nowy dokument Cosmos DB.A scheduled job reads Blob Storage contents and creates a new Cosmos DB document. CzasomierzTimer Blob StorageBlob Storage Cosmos DBCosmos DB
Event Grid jest używany do odczytywania obrazu z Blob Storage i dokumentu z Cosmos DB do wysłania wiadomości e-mail.The Event Grid is used to read an image from Blob Storage and a document from Cosmos DB to send an email. Event GridEvent Grid Blob Storage i Cosmos DBBlob Storage and Cosmos DB SendGridSendGrid
Element webhook, który używa Microsoft Graph do aktualizowania arkusza programu Excel.A webhook that uses Microsoft Graph to update an Excel sheet. HTTPHTTP BrakNone Microsoft GraphMicrosoft Graph

* Reprezentuje różne kolejki* Represents different queues

Te przykłady nie są wyczerpujące, ale są dostarczane w celu zilustrowania, jak można używać wyzwalaczy i powiązań jednocześnie.These examples are not meant to be exhaustive, but are provided to illustrate how you can use triggers and bindings together.

Definicje wyzwalacza i powiązaniaTrigger and binding definitions

Wyzwalacze i powiązania są zdefiniowane inaczej w zależności od podejścia do programowania.Triggers and bindings are defined differently depending on the development approach.

PlatformaPlatform Wyzwalacze i powiązania są konfigurowane przez...Triggers and bindings are configured by...
Biblioteka klas języka C#C# class library      dekorowania nazwy metod i parametrów przy użyciu atrybutów języka C#     decorating methods and parameters with C# attributes
Wszystkie inne (w tym Azure Portal)All others (including Azure portal)      Aktualizowanie function.jsna (schemat)     updating function.json (schema)

Portal udostępnia interfejs użytkownika dla tej konfiguracji, ale można edytować plik bezpośrednio, otwierając Edytor zaawansowany dostępny za pośrednictwem karty integracja funkcji.The portal provides a UI for this configuration, but you can edit the file directly by opening the Advanced editor available via the Integrate tab of your function.

W programie .NET typ parametru definiuje typ danych danych wejściowych.In .NET, the parameter type defines the data type for input data. Na przykład, użyj, string Aby powiązać z tekstem wyzwalacza kolejki, tablicę bajtową do odczytu jako Binary i typ niestandardowy do deserializacji do obiektu.For instance, use string to bind to the text of a queue trigger, a byte array to read as binary and a custom type to de-serialize to an object.

W przypadku języków, które są dynamicznie wpisywane, takich jak JavaScript, użyj dataType właściwości w function.js pliku.For languages that are dynamically typed such as JavaScript, use the dataType property in the function.json file. Na przykład, aby odczytać zawartość żądania HTTP w formacie binarnym, ustaw opcję dataType na binary :For example, to read the content of an HTTP request in binary format, set dataType to binary:

{
    "dataType": "binary",
    "type": "httpTrigger",
    "name": "req",
    "direction": "in"
}

Inne opcje dla programu dataType to stream i string .Other options for dataType are stream and string.

Kierunek powiązaniaBinding direction

Wszystkie wyzwalacze i powiązania mają direction Właściwość w function.js w pliku:All triggers and bindings have a direction property in the function.json file:

  • W przypadku wyzwalaczy kierunek jest zawsze inFor triggers, the direction is always in
  • Powiązania danych wejściowych i wyjściowych używają in i outInput and output bindings use in and out
  • Niektóre powiązania obsługują specjalny kierunek inout .Some bindings support a special direction inout. Jeśli używasz programu inout , tylko Edytor zaawansowany jest dostępny za pośrednictwem karty integracja w portalu.If you use inout, only the Advanced editor is available via the Integrate tab in the portal.

W przypadku używania atrybutów w bibliotece klas do konfigurowania wyzwalaczy i powiązań, kierunek jest udostępniany w konstruktorze atrybutu lub wywnioskowany na podstawie typu parametru.When you use attributes in a class library to configure triggers and bindings, the direction is provided in an attribute constructor or inferred from the parameter type.

Dodawanie powiązań do funkcjiAdd bindings to a function

Możesz połączyć funkcję z innymi usługami przy użyciu powiązań wejściowych lub wyjściowych.You can connect your function to other services by using input or output bindings. Dodawanie powiązania przez dodanie jego określonych definicji do funkcji.Add a binding by adding its specific definitions to your function. Aby dowiedzieć się, jak to zrobić, zobacz Dodawanie powiązań do istniejącej funkcji w Azure Functions.To learn how, see Add bindings to an existing function in Azure Functions.

Obsługiwane powiązaniaSupported bindings

W tej tabeli przedstawiono powiązania, które są obsługiwane w głównych wersjach środowiska uruchomieniowego Azure Functions:This table shows the bindings that are supported in the major versions of the Azure Functions runtime:

TypType 1.x1.x 2. x i więcej12.x and higher1 WyzwalaczTrigger Dane wejścioweInput Dane wyjścioweOutput
Blob StorageBlob storage
Azure Cosmos DBAzure Cosmos DB
Dapr3Dapr3
Event GridEvent Grid
Event HubsEvent Hubs
Elementy webhook & HTTPHTTP & webhooks
IoT HubIoT Hub
Kafka2Kafka2
Mobile AppsMobile Apps
Notification HubsNotification Hubs
Queue StorageQueue storage
RabbitMQ2RabbitMQ2
SendGridSendGrid
Service BusService Bus
SignalRSignalR
Table StorageTable storage
CzasomierzTimer
TwilioTwilio

1 począwszy od wersji 2. x środowiska uruchomieniowego, wszystkie powiązania z wyjątkiem http i Timer muszą być zarejestrowane.1 Starting with the version 2.x runtime, all bindings except HTTP and Timer must be registered. Zobacz Rejestrowanie rozszerzeń powiązań.See Register binding extensions.

2 wyzwalacze nie są obsługiwane w planie zużycia.2 Triggers aren't supported in the Consumption plan. Wymaga wyzwalaczy sterowanych przez środowisko uruchomieniowe.Requires runtime-driven triggers.

3 obsługiwane tylko w Kubernetes, IoT Edge i innych trybach samoobsługowych.3 Supported only in Kubernetes, IoT Edge, and other self-hosted modes only.

Aby uzyskać informacje o tym, które powiązania są w wersji zapoznawczej lub są zatwierdzone do użycia w środowisku produkcyjnym, zobacz obsługiwane języki.For information about which bindings are in preview or are approved for production use, see Supported languages.

Przykłady kodu powiązańBindings code examples

Skorzystaj z poniższej tabeli, aby znaleźć przykłady określonych typów powiązań, które pokazują, jak korzystać z powiązań w swoich funkcjach.Use the following table to find examples of specific binding types that show you how to work with bindings in your functions. Najpierw wybierz kartę językową, która odpowiada Twojemu projektowi.First, choose the language tab that corresponds to your project.

UsługaService PrzykładyExamples SamplesSamples
Blob StorageBlob storage WyzwalaczTrigger
Dane wejścioweInput
Dane wyjścioweOutput
PowiązańLink
Azure Cosmos DBAzure Cosmos DB WyzwalaczTrigger
Dane wejścioweInput
Dane wyjścioweOutput
PowiązańLink
Event GridEvent Grid WyzwalaczTrigger
Dane wyjścioweOutput
PowiązańLink
Event HubsEvent Hubs WyzwalaczTrigger
Dane wyjścioweOutput
Usługa IoT HubIoT Hub WyzwalaczTrigger
Dane wyjścioweOutput
HTTPHTTP WyzwalaczTrigger PowiązańLink
Queue StorageQueue storage WyzwalaczTrigger
Dane wyjścioweOutput
PowiązańLink
SendGridSendGrid Dane wyjścioweOutput
Service BusService Bus WyzwalaczTrigger
Dane wyjścioweOutput
PowiązańLink
SignalRSignalR WyzwalaczTrigger
Dane wejścioweInput
Dane wyjścioweOutput
Magazyn tabelTable storage Dane wejścioweInput
Dane wyjścioweOutput
CzasomierzTimer WyzwalaczTrigger PowiązańLink
TwilioTwilio Dane wyjścioweOutput PowiązańLink

ZasobyResources

Następne krokiNext steps