Opciones de redes de Azure FunctionsAzure Functions networking options

En este artículo se describen las características de redes disponibles en las opciones de hospedaje de Azure Functions.This article describes the networking features available across the hosting options for Azure Functions. Todas las opciones de redes siguientes ofrecen la posibilidad de acceder a recursos sin usar direcciones enrutables de Internet o de restringir el acceso a Internet a una aplicación de funciones.All the following networking options give you some ability to access resources without using internet-routable addresses or to restrict internet access to a function app.

Los modelos de hospedaje tienen diferentes niveles de aislamiento de red disponibles.The hosting models have different levels of network isolation available. Elegir el correcto le ayuda a cumplir los requisitos de aislamiento de red que tenga.Choosing the correct one helps you meet your network isolation requirements.

Puede hospedar aplicaciones de funciones de dos formas:You can host function apps in a couple of ways:

  • Puede elegir entre un conjunto de opciones de plan que se ejecutan en una infraestructura multiinquilino, con distintos niveles de conectividad de red virtual y opciones de escalado:You can choose from plan options that run on a multitenant infrastructure, with various levels of virtual network connectivity and scaling options:
    • El plan de consumo se escala dinámicamente como respuesta a la carga y ofrece opciones de aislamiento de red mínimo.The Consumption plan scales dynamically in response to load and offers minimal network isolation options.
    • El plan Premium también se escala dinámicamente y ofrece un aislamiento de red más completo.The Premium plan also scales dynamically and offers more comprehensive network isolation.
    • El plan de Azure App Service funciona en una escala fija y ofrece un aislamiento de red similar al del plan Premium.The Azure App Service plan operates at a fixed scale and offers network isolation similar to the Premium plan.
  • Puede ejecutar funciones en un App Service Environment.You can run functions in an App Service Environment. Este método implementa la función en la red virtual y ofrece aislamiento y control de la red completos.This method deploys your function into your virtual network and offers full network control and isolation.

Matriz de las características de redesMatrix of networking features

CaracterísticaFeature Plan de consumoConsumption plan Plan PremiumPremium plan Plan dedicadoDedicated plan Azure App Service EnvironmentASE KubernetesKubernetes
Restricciones de IP de entrada y acceso al sitio privadoInbound IP restrictions and private site access ✅Sí✅Yes ✅Sí✅Yes ✅Sí✅Yes ✅Sí✅Yes ✅Sí✅Yes
Integración de redes virtualesVirtual network integration ❌No❌No ✅Sí (regional)✅Yes (Regional) ✅Sí (regional y puerta de enlace)✅Yes (Regional and Gateway) ✅Sí✅Yes ✅Sí✅Yes
Desencadenadores de red virtual (no HTTP)Virtual network triggers (non-HTTP) ❌No❌No ✅Sí✅Yes ✅Sí✅Yes ✅Sí✅Yes ✅Sí✅Yes
Conexiones híbridas (solo Windows)Hybrid connections (Windows only) ❌No❌No ✅Sí✅Yes ✅Sí✅Yes ✅Sí✅Yes ✅Sí✅Yes
Restricciones de IP de salidaOutbound IP restrictions ❌No❌No ✅Sí✅Yes ✅Sí✅Yes ✅Sí✅Yes ✅Sí✅Yes

Restricciones de acceso de entradaInbound access restrictions

Puede usar restricciones de acceso para definir una lista de direcciones IP ordenadas por prioridad a las que se les permite o deniega el acceso a la aplicación.You can use access restrictions to define a priority-ordered list of IP addresses that are allowed or denied access to your app. La lista puede incluir direcciones IPv4 e IPv6, bien o subredes de red virtual específicas con puntos de conexión de servicio.The list can include IPv4 and IPv6 addresses, or specific virtual network subnets using service endpoints. Si hay una o varias entradas, existe un "denegar a todos" implícito al final de la lista.When there are one or more entries, an implicit "deny all" exists at the end of the list. Las restricciones de IP funcionan con todas las opciones de hospedaje de funciones.IP restrictions work with all function-hosting options.

Las restricciones de acceso están disponibles para Premium, Consumo y App Service.Access restrictions are available in the Premium, Consumption, and App Service.

Nota

Con las restricciones de red vigentes, solo puede implementar desde la red virtual o si ha incluido en la lista de destinatarios seguros la dirección IP del equipo que usa para acceder a Azure Portal.With network restrictions in place, you can deploy only from within your virtual network, or when you've put the IP address of the machine you're using to access the Azure portal on the Safe Recipients list. Sin embargo, todavía puede administrar la función en el portal.However, you can still manage the function using the portal.

Para obtener más información, consulte Restricciones de acceso estático de Azure App Service.To learn more, see Azure App Service static access restrictions.

Uso de puntos de conexión de servicioUse service endpoints

Con los puntos de conexión de servicio, puede restringir el acceso a las subredes de Azure Virtual Network.By using service endpoints, you can restrict access to selected Azure virtual network subnets. Para restringir el acceso a una subred específica, cree una regla de restricción con un tipo Virtual Network.To restrict access to a specific subnet, create a restriction rule with a Virtual Network type. Después, puede seleccionar la suscripción, la red virtual y la subred a las que desea permitir o denegar el acceso.You can then select the subscription, virtual network, and subnet that you want to allow or deny access to.

Si los puntos de conexión de servicio ya no están habilitados con Microsoft.Web para la subred seleccionada, se habilitarán automáticamente a menos que active la casilla Omitir los puntos de conexión de servicio de Microsoft.Web que faltan.If service endpoints aren't already enabled with Microsoft.Web for the subnet that you selected, they'll be automatically enabled unless you select the Ignore missing Microsoft.Web service endpoints check box. La situación en la que convendría habilitar puntos de conexión de servicio en la aplicación pero no en la subred depende fundamentalmente de si se tienen los permisos para habilitarlos en la subred.The scenario where you might want to enable service endpoints on the app but not the subnet depends mainly on whether you have the permissions to enable them on the subnet.

Si necesita que otra persona habilite los puntos de conexión de servicio en la subred, active la casilla Omitir los puntos de conexión de servicio de Microsoft.Web que faltan.If you need someone else to enable service endpoints on the subnet, select the Ignore missing Microsoft.Web service endpoints check box. La aplicación se configurará para los puntos de conexión de servicio en previsión de que se habiliten posteriormente en la subred.Your app will be configured for service endpoints in anticipation of having them enabled later on the subnet.

Captura de pantalla del panel "Agregar restricción de IP" con el tipo Virtual Network seleccionado.

No puede usar puntos de conexión de servicio para restringir el acceso a las aplicaciones que se ejecutan en un entorno App Service Environment.You can't use service endpoints to restrict access to apps that run in an App Service Environment. Si la aplicación está en un entorno App Service Environment, puede controlar el acceso a ella con reglas de acceso de IP.When your app is in an App Service Environment, you can control access to it by applying IP access rules.

Para más información sobre cómo configurar los puntos de conexión de servicio, consulte Establecimiento del acceso a un sitio privado de Azure Functions.To learn how to set up service endpoints, see Establish Azure Functions private site access.

Conexiones de punto de conexión privadoPrivate endpoint connections

