Conceptos básicos sobre los enlaces y desencadenadores de Azure FunctionsAzure Functions triggers and bindings concepts

En este artículo obtendrá información sobre los conceptos de alto nivel que rodean los enlaces y desencadenadores de Azure Functions.In this article you learn the high-level concepts surrounding functions triggers and bindings.

Los desencadenadores son lo que provocan que una función se ejecute.Triggers are what cause a function to run. Un desencadenador define cómo se invoca una función y cada función debe tener exactamente un desencadenador.A trigger defines how a function is invoked and a function must have exactly one trigger. Los desencadenadores tienen datos asociados, que a menudo son la carga de la función.Triggers have associated data, which is often provided as the payload of the function.

El enlace a una función es una manera de conectar otro recurso a la función mediante declaración. Los enlaces pueden estar conectados como enlaces de entrada, enlaces de salida o ambos.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. Los datos de los enlaces se proporcionan a la función como parámetros.Data from bindings is provided to the function as parameters.

Puede mezclar y asignar enlaces diferentes para satisfacer sus necesidades.You can mix and match different bindings to suit your needs. Los enlaces son opcionales y cada función puede tener uno o varios enlaces de entrada y de salida.Bindings are optional and a function might have one or multiple input and/or output bindings.

Los desencadenadores y enlaces evitan codificar el acceso a otros servicios.Triggers and bindings let you avoid hardcoding access to other services. La función recibe los datos (por ejemplo, el contenido de un mensaje de cola) en parámetros de función.Your function receives data (for example, the content of a queue message) in function parameters. El usuario envía datos (por ejemplo, para crear un mensaje de la cola) mediante el valor devuelto de la función.You send data (for example, to create a queue message) by using the return value of the function.

Tenga en cuenta los siguientes ejemplos de cómo se pueden implementar las distintas funciones.Consider the following examples of how you could implement different functions.

Escenario de ejemploExample scenario DesencadenadorTrigger Enlace de entradaInput binding Enlace de salidaOutput binding
Llega un nuevo mensaje de cola que ejecuta una función para escribir en otra cola.A new queue message arrives which runs a function to write to another queue. Cola*Queue* NoneNone Cola*Queue*
Un trabajo programado lee los contenidos de Blob Storage y crea un nuevo documento de Cosmos DB.A scheduled job reads Blob Storage contents and creates a new Cosmos DB document. TemporizadorTimer Blob StorageBlob Storage Cosmos DBCosmos DB
Event Grid se utiliza para leer una imagen en Blob Storage y un documento de Cosmos DB con el fin de enviar un correo.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 y Cosmos DBBlob Storage and Cosmos DB SendGridSendGrid
Un webhook que usa Microsoft Graph para actualizar una hoja de Excel.A webhook that uses Microsoft Graph to update an Excel sheet. HTTPHTTP NoneNone Microsoft GraphMicrosoft Graph

* Representa diferentes colas* Represents different queues

Estos ejemplos no pretenden ser exhaustivos, pero sirven para ilustrar cómo se pueden utilizar desencadenadores y enlaces de forma conjunta.These examples are not meant to be exhaustive, but are provided to illustrate how you can use triggers and bindings together.

Definiciones de desencadenador y enlaceTrigger and binding definitions

Los desencadenadores y enlaces se definen de forma diferente en función del enfoque de desarrollo.Triggers and bindings are defined differently depending on the development approach.

PlataformaPlatform Los desencadenadores y enlaces se configuran por...Triggers and bindings are configured by...
Biblioteca de clases de C#C# class library      la decoración de métodos y parámetros con atributos de C#     decorating methods and parameters with C# attributes
Todos los demás (incluido Azure Portal)All others (including Azure portal)      la actualización de function.json (esquema)     updating function.json (schema)

El portal proporciona una interfaz de usuario para esta configuración, pero puede editar el archivo directamente; para ello, abra el Editor avanzado disponible mediante la pestaña Integrar de la función.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.

En .NET, el tipo de parámetro define el tipo de datos de entrada.In .NET, the parameter type defines the data type for input data. Por ejemplo, use string para enlazar al texto de un desencadenador de cola, una matriz de bytes que se lee como binaria y un tipo personalizado para deserializar a un objeto.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.

Para los lenguajes que se escriben dinámicamente, como JavaScript, use la propiedad dataType del archivo function.json.For languages that are dynamically typed such as JavaScript, use the dataType property in the function.json file. Por ejemplo, para leer el contenido de una solicitud HTTP en formato binario, establezca dataType en 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"
}

Otras opciones para dataType son stream y string.Other options for dataType are stream and string.

Dirección de los enlacesBinding direction

Todos los desencadenadores y enlaces tienen una propiedad direction en el archivo function.json:All triggers and bindings have a direction property in the function.json file:

  • En el caso de los desencadenadores, esta propiedad siempre aparece como inFor triggers, the direction is always in
  • Los enlaces de entrada y de salida usan in y outInput and output bindings use in and out
  • Algunos enlaces admiten la dirección especial inout.Some bindings support a special direction inout. Si utiliza inout, solo estará disponible la opción Editor avanzado mediante la pestaña Integrar en el portal.If you use inout, only the Advanced editor is available via the Integrate tab in the portal.

Cuando se usan atributos en una biblioteca de clases para configurar los desencadenadores y los enlaces, la dirección se proporciona en un constructor de atributos o se deduce del tipo de parámetro.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.

Enlaces admitidosSupported bindings

En la tabla siguiente se muestran los enlaces que son compatibles con las dos versiones principales del entorno de tiempo de ejecución de Azure Functions.The following table shows the bindings that are supported in the two major versions of the Azure Functions runtime.

TypeType 1.x1.x 2.x12.x1 DesencadenadorTrigger EntradaInput SalidaOutput
Blob StorageBlob Storage
Cosmos DBCosmos DB
Event GridEvent Grid
Event HubsEvent Hubs
HTTP & WebhooksHTTP & Webhooks
Microsoft Graph
Tablas de Excel
Microsoft Graph
Excel tables
Microsoft Graph
Archivos de OneDrive
Microsoft Graph
OneDrive files
Microsoft Graph
Correo electrónico de Outlook
Microsoft Graph
Outlook email
Microsoft Graph
Eventos
Microsoft Graph
Events
Microsoft Graph
Tokens de autenticación
Microsoft Graph
Auth tokens
Mobile AppsMobile Apps
Centros de notificacionesNotification Hubs
Queue StorageQueue storage
SendGridSendGrid
Service BusService Bus
SignalRSignalR
Table storageTable storage
TemporizadorTimer
TwilioTwilio

1 En 2.x, se deben registrar todos los enlaces, excepto HTTP y el temporizador.1 In 2.x, all bindings except HTTP and Timer must be registered. Consulte Registro de extensiones de enlace.See Register binding extensions.

Para información sobre qué enlaces están en versión preliminar o aprobados para su uso en producción, consulte los lenguajes admitidos.For information about which bindings are in preview or are approved for production use, see Supported languages.

RecursosResources

Pasos siguientesNext steps