Conceptos básicos sobre los enlaces y desencadenadores de Azure Functions

En este artículo obtendrá información sobre los conceptos de alto nivel que rodean los enlaces y desencadenadores de Azure Functions.

Los desencadenadores provocan la ejecución de una función. Un desencadenador define cómo se invoca una función y cada función debe tener exactamente un desencadenador. Los desencadenadores tienen datos asociados, que a menudo son la carga de la función.

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. Los datos de los enlaces se proporcionan a la función como parámetros.

Puede mezclar y asignar enlaces diferentes para satisfacer sus necesidades. Los enlaces son opcionales y cada función puede tener uno o varios enlaces de entrada y de salida.

Los desencadenadores y enlaces evitan codificar el acceso a otros servicios. La función recibe los datos (por ejemplo, el contenido de un mensaje de cola) en parámetros de función. El usuario envía datos (por ejemplo, para crear un mensaje de la cola) mediante el valor devuelto de la función.

Tenga en cuenta los siguientes ejemplos de cómo se pueden implementar las distintas funciones.

Escenario de ejemplo Desencadenador Enlace de entrada Enlace de salida
Llega un nuevo mensaje de cola que ejecuta una función para escribir en otra cola. Cola* None Cola*
Un trabajo programado lee los contenidos de Blob Storage y crea un nuevo documento de Azure Cosmos DB. Timer Blob Storage Azure Cosmos DB
Event Grid se utiliza para leer una imagen en Blob Storage y un documento de Azure Cosmos DB con el fin de enviar un correo electrónico. Event Grid Blob Storage y Azure Cosmos DB SendGrid
Un webhook que usa Microsoft Graph para actualizar una hoja de Excel. HTTP None Microsoft Graph

* Representa diferentes colas

Estos ejemplos no pretenden ser exhaustivos, pero sirven para ilustrar cómo se pueden utilizar desencadenadores y enlaces de forma conjunta.

Definiciones de desencadenador y enlace

Los desencadenadores y enlaces se definen de forma diferente en función del lenguaje de desarrollo.

Idioma Los desencadenadores y enlaces se configuran por...
Biblioteca de clases de C#      la decoración de métodos y parámetros con atributos de C#
Java      la decoración de métodos y parámetros con anotaciones de Java
JavaScript/PowerShell/Python/TypeScript      la actualización de function.json (esquema)

Para los lenguajes que dependen de function.json, el portal proporciona una interfaz de usuario para agregar enlaces en la pestaña Integration (Integración). También se puede editar el archivo directamente en el portal, en la pestaña Code + test (Código y prueba) de la función. Visual Studio Code permite agregar enlaces a un archivo function.json de manera sencilla, solo hay que seguir un conjunto práctico de mensajes.

En .NET y Java, el tipo de parámetro define el tipo de datos de entrada. Por ejemplo, use string para enlazar al texto de un desencadenador de cola, una matriz de bytes para leerla como binaria y un tipo personalizado para deserializar a un objeto. Dado que ni las funciones de la biblioteca de clases de .NET ni las funciones de Java utilizan function.json para las definiciones de enlace, no se pueden crear ni editar en el portal. La edición del portal en C# se basa en un script en C#, que usa function.json, en lugar de los atributos.

Para más información sobre cómo agregar enlaces a funciones existentes, consulte Conexión de funciones a servicios de Azure mediante enlaces.

Para los lenguajes que se escriben dinámicamente, como JavaScript, use la propiedad dataType del archivo dataType. Por ejemplo, para leer el contenido de una solicitud HTTP en formato binario, establezca dataType en binary:

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

Otras opciones para dataType son stream y string.

Dirección de los enlaces

Todos los desencadenadores y enlaces tienen una propiedad direction en el archivo direction:

  • En el caso de los desencadenadores, esta propiedad siempre aparece como in
  • Los enlaces de entrada y de salida usan in y out
  • Algunos enlaces admiten la dirección especial inout. Si utiliza inout, solo estará disponible la opción inout mediante la pestaña Integrar en el 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.

Incorporación de enlaces a una función

Puede conectar la función a otros servicios mediante enlaces de entrada o salida. Para incorporar un enlace, agregue sus definiciones específicas a la función. Para obtener información sobre cómo hacerlo, vea Incorporación de enlaces a una función existente de Azure Functions.

Enlaces admitidos

En esta tabla se muestran los enlaces que son compatibles con las versiones principales del entorno en tiempo de ejecución de Azure Functions:

Tipo 1.x1 2.x y versiones posteriores2 Desencadenador Entrada Output
Blob Storage
Azure Cosmos DB
Azure Data Explorer
SQL de Azure
Dapr4
Event Grid
Event Hubs
HTTP y webhooks
IoT Hub
Kafka3
Mobile Apps
Centros de notificaciones
Queue Storage
Redis
RabbitMQ3
SendGrid
Service Bus
SignalR
Table storage
Temporizador
Twilio