Un punto de conexión privado de Azure es una interfaz de red que nos conecta de forma privada y segura a un servicio por medio de la tecnología Azure Private Link.Azure Private Endpoint is a network interface that connects you privately and securely to a service powered by Azure Private Link. Los puntos de conexión privados emplean una dirección IP privada de la red virtual, lo que hace que el servicio se incluya en la red virtual.Private Endpoint uses a private IP address from your virtual network, effectively bringing the service into your virtual network.

Puede usar el punto de conexión privado para las funciones hospedadas en los planes Premium y App Service.You can use Private Endpoint for your functions hosted in the Premium and App Service plans.

Al crear una conexión de punto de conexión privado entrante para las funciones, también necesitará un registro DNS para resolver la dirección privada.When creating an inbound private endpoint connection for functions, you will also need a DNS record to resolve the private address. De manera predeterminada, se creará automáticamente un registro DNS privado al crear un punto de conexión privado mediante Azure Portal.By default a private DNS record will be created for you when creating a private endpoint using the Azure portal.

Para más información, consulte cómo usar puntos de conexión privados para aplicaciones web.To learn more, see using Private Endpoints for Web Apps.

Para llamar a otros servicios que tienen una conexión de punto de conexión privado, como Storage Bus o Services Bus, asegúrese de configurar la aplicación para que haga llamadas salientes a puntos de conexión privados.To call other services that have a private endpoint connection, such as storage or service bus, be sure to configure your app to make outbound calls to private endpoints.

Integración de la red virtualVirtual network integration

La integración de red virtual permite que la aplicación de funciones acceda a recursos dentro de una red virtual.Virtual network integration allows your function app to access resources inside a virtual network. Azure Functions admite dos tipos de integración de redes virtuales:Azure Functions supports two kinds of virtual network integration:

  • Los sistemas multiinquilino que admiten todos los planes de precios, excepto Aislado.The multitenant systems that support the full range of pricing plans except Isolated.
  • App Service Environment, que se implementa en la VNet y admite aplicaciones de planes de precios aislados.The App Service Environment, which deploys into your VNet and supports Isolated pricing plan apps.

La característica Integración con red virtual se usa en aplicaciones multiinquilino.The VNet Integration feature is used in multitenant apps. Si la aplicación está en App Service Environment, ya está en una red virtual y no requiere el uso de la característica Integración con red virtual para acceder a recursos en la misma red virtual.If your app is in App Service Environment, then it's already in a VNet and doesn't require use of the VNet Integration feature to reach resources in the same VNet. Para obtener más información sobre todas las características de redes, consulte Características de redes de App Service.For more information on all of the networking features, see App Service networking features.

Integración con red virtual proporciona a la aplicación el acceso a los recursos de la VNet, pero no concede el acceso privado de entrada a la aplicación desde la VNet.VNet Integration gives your app access to resources in your VNet, but it doesn't grant inbound private access to your app from the VNet. El acceso privado a sitios se refiere a que solo se puede acceder a la aplicación desde una red privada; por ejemplo, desde dentro de una red virtual de Azure.Private site access refers to making an app accessible only from a private network, such as from within an Azure virtual network. Integración con red virtual solo se usa para realizar llamadas de salida desde la aplicación a la VNet.VNet Integration is used only to make outbound calls from your app into your VNet. La característica Integración con red virtual se comporta de forma diferente cuando se usa con las VNet de la misma región y con las VNet de otras regiones.The VNet Integration feature behaves differently when it's used with VNet in the same region and with VNet in other regions. Esta característica tiene dos variantes:The VNet Integration feature has two variations:

  • Integración con red virtual regional: cuando se conecta a redes virtuales de Azure Resource Manager en la misma región, debe tener una subred dedicada en la VNet con la que se va a realizar la integración.Regional VNet Integration: When you connect to Azure Resource Manager virtual networks in the same region, you must have a dedicated subnet in the VNet you're integrating with.
  • Integración con red virtual con requisito de puerta de enlace: para conectarse a las VNet de otras regiones o a una red virtual clásica de la misma región, necesita una puerta de enlace de Azure Virtual Network aprovisionada en la VNet de destino.Gateway-required VNet Integration: When you connect to VNet in other regions or to a classic virtual network in the same region, you need an Azure Virtual Network gateway provisioned in the target VNet.

Integración con red virtual tiene las siguientes características:The VNet Integration features:

  • Necesita un plan de precios Estándar, Prémium, Prémium v2, Prémium v3 o Elástico Prémium.Require a Standard, Premium, PremiumV2, PremiumV3, or Elastic Premium pricing plan.
  • Es compatible con TCP y UDP.Support TCP and UDP.
  • Funciona con aplicaciones de Azure App Service y de funciones.Work with Azure App Service apps and function apps.

Hay algunos aspectos que Integración con red virtual no admite, como los siguientes:There are some things that VNet Integration doesn't support, like:

  • Montar una unidad.Mounting a drive.
  • Integración con Active Directory.Active Directory integration.
  • NetBIOS.NetBIOS.

Cuando Integración con red virtual necesita una puerta de enlace, solo proporciona acceso a los recursos de la VNet de destino o de las redes conectadas a esta que tienen emparejamiento o redes privadas virtuales.Gateway-required VNet Integration provides access to resources only in the target VNet or in networks connected to the target VNet with peering or VPNs. Integración con red virtual con requisito de puerta de enlace no permite acceder a los recursos disponibles en las conexiones de Azure ExpressRoute ni funciona con puntos de conexión de servicio.Gateway-required VNet Integration doesn't enable access to resources available across Azure ExpressRoute connections or works with service endpoints.

Independientemente de la versión que se use, Integración con red virtual ofrece a la aplicación el acceso a los recursos de la VNet, pero no concede el acceso privado de entrada a la aplicación desde la VNet.Regardless of the version used, VNet Integration gives your app access to resources in your VNet, but it doesn't grant inbound private access to your app from the VNet. El acceso privado a sitios se refiere a que solo se puede acceder a la aplicación desde una red privada (por ejemplo, desde dentro de una VNet de Azure).Private site access refers to making your app accessible only from a private network, such as from within an Azure VNet. Integración con red virtual solo sirve para realizar llamadas salientes desde la aplicación hacia la red virtual.VNet Integration is only for making outbound calls from your app into your VNet.

La integración de red virtual de Azure Functions usa una infraestructura compartida con las aplicaciones web de App Service.Virtual network integration in Azure Functions uses shared infrastructure with App Service web apps. Para obtener más información sobre los dos tipos de integración de red virtual, vea:To learn more about the two types of virtual network integration, see:

Para aprender a configurar la integración de red virtual, consulte Tutorial: integración de Functions con una red virtual de Azure.To learn how to set up virtual network integration, see Integrate a function app with an Azure virtual network.

Integración de red virtual regionalRegional virtual network integration

Cuando se utiliza la versión regional de Integración con red virtual, la aplicación puede acceder a:Using regional VNet Integration enables your app to access:

  • Recursos en una VNet de la misma región que la aplicación.Resources in a VNet in the same region as your app.
  • Recursos de las VNet emparejadas con la VNet con la que se integra la aplicación.Resources in VNets peered to the VNet your app is integrated with.
  • Servicios protegidos mediante puntos de conexión de servicio.Service endpoint secured services.
  • Recursos de diferentes conexiones de Azure ExpressRoute.Resources across Azure ExpressRoute connections.
  • Recursos de la VNet con la que está integrado.Resources in the VNet you're integrated with.
  • Recursos en conexiones emparejadas, lo que incluye conexiones de Azure ExpressRoute.Resources across peered connections, which include Azure ExpressRoute connections.
  • Puntos de conexión privadosPrivate endpoints

