Integración vnet Azure Function Flex Consumption

Alvaro Castaño 20 Reputation points
2025-12-01T19:46:55.7166667+00:00

Tengo una Azure Function en plan Flexible Consumption integrada a una VNET privada con la intención de conectarse por IP privada a un SQL Server instalado en una máquina virtual (Windows Server + SQL Server) localizada en otra VNET, conectadas mediante VNet Peering bidireccional.

Toda la configuración parece correcta, pero la Function no logra conectarse al SQL Server. Además, en el portal aparece el mensaje:

VNet integration is not healthy

🟦 Arquitectura de red

VNET 1 – VNET-AZFUNCTIONFLEX

  • Subnet: AzFuncFlexSubnet (172.17.0.0/16)

Contiene Azure Function (Flex Consumption)

  • Subnet con delegación Microsoft.App/enviroments

Sin NSG

Sin Route Table

Sin NAT Gateway

VNet peering hacia la VNET del SQL Server

VNET 2 – VNET-MSSQL

  • Subnet: 172.16.0.0/24
  • Contiene la VM con SQL Server (IP privada 172.16.0.4)
  • Firewall de Windows habilitado para 51433
  • SQL Server configurado con:
    • TCP habilitado
    • Puerto fijo 51433
    • SQL + Windows Authentication
    • Conexión externa funciona desde otras máquinas

VNet Peering (en ambos sentidos)

Allow VNet Access: Enabled

Allow Forwarded Traffic: Enabled

No Gateway Transit habilitado


Pruebas realizadas

  1. SQL Server responde en el puerto 51433 desde máquinas externas por VPN.
  2. El firewall de Windows y el NSG permiten tráfico desde 172.17.0.0/16.

SQL escucha correctamente en 51433 (verificado con netstat).

  1. La VM SQL muestra Effective Routes correctas hacia 172.17.0.0/16 vía VNet Peering.
  2. La Function usa cadena de conexión con IP privada.
  3. La delegación de la subnet es correcta: Microsoft.App/enviroment.

No se usa Private Endpoint (no aplica porque el SQL Server está en una VM IaaS).


Problema principal

La Function no consigue establecer conexión con el SQL Server, y la interfaz muestra:

VNet integration is not healthy

La integración a la VNet parece fallar internamente: ➡ aunque el portal dice que está “Connected”, realmente no está adquiriendo rutas de la VNet remota.

No existe manera visible de revisar los Effective Routes del runtime de la Function Flex (porque no expone NIC), por lo que sospecho:

La Function no está adquiriendo IP dentro de la subnet

O no está recibiendo las rutas del peering

O la integración está en estado parcial / inconsistente


  1. ¿Qué pasos recomiendan para depurar un VNet Integration is not healthy en Azure Functions Flex?
  2. ¿Existe forma oficial de ver los Effective Routes que usa el worker de Function Flex?
  3. ¿Puede una subnet /16 causar problemas de asignación de IP para Function Flex?
  4. ¿Es posible que el estado “Unhealthy” sea la razón por la cual la Function no recibe rutas del peering?
  5. ¿Qué otras causas están documentadas para VNet Integration “Unhealthy”?
  6. ¿Es necesario recrear la integración o la subnet para corregir este estado interno?
  7. ¿Alguien ha tenido este mismo problema al intentar conectar Function Flex → SQL Server en VM privada?

Cualquier guía adicional será bien recibida.

Estoy intentando determinar si se trata de un bug de VNet Integration en Flex Consumption, un problema de asignación de IP en /16, o una inconsistencia interna en el runtime de Azure Functions Flex que requiere recrearse.

Gracias por cualquier ayuda o experiencia.

Azure App Service
Azure App Service
Azure App Service is a service used to create and deploy scalable, mission-critical web apps.
{count} votes

Answer accepted by question author
  1. Pravallika KV 2,845 Reputation points Microsoft External Staff Moderator
    2025-12-01T20:34:30.8966667+00:00

    Hola @Alvaro Castaño,

    Gracias por la confirmación. Me alegra que el problema se haya resuelto. Estoy resumiendo la discusión y publicándolo como respuesta.

    solución:

    La causa principal del problema fue que el Plan de App Service asociado con la Función de Azure no estaba aplicando correctamente los parámetros de Integración con la Red Virtual. Esta configuración incorrecta impedía que la función operara como se esperaba. Al recrear todo el entorno desde cero, se aplicaron correctamente las configuraciones del Plan de App Service y la Integración con la VNet, lo que resolvió el problema.

    ¡Espero que te sea de ayuda!


    Por favor, no olvides hacer clic en "Aceptar la respuesta" y en , esto puede ser útil para otros miembros de la comunidad.

    User's image

    Si tienes alguna otra pregunta, házmelo saber en los "comentarios" y estaré encantado de ayudarte.

    0 comments No comments

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.