1El soporte para la versión 1.x del entorno de ejecución de Azure Functions finalizará el 14 de septiembre de 2026. Se recomienda encarecidamente migrar las aplicaciones a la versión 4.x para obtener soporte completo.

2 A partir de la versión 2.x del entorno de ejecución, se deben registrar todos los enlaces, excepto HTTP y el temporizador. Consulte Registro de extensiones de enlace.

3 Los desencadenadores no se admiten en el plan de consumo. Requiere desencadenadores controlados por el runtime.

4 Solo se admite en Kubernetes, IoT Edge y otros modos autohospedados.

Para información sobre qué enlaces están en versión preliminar o aprobados para su uso en producción, consulte los lenguajes admitidos.

Las versiones de extensión de enlace específicas solo se admiten mientras se admite el SDK del servicio subyacente. Los cambios en la compatibilidad con la versión del SDK del servicio subyacente afectan a la compatibilidad con la extensión de consumo.

Ejemplos de código de enlaces

Use la tabla siguiente para buscar ejemplos de tipos de enlaces específicos que muestren cómo trabajar con enlaces en las funciones. En primer lugar, elija la pestaña de lenguaje que corresponde al proyecto.

El código de enlace para C# depende del modelo de proceso específico.

Servicio Ejemplos Ejemplos
Blob Storage Desencadenador
Entrada
Salida
Vínculo
Azure Cosmos DB Desencadenador
Entrada
Salida
Vínculo
Explorador de datos de Azure Entrada
Salida
Vínculo
Azure SQL Desencadenador
Entrada
Salida
Vínculo
Event Grid Desencadenador
Salida
Vínculo
Event Hubs Desencadenador
Salida
IoT Hub Desencadenador
Salida
HTTP Desencadenador Vínculo
Queue Storage Desencadenador
Salida
Vínculo
RabbitMQ Desencadenador
Salida
SendGrid Salida
Azure Service Bus Desencadenador
Salida
Vínculo
SignalR Desencadenador
Entrada
Salida
Almacenamiento de tablas Entrada
Salida
Temporizador Desencadenador Vínculo
Twilio Salida Vínculo
Servicio Ejemplos Ejemplos
Blob Storage Desencadenador
Entrada
Salida
Vínculo
Azure Cosmos DB Desencadenador
Entrada
Salida
Vínculo
Explorador de datos de Azure Entrada
Salida
Vínculo
Azure SQL Desencadenador
Entrada
Salida
Event Grid Desencadenador
Salida
Vínculo
Event Hubs Desencadenador
Salida
IoT Hub Desencadenador
Salida
HTTP Desencadenador Vínculo
Queue Storage Desencadenador
Salida
Vínculo
RabbitMQ Desencadenador
Salida
SendGrid Salida
Azure Service Bus Desencadenador
Salida
Vínculo
SignalR Desencadenador
Entrada
Salida
Almacenamiento de tablas Entrada
Salida
Temporizador Desencadenador Vínculo
Twilio Salida Vínculo
Servicio Ejemplos Ejemplos
Blob Storage Desencadenador
Entrada
Salida
Vínculo
Azure Cosmos DB Desencadenador
Entrada
Salida
Vínculo
Explorador de datos de Azure Entrada
Salida
Azure SQL Desencadenador
Entrada
Salida
Vínculo
Event Grid Desencadenador
Salida
Vínculo
Event Hubs Desencadenador
Salida
IoT Hub Desencadenador
Salida
HTTP Desencadenador Vínculo
Queue Storage Desencadenador
Salida
Vínculo
RabbitMQ Desencadenador
Salida
SendGrid Salida
Azure Service Bus Desencadenador
Salida
Vínculo
SignalR Desencadenador
Entrada
Salida
Almacenamiento de tablas Entrada
Salida
Temporizador Desencadenador Vínculo
Twilio Salida Vínculo

El código de enlace para Python dependerá de la versión del modelo de Python.

Servicio Ejemplos Ejemplos
Blob Storage Desencadenador
Entrada
Salida
Vínculo
Azure Cosmos DB Desencadenador
Entrada
Salida
Vínculo
Explorador de datos de Azure Entrada
Salida
Azure SQL Desencadenador
Entrada
Salida
Vínculo
Event Grid Desencadenador
Salida
Vínculo
Event Hubs Desencadenador
Salida
IoT Hub Desencadenador
Salida
HTTP Desencadenador Vínculo
Queue Storage Desencadenador
Salida
Vínculo
RabbitMQ Desencadenador
Salida
SendGrid Salida
Azure Service Bus Desencadenador
Salida
Vínculo
SignalR Desencadenador
Entrada
Salida
Almacenamiento de tablas Entrada
Salida
Temporizador Desencadenador Vínculo
Twilio Salida Vínculo

Enlaces personalizados

Puede crear enlaces de entrada y salida personalizados. Los enlaces se deben crear en .NET, pero se pueden consumir en cualquier lenguaje admitido. Para más información sobre la creación de enlaces personalizados, vea Creación de enlaces de entrada y salida personalizados.

Recursos

Pasos siguientes