Si Integración con red virtual se utiliza con redes virtuales de la misma región, se pueden usar las siguientes características de redes de Azure:When you use VNet Integration with VNets in the same region, you can use the following Azure networking features:

  • Grupos de seguridad de red (NSG) : el tráfico saliente se puede bloquear con un grupo de seguridad de red que se encuentre en la subred de integración.Network security groups (NSGs): You can block outbound traffic with an NSG that's placed on your integration subnet. Las reglas de entrada no se aplican, ya que Integración con red virtual no se puede usar para proporcionar acceso de entrada a la aplicación.The inbound rules don't apply because you can't use VNet Integration to provide inbound access to your app.
  • Tablas de enrutamiento (UDR) : puede colocar una tabla de enrutamiento en la subred de integración para enviar el tráfico de salida donde quiera.Route tables (UDRs): You can place a route table on the integration subnet to send outbound traffic where you want.

De forma predeterminada, su aplicación solo enruta el tráfico de RFC 1918 a su VNet.By default, your app routes only RFC1918 traffic into your VNet. Si desea enrutar todo el tráfico de salida a la red virtual, aplique el valor WEBSITE_VNET_ROUTE_ALL a la aplicación.If you want to route all of your outbound traffic into your VNet, apply the app setting WEBSITE_VNET_ROUTE_ALL to your app. Para configurar este valor de la aplicación:To configure the app setting:

  1. Vaya a la interfaz de usuario de Configuración en el portal de la aplicación.Go to the Configuration UI in your app portal. Seleccione New application setting (Nueva configuración de la aplicación).Select New application setting.

  2. Escriba WEBSITE_VNET_ROUTE_ALL en el cuadro Nombre y 1 en el cuadro Valor.Enter WEBSITE_VNET_ROUTE_ALL in the Name box, and enter 1 in the Value box.

    Configuración del valor de la aplicación

  3. Seleccione Aceptar.Select OK.

  4. Seleccione Guardar.Select Save.

Nota

Si enruta todo el tráfico de salida a la VNet, este estará sujeto a los grupos de seguridad de red y las rutas definidas por los usuarios que se apliquen a la subred de integración.If you route all of your outbound traffic into your VNet, it's subject to the NSGs and UDRs that are applied to your integration subnet. Si enruta todo el tráfico de salida a la VNet, las direcciones de salida seguirán siendo las que aparecen en las propiedades de la aplicación, a menos que proporcione otras rutas para enviar allí el tráfico.When you route all of your outbound traffic into your VNet, your outbound addresses are still the outbound addresses that are listed in your app properties unless you provide routes to send the traffic elsewhere.

Existen algunas limitaciones cuando se la característica Integración con red virtual se utiliza con redes virtuales que están en la misma región:There are some limitations with using VNet Integration with VNets in the same region:

  • No se puede acceder a los recursos en las conexiones de emparejamiento global.You can't reach resources across global peering connections.
  • La característica está disponible en todas las unidades de escalado de App Service de nivel Premium V2 y Premium V3.The feature is available from all App Service scale units in Premium V2 and Premium V3. También está disponible en Estándar, pero solo desde las unidades de escalado de App Service más recientes.It is also available in Standard but only from newer App Service scale units. Si está en una unidad de escalado anterior, solo puede usar la característica desde un plan de App Service Premium V2.If you are on an older scale unit you can only use the feature from a Premium V2 App Service plan. Si quiere estar seguro de que puede usar la característica en un plan de App Service Estándar, cree la aplicación en un plan de App Service Premium V3.If you want to be certain of being able to use the feature in a Standard App Service plan, create your app in a Premium V3 App Service plan. Estos planes solo se admiten en las unidades de escalado más recientes.Those plans are only supported on our newest scale units. Si quiere, después puede reducir verticalmente.You can scale down if you desire after that.
  • La subred de integración solo puede usarla un plan de App Service.The integration subnet can be used by only one App Service plan.
  • Las aplicaciones del plan Aislado que estén en una instancia de App Service Environment no pueden usar la característica.The feature can't be used by Isolated plan apps that are in an App Service Environment.
  • La característica requiere una subred sin usar que sea /28 o mayor en una red virtual de Azure Resource Manager.The feature requires an unused subnet that's a /28 or larger in an Azure Resource Manager VNet.
  • La aplicación y la VNet deben estar en la misma región.The app and the VNet must be in the same region.
  • No puede eliminar una VNet con una aplicación integrada.You can't delete a VNet with an integrated app. Quite la integración antes de eliminar la VNet.Remove the integration before you delete the VNet.
  • Solo puede integrar con redes virtuales de la misma suscripción que la aplicación.You can only integrate with VNets in the same subscription as the app.
  • Solo se puede tener una característica Integración con red virtual regional por plan de App Service.You can have only one regional VNet Integration per App Service plan. Varias aplicaciones en el mismo plan de App Service pueden usar la misma red virtual.Multiple apps in the same App Service plan can use the same VNet.
  • No se puede cambiar la suscripción de una aplicación o un plan mientras haya una aplicación que use Integración con red virtual regional.You can't change the subscription of an app or a plan while there's an app that's using regional VNet Integration.
  • La aplicación no puede resolver direcciones en Azure DNS Private Zones sin que se realicen cambios en la configuraciónYour app cannot resolve addresses in Azure DNS Private Zones without configuration changes

La integración con red virtual depende del uso de una subred dedicada.VNet Integration depends on use of a dedicated subnet. Al aprovisionar una subred, la subred de Azure pierde 5 direcciones IP desde el inicio.When you provision a subnet, the Azure subnet loses 5 IPs for from the start. Se usa una dirección de la subred de integración para cada instancia del plan.One address is used from the integration subnet for each plan instance. Si escala la aplicación a cuatro instancias, se usan cuatro direcciones.If you scale your app to four instances, then four addresses are used. El débito de 5 direcciones del tamaño de la subred significa que el número máximo de direcciones disponibles por bloque CIDR es:The debit of 5 addresses from the subnet size mean that the maximum available addresses per CIDR block are:

  • /28 tiene 11 direcciones/28 has 11 addresses
  • /27 tiene 27 direcciones/27 has 27 address
  • /26 tiene 59 direcciones/26 has 59 addresses

Si escala o reduce verticalmente el tamaño, necesita doblar la necesidad de la dirección durante un breve período de tiempo.If you scale up or down in size, you need double your address need for a short period of time. Los límites de tamaño significan que las instancias compatibles reales disponibles por tamaño de subred son:The limits in size means that the real available supported instances per subnet size are, if your subnet is a:

  • Si la subred es /28, la escala horizontal máxima es de 5 instancias/28, your maximum horizontal scale is 5 instances
  • Si la subred es /27, la escala horizontal máxima es de 13 instancias/27, your maximum horizontal scale is 13 instances
  • Si la subred es /26, la escala horizontal máxima es de 29 instancias/26, your maximum horizontal scale is 29 instances

