Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure Functions es un servicio de proceso sin servidor que puede usar para ejecutar código a petición sin tener que aprovisionar o administrar explícitamente la infraestructura. Permite implementar código desencadenado por eventos que se producen en Azure o en los servicios de asociados. Esta capacidad de Azure Functions para responder a los desencadenadores hace que sea una salida natural para Azure Stream Analytics. Este adaptador de salida permite a los usuarios conectar Stream Analytics a Azure Functions y ejecutar un script o un fragmento de código en respuesta a una variedad de eventos.
La salida de Azure Functions de Stream Analytics no está disponible en Microsoft Azure operado por 21Vianet y Azure Alemania (T-Systems International). Tampoco se admite la conexión a Azure Functions dentro de una red virtual (VNet) desde un trabajo de Stream Analytics que se ejecuta en un clúster multiinquilino.
Azure Stream Analytics invoca Azure Functions a través de desencadenadores HTTP. El adaptador de salida de Azure Functions está disponible con las siguientes propiedades configurables:
| Nombre de la propiedad | Descripción |
|---|---|
| Aplicación de función | El nombre de tu aplicación de Azure Functions. |
| Function | El nombre de la función en tu app de Azure Functions. |
| Key | Si quieres usar una función de Azure de otra suscripción, puedes hacerlo proporcionando la clave para acceder a tu función. |
| Tamaño máximo del lote | Una propiedad que te permite establecer el tamaño máximo para cada lote de salida que se envía a tu función de Azure. La unidad de entrada está en bytes. De forma predeterminada, este valor es de 262 144 bytes (256 KB). |
| Número máximo de lotes | Una propiedad que te permite especificar el número máximo de eventos en cada lote que se envía a Azure Functions. El valor predeterminado es 100. |
Azure Stream Analytics espera el estado HTTP 200 de la aplicación de Functions para lotes que se procesaron correctamente.
Cuando Azure Stream Analytics recibe una excepción 413 ("http Request Entity Too Large") de una función de Azure, reduce el tamaño de los lotes que envía a Azure Functions. En el código de la función de Azure, use esta excepción para asegurarse de que Azure Stream Analytics no envía lotes sobredimensionados. Además, asegúrese de que el número máximo de lotes y los valores de tamaño usados en la función sean coherentes con los valores especificados en el portal de Stream Analytics.
Nota:
Durante la conexión de prueba, Stream Analytics envía (POST) un lote vacío a Azure Functions para probar si la conexión entre los dos funciona. Asegúrese de que la aplicación de Functions controla las solicitudes por lotes vacías para asegurarse de que se supere la conexión de prueba.
Además, en una situación en la que no hay ningún aterrizaje de eventos en un período de tiempo, no se genera ninguna salida. Como resultado, no se llama a la función computeResult . Este comportamiento es coherente con las funciones de agregado de ventana integradas.
Partición
La clave de partición se basa en la cláusula PARTITION BY de la consulta. El número de generadores de salida sigue el particionamiento de entrada para consultas totalmente paralelizadas.
Tamaño del lote de salida
El tamaño de lote predeterminado es de 262 144 bytes (256 KB). El recuento de eventos predeterminado por lote es 100. El tamaño del lote es configurable y se puede aumentar o disminuir en las opciones de salida de Stream Analytics.
Limitación
Azure Functions debe completar su solicitud en menos de 100 segundos, ya que el cliente HTTP agota el tiempo de espera después de 100 segundos. Si azure Functions tarda más de 100 segundos en procesar un lote de datos, hay un tiempo de espera que desencadenará un reintento. Este reintento puede dar lugar a datos duplicados porque Azure Functions procesará los datos de nuevo y generará potencialmente la misma salida, ya que puede haberse generado parcialmente en la solicitud anterior.
Ejemplos de código
La salida de Azure Functions se puede usar para retransmitir mensajes a bases de datos no admitidas, como Redis o actualizar tablas en Azure SQL.
Pasos siguientes
- Inicio rápido: Creación de un trabajo de Stream Analytics mediante Azure Portal
- Inicio rápido: Creación de un trabajo de Azure Stream Analytics mediante la CLI de Azure
- Inicio rápido: Creación de un trabajo de Azure Stream Analytics mediante una plantilla de ARM
- Inicio rápido: Creación de un trabajo de Stream Analytics mediante Azure PowerShell
- Inicio rápido: Creación de un trabajo de Azure Stream Analytics mediante Visual Studio
- Inicio rápido: Creación de un trabajo de Azure Stream Analytics en Visual Studio Code