Los límites indicados en la escala horizontal máxima dan por hecho que va a necesitar escalar o reducir verticalmente el tamaño o la SKU en algún momento.The limits noted on maximum horizontal scale assumes that you will need to scale up or down in either size or SKU at some point.

Puesto que el tamaño de la subred no se puede cambiar después de la asignación, use una subred lo suficientemente grande como para dar cabida a cualquier escala que pueda alcanzar la aplicación.Since subnet size can't be changed after assignment, use a subnet that's large enough to accommodate whatever scale your app might reach. Para evitar problemas con la capacidad de la subred, el tamaño recomendado es /26 con 64 direcciones.To avoid any issues with subnet capacity, a /26 with 64 addresses is the recommended size.

Si quiere que las aplicaciones de otro plan lleguen a una VNet a la que ya están conectadas aplicaciones de otro plan, debe seleccionar una subred distinta a la usada por la característica Integración con VNet ya existente.If you want your apps in another plan to reach a VNet that's already connected to by apps in another plan, select a different subnet than the one being used by the preexisting VNet Integration.

La característica es totalmente compatible con aplicaciones para Windows y Linux, incluidos los contenedores personalizados.The feature is fully supported for both Windows and Linux apps, including custom containers. Todos los comportamientos actúan del mismo modo entre aplicaciones para Windows y Linux.All of the behaviors act the same between Windows apps and Linux apps.

Puntos de conexión del servicioService endpoints

La versión regional de Integración con red virtual permite utilizar puntos de conexión de servicio.Regional VNet Integration enables you to use service endpoints. Si desea usar puntos de conexión de servicio con la aplicación, utilice la versión regional de Integración con red virtual para conectarse a una VNet seleccionada y configurar después los puntos de conexión de servicio con el servicio de destino en la subred que utilice para realizar la integración.To use service endpoints with your app, use regional VNet Integration to connect to a selected VNet and then configure service endpoints with the destination service on the subnet you used for the integration. Si luego desea tener acceso a un servicio a través de puntos de conexión de servicio:If you then wanted to access a service over service endpoints:

  1. Configure la versión regional de Integración con red virtual con su aplicación web.configure regional VNet Integration with your web app
  2. Vaya al servicio de destino y configure los puntos de conexión de servicio en la subred usada para la integración.go to the destination service and configure service endpoints against the subnet used for integration

Grupos de seguridad de redNetwork security groups

Puede usar grupos de seguridad de red para bloquear el tráfico de entrada y salida de los recursos de una VNet.You can use network security groups to block inbound and outbound traffic to resources in a VNet. Una aplicación que emplee la versión regional de Integración con red virtual puede usar un grupo de seguridad de red para bloquear el tráfico de salida a los recursos de la VNet o Internet.An app that uses regional VNet Integration can use a network security group to block outbound traffic to resources in your VNet or the internet. Para bloquear el tráfico dirigido a direcciones públicas, debe tener el valor WEBSITE_VNET_ROUTE_ALL de la aplicación establecido en 1.To block traffic to public addresses, you must have the application setting WEBSITE_VNET_ROUTE_ALL set to 1. Las reglas de entrada de un grupo de seguridad de red no se aplican a la aplicación, ya que Integración con red virtual solo afecta al tráfico saliente de la aplicación.The inbound rules in an NSG don't apply to your app because VNet Integration affects only outbound traffic from your app.

Para controlar el trafico de entrada a la aplicación, use la característica Restricciones de acceso.To control inbound traffic to your app, use the Access Restrictions feature. Un grupo de seguridad de red que se aplique a la subred de integración está en vigor, con independencia de las rutas aplicadas a la subred de integración.An NSG that's applied to your integration subnet is in effect regardless of any routes applied to your integration subnet. Si WEBSITE_VNET_ROUTE_ALL está establecido en 1 y no tiene ninguna ruta que afecte al tráfico de direcciones públicas en la subred de integración, todo el tráfico de salida sigue estando sujeto a los grupos de seguridad de red asignados a la subred de integración.If WEBSITE_VNET_ROUTE_ALL is set to 1 and you don't have any routes that affect public address traffic on your integration subnet, all of your outbound traffic is still subject to NSGs assigned to your integration subnet. Si WEBSITE_VNET_ROUTE_ALL no se ha definido, los grupos de seguridad de red solo se aplican al tráfico de RFC 1918.If WEBSITE_VNET_ROUTE_ALL isn't set, NSGs are only applied to RFC1918 traffic.

RutasRoutes

Las tablas de enrutamiento se pueden usar para enrutar el tráfico de salida de la aplicación al lugar que se desee.You can use route tables to route outbound traffic from your app to wherever you want. De forma predeterminada, las tablas de enrutamiento solo afectan al tráfico de destino de RFC 1918.By default, route tables only affect your RFC1918 destination traffic. Si WEBSITE_VNET_ROUTE_ALL se establece en 1, se verán afectadas todas las llamadas salientes.If you set WEBSITE_VNET_ROUTE_ALL to 1, all of your outbound calls are affected. Las rutas que se establecen en la subred de integración no afectan a las respuestas a las solicitudes de entrada de la aplicación.Routes that are set on your integration subnet won't affect replies to inbound app requests. Los destinos más habituales suelen ser puertas de enlace o dispositivos de firewall.Common destinations can include firewall devices or gateways.

Si desea enrutar todo el tráfico de salida del entorno local, puede utilizar una tabla de rutas para enviar el tráfico de salida a la puerta de enlace de ExpressRoute.If you want to route all outbound traffic on-premises, you can use a route table to send all outbound traffic to your ExpressRoute gateway. Si no enruta el tráfico a una puerta de enlace, asegúrese de establecer las rutas en la red externa para poder enviar de vuelta las respuestas.If you do route traffic to a gateway, be sure to set routes in the external network to send any replies back.

Las rutas del Protocolo de puerta de enlace de borde (BGP) también afectan al tráfico de la aplicación.Border Gateway Protocol (BGP) routes also affect your app traffic. Si tiene rutas de BGP cuyo origen es algo similar a una puerta de enlace de ExpressRoute, el tráfico de salida de la aplicación se verá afectado.If you have BGP routes from something like an ExpressRoute gateway, your app outbound traffic will be affected. De forma predeterminada, las rutas de BGP solo afectan al tráfico de destino de RFC 1918.By default, BGP routes affect only your RFC1918 destination traffic. Si WEBSITE_VNET_ROUTE_ALL está establecido en 1, todo el tráfico de salida puede verse afectado por las rutas de BGP.If WEBSITE_VNET_ROUTE_ALL is set to 1, all outbound traffic can be affected by your BGP routes.

Azure DNS Private ZonesAzure DNS Private Zones

Una vez que la aplicación se integra con la red virtual, usa el mismo servidor DNS que el configurado para la red virtual.After your app integrates with your VNet, it uses the same DNS server that your VNet is configured with. Para invalidar este comportamiento en la aplicación, configure el valor de la aplicación WEBSITE_DNS_SERVER con la dirección del servidor DNS que quiera.You can override this behavior on your app by configuring the app setting WEBSITE_DNS_SERVER with the address of your desired DNS server. Si tiene un servidor DNS personalizado configurado con la red virtual, pero quiere que la aplicación use zonas privadas de Azure DNS, debe establecer WEBSITE_DNS_SERVER con el valor 168.63.129.16.If you had a custom DNS server configured with your VNet but wanted to have your app use Azure DNS private zones, you should set WEBSITE_DNS_SERVER with value 168.63.129.16.

Puntos de conexión privadosPrivate endpoints

Si quiere realizar llamadas a Puntos de conexión privados, debe asegurarse de que las búsquedas de DNS se resuelvan en el punto de conexión privado.If you want to make calls to Private Endpoints, then you need to ensure that your DNS lookups will resolve to the private endpoint. Para asegurarse de que las búsquedas de DNS de la aplicación apunten a los puntos de conexión privados, puede:To ensure that the DNS lookups from your app will point to your private endpoints you can:

  • realizar la integración con Azure DNS Private Zones.integrate with Azure DNS Private Zones. Si la red virtual no tiene un servidor DNS personalizado, esto es automáticoIf your VNet doesn't have a custom DNS server, this will be automatic
  • administrar el punto de conexión privado en el servidor DNS que usa la aplicación.manage the private endpoint in the DNS server used by your app. Para ello, debe conocer la dirección del punto de conexión privado y, a continuación, apuntar el punto de conexión al que está intentando acceder a esa dirección con un registro ATo do this you need to know the private endpoint address and then point the endpoint you are trying to reach to that address with an A record.
  • configurar su propio servidor DNS para reenviarlo a Azure DNS Private Zonesconfigure your own DNS server to forward to Azure DNS private zones

Conexión a recursos protegidos del punto de conexión de servicioConnect to service endpoint secured resources

Con el fin de proporcionar un mayor nivel de seguridad, puede restringir una serie de servicios de Azure a una red virtual mediante puntos de conexión de servicio.To provide a higher level of security, you can restrict a number of Azure services to a virtual network by using service endpoints. Después debe integrar la aplicación de funciones con esa red virtual para acceder al recurso.You must then integrate your function app with that virtual network to access the resource. Esta configuración es compatible con todos los planes que admiten la integración de redes virtuales.This configuration is supported on all plans that support virtual network integration.

Para más información, consulte Puntos de conexión de servicio de red virtual.To learn more, see Virtual network service endpoints.

Restricción de la cuenta de almacenamiento a una red virtual (versión preliminar)Restrict your storage account to a virtual network (preview)

Al crear una aplicación de funciones, debe crear una cuenta de Azure Storage de uso general compatible con Blob, Queue y Table Storage, o vincular a una.When you create a function app, you must create or link to a general-purpose Azure Storage account that supports Blob, Queue, and Table storage. Puede reemplazar esta cuenta de almacenamiento por una que esté protegida con puntos de conexión de servicio o punto de conexión privado.You can replace this storage account with one that is secured with service endpoints or private endpoint. Esta característica de vista previa solo funciona actualmente con planes Premium de Windows en la región Oeste de Europa.This preview feature currently only works with Windows Premium plans in West Europe. Para configurar una función con una cuenta de almacenamiento restringida a una red privada:To set up a function with a storage account restricted to a private network:

Nota

La restricción de la cuenta de almacenamiento solo funciona actualmente para las funciones Premium con Windows en la región Oeste de Europa.Restricting the storage account only currently works for Premium functions using Windows in West Europe

  1. Cree una función con una cuenta de almacenamiento que no tenga habilitados los puntos de conexión de servicio.Create a function with a storage account that does not have service endpoints enabled.
  2. Configure la función para conectarse a la red virtual.Configure the function to connect to your virtual network.
  3. Cree o configure una cuenta de almacenamiento diferente.Create or configure a different storage account. Será la cuenta de almacenamiento que se proteja con los puntos de conexión de servicio y se conecte a la función.This will be the storage account we secure with service endpoints and connect our function.
  4. Cree un recurso compartido de archivos en la cuenta de almacenamiento protegida.Create a file share in the secured storage account.
  5. Habilite los puntos de conexión de servicio o el punto de conexión privado para la cuenta de almacenamiento.Enable service endpoints or private endpoint for the storage account.
    • Si se usan conexiones de punto de conexión privado, la cuenta de almacenamiento necesitará un punto de conexión privado para los subrecursos file y blob.If using private endpoint connections, the storage account will need a private endpoint for the file and blob subresources. Si se usan ciertas funcionalidades como Durable Functions, también necesitará que se pueda acceder a queue y table a través de una conexión de punto de conexión privado.If using certain capabilities like Durable Functions, you will also need queue and table accessible through a private endpoint connection.
    • Si usa puntos de conexión de servicio, habilite la subred dedicada a las aplicaciones de funciones para las cuentas de almacenamiento.If using service endpoints, enable the subnet dedicated to your function apps for storage accounts.
  6. (Opcional) Copie el contenido del archivo y el blob de la cuenta de almacenamiento de la aplicación de funciones en la cuenta de almacenamiento protegida y el recurso compartido de archivos.(Optional) Copy the file and blob content from the function app storage account to the secured storage account and file share.
  7. Copie la cadena de conexión para esta cuenta de almacenamiento.Copy the connection string for this storage account.
  8. Actualice el contenido de Configuración de la aplicación que se encuentra en Configuración para la aplicación de funciones a lo siguiente:Update the Application Settings under Configuration for the function app to the following:
    • AzureWebJobsStorage a la cadena de conexión de la cuenta de almacenamiento.AzureWebJobsStorage to the connection string for the secured storage account.
    • WEBSITE_CONTENTAZUREFILECONNECTIONSTRING a la cadena de conexión de la cuenta de almacenamiento.WEBSITE_CONTENTAZUREFILECONNECTIONSTRING to the connection string for the secured storage account.
    • WEBSITE_CONTENTSHARE al nombre del recurso compartido de archivos creado en la cuenta de almacenamiento protegida.WEBSITE_CONTENTSHARE to the name of the file share created in the secured storage account.
    • Cree una nueva configuración con el nombre WEBSITE_CONTENTOVERVNET y el valor de 1.Create a new setting with the name WEBSITE_CONTENTOVERVNET and value of 1.
    • Si la cuenta de almacenamiento usa conexiones de punto de conexión privado, compruebe o agregue la configuración siguiente:If the storage account is using private endpoint connections, verify or add the following settings
      • WEBSITE_VNET_ROUTE_ALL con un valor de 1.WEBSITE_VNET_ROUTE_ALL with a value of 1.
      • WEBSITE_DNS_SERVER con un valor de 168.63.129.16.WEBSITE_DNS_SERVER with a value of 168.63.129.16
  9. Guarde la configuración de la aplicación.Save the application settings.

La aplicación de funciones se reiniciará y ahora se conectará a una cuenta de almacenamiento protegida.The function app will restart and will now be connected to a secured storage account.

Uso de referencias de Key VaultUse Key Vault references

Puede usar las referencias de Azure Key Vault para utilizar secretos de esta solución en la aplicación Azure Functions sin necesidad de realizar cambios en el código.You can use Azure Key Vault references to use secrets from Azure Key Vault in your Azure Functions application without requiring any code changes. Azure Key Vault es un servicio que proporciona administración centralizada de los secretos, con control total sobre las directivas de acceso y el historial de auditoría.Azure Key Vault is a service that provides centralized secrets management, with full control over access policies and audit history.

Actualmente las referencias de Key Vault no funcionan si el almacén de claves está protegido con puntos de conexión de servicio.Currently, Key Vault references won't work if your key vault is secured with service endpoints. Para conectarse a un almacén de claves mediante la integración de la red virtual, deberá llamar a Key Vault en el código de la aplicación.To connect to a key vault by using virtual network integration, you need to call Key Vault in your application code.

Desencadenadores de red virtual (no HTTP)Virtual network triggers (non-HTTP)

Actualmente, puede usar funciones de desencadenador no HTTP desde una red virtual de una de estas dos formas:Currently, you can use non-HTTP trigger functions from within a virtual network in one of two ways:

  • Ejecute la aplicación de funciones en un plan Premium y habilite la compatibilidad con el desencadenador de red virtual.Run your function app in a Premium plan and enable virtual network trigger support.
  • Ejecute una aplicación de funciones en un plan de App Service o App Service Environment.Run your function app in an App Service plan or App Service Environment.

Plan Premium con desencadenadores de red virtualPremium plan with virtual network triggers

Cuando cuenta con un plan Premium, puede conectar funciones de desencadenador no HTTP a los servicios que se ejecutan en una red virtual.When you run a Premium plan, you can connect non-HTTP trigger functions to services that run inside a virtual network. Para ello, debe habilitar la compatibilidad con el desencadenador de red virtual para la aplicación de funciones.To do this, you must enable virtual network trigger support for your function app. La configuración Supervisión de la escala en tiempo de ejecución se encuentra en Azure Portal, en Configuración > Configuración del tiempo de ejecución de la función.The Runtime Scale Monitoring setting is found in the Azure portal under Configuration > Function runtime settings.

VNETToggle

También puede habilitar los desencadenadores de red virtual mediante el siguiente comando de la CLI de Azure:You can also enable virtual network triggers by using the following Azure CLI command:

az resource update -g <resource_group> -n <function_app_name>/config/web --set properties.functionsRuntimeScaleMonitoringEnabled=1 --resource-type Microsoft.Web/sites

Sugerencia

Habilitar los desencadenadores de red virtual puede afectar al rendimiento de la aplicación, ya que las instancias del plan de App Service deberán supervisar los desencadenadores para determinar cuándo se debe escalar.Enabling virtual network triggers may have an impact on the performance of your application since your App Service plan instances will need to monitor your triggers to determine when to scale. Es probable que este impacto sea muy pequeño.This impact is likely to be very small.

Los desencadenadores de red virtual se admiten en la versión 2.x y superior del tiempo de ejecución de Functions.Virtual network triggers are supported in version 2.x and above of the Functions runtime. Se admiten los siguientes tipos de desencadenador no HTTP.The following non-HTTP trigger types are supported.

ExtensiónExtension Versión mínimaMinimum version
Microsoft.Azure.WebJobs.Extensions.StorageMicrosoft.Azure.WebJobs.Extensions.Storage 3.0.10 o superior3.0.10 or above
Microsoft.Azure.WebJobs.Extensions.EventHubsMicrosoft.Azure.WebJobs.Extensions.EventHubs 4.1.0 o superior4.1.0 or above
Microsoft.Azure.WebJobs.Extensions.ServiceBusMicrosoft.Azure.WebJobs.Extensions.ServiceBus 3.2.0 o superior3.2.0 or above
Microsoft.Azure.WebJobs.Extensions.CosmosDBMicrosoft.Azure.WebJobs.Extensions.CosmosDB 3.0.5 o superior3.0.5 or above
Microsoft.Azure.WebJobs.Extensions.DurableTaskMicrosoft.Azure.WebJobs.Extensions.DurableTask 2.0.0 o superior2.0.0 or above

Importante

Cuando se habilita la compatibilidad con desencadenadores de red virtual, solo los tipos de desencadenador incluidos en la tabla anterior se escalan dinámicamente con la aplicación.When you enable virtual network trigger support, only the trigger types shown in the previous table scale dynamically with your application. Podrá seguir usando desencadenadores que no figuran en la tabla, pero no se escalarán más allá de su recuento de instancias activadas previamente.You can still use triggers that aren't in the table, but they're not scaled beyond their pre-warmed instance count. Consulte la lista completa de los desencadenadores en Enlaces admitidos.For the complete list of triggers, see Triggers and bindings.

Plan de App Service y App Service Environment con desencadenadores de red virtualApp Service plan and App Service Environment with virtual network triggers

Cuando la aplicación de funciones se ejecuta en un plan de App Service o en App Service Environment, puede usar funciones de desencadenador no HTTP.When your function app runs in either an App Service plan or an App Service Environment, you can use non-HTTP trigger functions. Para que las funciones se desencadenen correctamente, debe estar conectado a una red virtual con acceso al recurso definido en la conexión del desencadenador.For your functions to get triggered correctly, you must be connected to a virtual network with access to the resource defined in the trigger connection.

Por ejemplo, imagine que quiere configurar Azure Cosmos DB para aceptar el tráfico solo desde una red virtual.For example, assume you want to configure Azure Cosmos DB to accept traffic only from a virtual network. En este caso, debe implementar la aplicación de funciones en un plan de App Service que proporcione integración de red virtual con esa red virtual.In this case, you must deploy your function app in an App Service plan that provides virtual network integration with that virtual network. La integración permite que un recurso de Azure Cosmos DB desencadene una función.Integration enables a function to be triggered by that Azure Cosmos DB resource.

conexiones híbridasHybrid Connections

Conexiones híbridas es una característica de Azure Relay que se puede usar para acceder a recursos de la aplicación en otras redes.Hybrid Connections is a feature of Azure Relay that you can use to access application resources in other networks. Proporciona acceso desde la aplicación a un punto de conexión de la aplicación.It provides access from your app to an application endpoint. No se puede usar para acceder a la aplicación.You can't use it to access your application. Las conexiones híbridas están disponibles en funciones que se ejecutan Windows con todos los planes, excepto el plan Consumo.Hybrid Connections is available to functions that run on Windows in all but the Consumption plan.

Dado que se usa en Azure Functions, cada conexión híbrida se correlaciona con una combinación única de host y puerto TCP.As used in Azure Functions, each hybrid connection correlates to a single TCP host and port combination. Esto significa que el punto de conexión de la conexión híbrida puede estar en cualquier sistema operativo y en cualquier aplicación, siempre que se acceda a un puerto de escucha TCP.This means that the hybrid connection's endpoint can be on any operating system and any application as long as you're accessing a TCP listening port. La característica Conexiones híbridas no sabe lo que es el protocolo de aplicación ni a qué se accede.The Hybrid Connections feature doesn't know or care what the application protocol is or what you're accessing. Simplemente ofrece acceso a la red.It just provides network access.

Para obtener más información, vea la documentación de App Service para Conexiones híbridas.To learn more, see the App Service documentation for Hybrid Connections. Estos mismos pasos de configuración sirven para Azure Functions.These same configuration steps support Azure Functions.

Importante

Las conexiones híbridas solo se admiten en los planes de Windows.Hybrid Connections is only supported on Windows plans. Linux no se admite.Linux isn't supported.

Restricciones de IP de salidaOutbound IP restrictions

Las restricciones de IP de salida solo están disponibles para el plan Premium, el plan de App Service o App Service Environment.Outbound IP restrictions are available in a Premium plan, App Service plan, or App Service Environment. Puede configurar las restricciones de salida de la red virtual en la que está implementado el App Service Environment.You can configure outbound restrictions for the virtual network where your App Service Environment is deployed.

Cuando se integra una aplicación de funciones de un plan Premium o un plan de App Service con una red virtual, la aplicación todavía puede realizar llamadas salientes a Internet de forma predeterminada.When you integrate a function app in a Premium plan or an App Service plan with a virtual network, the app can still make outbound calls to the internet by default. Al agregar la configuración de aplicación WEBSITE_VNET_ROUTE_ALL=1, se fuerza el envío de todo el tráfico de salida a la red virtual, donde se pueden usar reglas de grupo de seguridad de red para restringir el tráfico.By adding the application setting WEBSITE_VNET_ROUTE_ALL=1, you force all outbound traffic to be sent into your virtual network, where network security group rules can be used to restrict traffic.

AutomationAutomation

Las siguientes API permiten administrar mediante programación las integraciones de redes virtuales regionales:The following APIs let you programmatically manage regional virtual network integrations:

Solución de problemasTroubleshooting

La característica es fácil de configurar, aunque eso no quiere decir que no presente problemas con el uso.The feature is easy to set up, but that doesn't mean your experience will be problem free. Si encuentra problemas para acceder al punto de conexión que quiere, existen varias utilidades que sirven para probar la conectividad desde la consola de la aplicación.If you encounter problems accessing your desired endpoint, there are some utilities you can use to test connectivity from the app console. Dispone de dos consolas que puede usar.There are two consoles that you can use. Una es la consola Kudu y la otra es la consola a la que se accede en Azure Portal.One is the Kudu console, and the other is the console in the Azure portal. Para acceder a la consola Kudu desde la aplicación, vaya a Herramientas > Kudu.To reach the Kudu console from your app, go to Tools > Kudu. También puede tener acceso a la consola de Kudo en [sitename].scm.azurewebsites.net.You can also reach the Kudo console at [sitename].scm.azurewebsites.net. Después de que se cargue el sitio web, vaya a la pestaña Consola de depuración. Para llegar a la consola hospedada en Azure Portal desde su aplicación, vaya a Herramientas > Consola.After the website loads, go to the Debug console tab. To get to the Azure portal-hosted console from your app, go to Tools > Console.

HerramientasTools

En las aplicaciones nativas de Windows, las herramientas ping, nslookup y tracert no funcionarán a través de la consola debido a las restricciones de seguridad (funcionan en contenedores de Windows personalizados).In native Windows apps, the tools ping, nslookup, and tracert won't work through the console because of security constraints (they work in custom Windows containers). Para suplir esta carencia, se agregaron dos herramientas diferentes.To fill the void, two separate tools are added. Para probar la funcionalidad de DNS, se agregó una herramienta denominada nameresolver.exe.To test DNS functionality, we added a tool named nameresolver.exe. La sintaxis es:The syntax is:

nameresolver.exe hostname [optional: DNS Server]

Puede usar nameresolver para comprobar los nombres de host de los que depende la aplicación.You can use nameresolver to check the hostnames that your app depends on. De este modo, puede probar si hay algo mal configurado en el DNS o si no tiene acceso al servidor DNS.This way you can test if you have anything misconfigured with your DNS or perhaps don't have access to your DNS server. Para ver el servidor DNS que la aplicación usa en la consola, examine las variables de entorno WEBSITE_DNS_SERVER y WEBSITE_DNS_ALT_SERVER.You can see the DNS server that your app uses in the console by looking at the environmental variables WEBSITE_DNS_SERVER and WEBSITE_DNS_ALT_SERVER.

Nota

nameresolver.exe no funciona actualmente en contenedores de Windows personalizados.nameresolver.exe currently doesn't work in custom Windows containers.

Puede usar la siguiente herramienta para probar la conectividad de TCP en una combinación de host y puerto.You can use the next tool to test for TCP connectivity to a host and port combination. Esta herramienta se llama tcpping y la sintaxis es:This tool is called tcpping and the syntax is:

tcpping.exe hostname [optional: port]

La utilidad tcpping indica si se puede llegar a un host y puerto específicos.The tcpping utility tells you if you can reach a specific host and port. Puede mostrar un resultado correcto solo si hay una aplicación que escucha en la combinación de host y puerto, y existe acceso a la red desde la aplicación hacia el host y puerto especificados.It can show success only if there's an application listening at the host and port combination, and there's network access from your app to the specified host and port.

Depuración del acceso a recursos hospedados en la red virtualDebug access to virtual network-hosted resources

Varias situaciones pueden impedir que la aplicación se comunique con un host y un puerto específicos.A number of things can prevent your app from reaching a specific host and port. La mayoría de las veces se debe a una de estas causas:Most of the time it's one of these things:

  • Existe un firewall que lo impide.A firewall is in the way. Si tiene un firewall que lo impide, se agota el tiempo de espera de TCP.If you have a firewall in the way, you hit the TCP timeout. El tiempo de espera de TCP es de 21 segundos en este caso.The TCP timeout is 21 seconds in this case. Utilice la herramienta tcpping para probar la conectividad.Use the tcpping tool to test connectivity. Los tiempos de espera agotados de TCP pueden tener muchas causas además de los firewalls, pero comience por comprobar los firewalls.TCP timeouts can be caused by many things beyond firewalls, but start there.
  • El DNS no es accesible.DNS isn't accessible. El tiempo de espera de DNS es de 3 segundos por cada servidor DNS.The DNS timeout is 3 seconds per DNS server. Si tiene dos servidores DNS, el tiempo de espera es de seis segundos.If you have two DNS servers, the timeout is 6 seconds. Utilice nameresolver para ver si funciona el DNS.Use nameresolver to see if DNS is working. No puede usar nslookup, ya que este no usa el DNS con el que se ha configurado la red virtual.You can't use nslookup, because that doesn't use the DNS your virtual network is configured with. Si no puede acceder, podría haber un firewall o NSG bloqueando el acceso a DNS, o este puede estar inactivo.If inaccessible, you could have a firewall or NSG blocking access to DNS or it could be down.

Si estos elementos no resuelven el problema, plantéese cuestiones como las siguientes:If those items don't answer your problems, look first for things like:

Integración con red virtual regionalRegional VNet Integration

  • ¿El destino no es una dirección RFC 1918 y el valor WEBSITE_VNET_ROUTE_ALL no está establecido en 1?Is your destination a non-RFC1918 address and you don't have WEBSITE_VNET_ROUTE_ALL set to 1?
  • ¿Hay un NSG que bloquea la salida de la subred de integración?Is there an NSG blocking egress from your integration subnet?
  • Si está usando una VPN o Azure ExpressRoute, ¿la puerta de enlace local está configurada para enrutar el tráfico de vuelta a Azure?If you're going across Azure ExpressRoute or a VPN, is your on-premises gateway configured to route traffic back up to Azure? Si puede acceder a los puntos de conexión de la red virtual pero no a los del entorno local, compruebe las rutas.If you can reach endpoints in your virtual network but not on-premises, check your routes.
  • ¿Tiene permisos suficientes para configurar la delegación en la subred de integración?Do you have enough permissions to set delegation on the integration subnet? Al configurar la versión de Integración con red virtual que necesita una puerta de enlace, la subred de integración se delega en Microsoft.Web/serverFarms.During regional VNet Integration configuration, your integration subnet is delegated to Microsoft.Web/serverFarms. La interfaz de usuario de integración de la red virtual delega la subred en Microsoft.Web/serverFarms automáticamente.The VNet Integration UI delegates the subnet to Microsoft.Web/serverFarms automatically. Si la cuenta no tiene suficientes permisos de red para establecer la delegación, necesitará que un usuario que pueda configurar atributos en la subred de integración delegue la subred.If your account doesn't have sufficient networking permissions to set delegation, you'll need someone who can set attributes on your integration subnet to delegate the subnet. Para delegar manualmente la subred de integración, vaya a la interfaz de usuario de la subred de Azure Virtual Network y establezca la delegación para Microsoft.Web/serverFarms.To manually delegate the integration subnet, go to the Azure Virtual Network subnet UI and set the delegation for Microsoft.Web/serverFarms.

Integración con red virtual con requisito de puerta de enlaceGateway-required VNet Integration

  • ¿El intervalo de direcciones de punto a sitio se encuentra en los intervalos de RFC 1918 (10.0.0.0-10.255.255.255/172.16.0.0-172.31.255.255/192.168.0.0-192.168.255.255)?Is the point-to-site address range in the RFC 1918 ranges (10.0.0.0-10.255.255.255 / 172.16.0.0-172.31.255.255 / 192.168.0.0-192.168.255.255)?
  • ¿La puerta de enlace aparece como activa en el portal?Does the gateway show as being up in the portal? Si la puerta de enlace está inactiva, vuelva a activarla.If your gateway is down, then bring it back up.
  • ¿Los certificados aparecen como sincronizados o sospecha que la configuración de red ha cambiado?Do certificates show as being in sync, or do you suspect that the network configuration was changed? Si los certificados no están sincronizados o sospecha que se produjo un cambio en la configuración de red virtual que no se ha sincronizado con sus planes de App Service, seleccione Sincronizar red.If your certificates are out of sync or you suspect that a change was made to your virtual network configuration that wasn't synced with your ASPs, select Sync Network.
  • Si está usando una VPN, ¿la puerta de enlace local está configurada para enrutar el tráfico de vuelta a Azure?If you're going across a VPN, is the on-premises gateway configured to route traffic back up to Azure? Si puede acceder a los puntos de conexión de la red virtual pero no del entorno local, compruebe las rutas.If you can reach endpoints in your virtual network but not on-premises, check your routes.
  • ¿Está intentando usar una puerta de enlace de coexistencia que admite tanto una conexión de punto a sitio como ExpressRoute?Are you trying to use a coexistence gateway that supports both point to site and ExpressRoute? Las puertas de enlace de coexistencia no son compatibles con la Integración con red virtual.Coexistence gateways aren't supported with VNet Integration.

Depurar problemas de red es todo un reto porque no se puede ver lo que está bloqueando el acceso en una combinación de host y puerto específica.Debugging networking issues is a challenge because you can't see what's blocking access to a specific host:port combination. Entre las causas se incluyen las siguientes:Some causes include:

  • Tiene un firewall en el host que bloquea el acceso al puerto de la aplicación desde el intervalo IP de punto a sitio.You have a firewall up on your host that prevents access to the application port from your point-to-site IP range. A menudo se requiere acceso público para establecer conexiones entre subredes.Crossing subnets often requires public access.
  • El host de destino está fuera de servicio.Your target host is down.
  • La aplicación está fuera de servicio.Your application is down.
  • La dirección IP o el nombre de host son incorrectos.You had the wrong IP or hostname.
  • La aplicación escucha en un puerto diferente al esperado.Your application is listening on a different port than what you expected. Puede hacer coincidir el id. de proceso con el puerto de escucha usando "netstat -aon" en el host del punto de conexión.You can match your process ID with the listening port by using "netstat -aon" on the endpoint host.
  • Los grupos de seguridad de red están configurados de tal manera que evitan el acceso al host y al puerto de la aplicación desde el intervalo IP de punto a sitio.Your network security groups are configured in such a manner that they prevent access to your application host and port from your point-to-site IP range.

No se sabe qué dirección usa realmente la aplicación.You don't know what address your app actually uses. Podría ser cualquier dirección en el intervalo de direcciones de punto a sitio o de subred de integración, por lo que será necesario permitir el acceso desde el intervalo de direcciones completo.It could be any address in the integration subnet or point-to-site address range, so you need to allow access from the entire address range.

Otros pasos de depuración son:Additional debug steps include:

  • Conectarse a una máquina virtual de la red virtual e intentar acceder al recurso host:puerto desde allí.Connect to a VM in your virtual network and attempt to reach your resource host:port from there. Para probar el acceso de TCP, use el comando test-netconnection de PowerShell.To test for TCP access, use the PowerShell command test-netconnection. La sintaxis es:The syntax is:
test-netconnection hostname [optional: -Port]
  • Abra una aplicación en una máquina virtual y pruebe el acceso a ese host y ese puerto desde la consola de la aplicación mediante tcpping.Bring up an application on a VM and test access to that host and port from the console from your app by using tcpping.

Recursos localesOn-premises resources

Si la aplicación no puede acceder a un recurso local, compruebe si puede hacerlo desde su red virtual.If your app can't reach a resource on-premises, check if you can reach the resource from your virtual network. Use el comando test-netconnection de PowerShell para comprobar el acceso de TCP.Use the test-netconnection PowerShell command to check for TCP access. Si la máquina virtual no puede acceder al recurso local, puede que la conexión de VPN o ExpressRoute no esté configurada correctamente.If your VM can't reach your on-premises resource, your VPN or ExpressRoute connection might not be configured properly.

Si la máquina virtual hospedada en la red virtual puede acceder a su sistema local, pero la aplicación no, la causa es probablemente una de las razones siguientes:If your virtual network-hosted VM can reach your on-premises system but your app can't, the cause is likely one of the following reasons:

  • Las rutas no están configuradas con los intervalos de direcciones de punto a sitio o subred en la puerta de enlace local.Your routes aren't configured with your subnet or point-to-site address ranges in your on-premises gateway.
  • Los grupos de seguridad de red están bloqueando el acceso del intervalo IP de punto a sitio.Your network security groups are blocking access for your point-to-site IP range.
  • Los firewalls locales están bloqueando el tráfico del intervalo IP de punto a sitio.Your on-premises firewalls are blocking traffic from your point-to-site IP range.
  • Está intentando acceder a una dirección que no es de RFC 1918 con la característica Integración con red virtual regional.You're trying to reach a non-RFC 1918 address by using the regional VNet Integration feature.

Pasos siguientesNext steps

Para obtener más información sobre las redes y Azure Functions:To learn more about networking and Azure Functions: