Opções de rede do Azure FunctionsAzure Functions networking options

Este artigo descreve os recursos de rede disponíveis nas opções de hospedagem para o Azure Functions.This article describes the networking features available across the hosting options for Azure Functions. Todas as opções de rede a seguir oferecem a você uma capacidade de acessar recursos sem usar endereços roteáveis pela Internet ou restringir o acesso à Internet a um aplicativo de funções.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.

Os modelos de hospedagem têm níveis diferentes de isolamento de rede disponíveis.The hosting models have different levels of network isolation available. Escolher o correto ajuda a atender aos seus requisitos de isolamento de rede.Choosing the correct one helps you meet your network isolation requirements.

Você pode hospedar aplicativos de funções de duas maneiras:You can host function apps in a couple of ways:

  • Escolha entre opções de plano executadas em uma infraestrutura multilocatário, com vários níveis de conectividade de rede virtual e opções de dimensionamento:You can choose from plan options that run on a multitenant infrastructure, with various levels of virtual network connectivity and scaling options:
    • O plano de Consumo é dimensionado dinamicamente em resposta à carga e oferece opções de isolamento de rede mínimas.The Consumption plan scales dynamically in response to load and offers minimal network isolation options.
    • O Plano Premium também é dimensionado dinamicamente e oferece isolamento de rede mais abrangente.The Premium plan also scales dynamically and offers more comprehensive network isolation.
    • O plano do Serviço de Aplicativo do Azure opera em uma escala fixa e oferece isolamento de rede semelhante ao plano Premium.The Azure App Service plan operates at a fixed scale and offers network isolation similar to the Premium plan.
  • Execute funções em um Ambiente do Serviço de Aplicativo.You can run functions in an App Service Environment. Esse método implanta sua função em sua rede virtual e oferece controle e isolamento de rede total.This method deploys your function into your virtual network and offers full network control and isolation.

Matriz de recursos de redeMatrix of networking features

RecursoFeature Plano de ConsumoConsumption plan Plano PremiumPremium plan Plano dedicadoDedicated plan ASEASE KubernetesKubernetes
Restrições de IP de entrada e acesso ao site privadoInbound IP restrictions and private site access ✅Sim✅Yes ✅Sim✅Yes ✅Sim✅Yes ✅Sim✅Yes ✅Sim✅Yes
Integração de rede virtualVirtual network integration ❌Não❌No ✅Sim (Regional)✅Yes (Regional) ✅Sim (regional e gateway)✅Yes (Regional and Gateway) ✅Sim✅Yes ✅Sim✅Yes
Gatilhos de rede virtual (não HTTP)Virtual network triggers (non-HTTP) ❌Não❌No ✅Sim✅Yes ✅Sim✅Yes ✅Sim✅Yes ✅Sim✅Yes
Conexões híbridas (somente Windows)Hybrid connections (Windows only) ❌Não❌No ✅Sim✅Yes ✅Sim✅Yes ✅Sim✅Yes ✅Sim✅Yes
Restrições de IP de saídaOutbound IP restrictions ❌Não❌No ✅Sim✅Yes ✅Sim✅Yes ✅Sim✅Yes ✅Sim✅Yes

Restrições de IP de entradaInbound IP restrictions

Você pode usar restrições de IP para definir uma lista de prioridade ordenada dos endereços IP que podem ou não acessar o seu aplicativo.You can use IP restrictions to define a priority-ordered list of IP addresses that are allowed or denied access to your app. A lista pode incluir endereços IPv4 e IPv6.The list can include IPv4 and IPv6 addresses. Quando há uma ou mais entradas, há uma negação implícita de tudo no final da lista.When there are one or more entries, an implicit "deny all" exists at the end of the list. As restrições de IP funcionam com todas as opções de hospedagem de função.IP restrictions work with all function-hosting options.

Observação

Com as restrições de rede em vigor, você pode usar o editor do portal somente de dentro de sua rede virtual ou quando tiver colocado o endereço IP do computador que está usando para acessar o portal do Azure na lista de destinatários seguros.With network restrictions in place, you can use the portal editor 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. No entanto, você ainda pode acessar os recursos na guia Recursos da plataforma de qualquer computador.However, you can still access any features on the Platform features tab from any machine.

Para saber mais, confira Restrições de acesso ao serviço do Serviço de Aplicativo do Azure.To learn more, see Azure App Service static access restrictions.

Acesso a site particularPrivate site access

Acesso ao site privado significa tornar seu aplicativo acessível somente de uma rede privada, como em uma rede virtual do Azure.Private site access refers to making your app accessible only from a private network, such as an Azure virtual network.

  • O acesso ao site privado está disponível nos planos Premium, Consumo e Serviço de Aplicativo quando os pontos de extremidade de serviço são configurados.Private site access is available in the Premium, Consumption, and App Service plans when service endpoints are configured.
    • Os pontos de extremidade de serviço podem ser configurados por aplicativo em Recursos da plataforma > Rede > Configurar restrições de acesso > Adicionar regra.Service endpoints can be configured on a per-app basis under Platform features > Networking > Configure Access Restrictions > Add Rule. As redes virtuais agora podem ser selecionadas como um tipo de regra.Virtual networks can now be selected as a rule type.
    • Para obter mais informações, consulte Pontos de extremidade de serviço de rede virtual.For more information, see Virtual network service endpoints.
    • Saiba que, com pontos de extremidade de serviço, sua função ainda tem acesso total de saída à Internet, mesmo com a integração de rede virtual configurada.Keep in mind that with service endpoints, your function still has full outbound access to the internet, even with virtual network integration configured.
  • O acesso ao site privado também está disponível em um Ambiente do Serviço de Aplicativo configurado com um ILB (balanceador de carga interno).Private site access is also available within an App Service Environment that's configured with an internal load balancer (ILB). Para obter mais informações, confira Criar e usar um balanceador de carga Interno com um Ambiente do Serviço de Aplicativo.For more information, see Create and use an internal load balancer with an App Service Environment.

Para saber como configurar o acesso ao site privado, confira Estabelecer acesso ao site privado do Azure Functions.To learn how to set up private site access, see Establish Azure Functions private site access.

Integração de rede virtualVirtual network integration

A integração de rede virtual permite que seu aplicativo de funções acesse recursos dentro de uma rede virtual.Virtual network integration allows your function app to access resources inside a virtual network. O Azure Functions dá suporte a dois tipos de integração de rede virtual:Azure Functions supports two kinds of virtual network integration:

  • Os sistemas multilocatários que oferecem suporte a toda a gama de planos de preços, exceto isolados.The multitenant systems that support the full range of pricing plans except Isolated.
  • O Ambiente do Serviço de Aplicativo, que é implantado em sua VNet e dá suporte a aplicativos de plano de preços isolados.The App Service Environment, which deploys into your VNet and supports Isolated pricing plan apps.

O recurso de integração VNet é usado em aplicativos multilocatários.The VNet Integration feature is used in multitenant apps. Se o aplicativo está no Ambiente do Serviço de Aplicativo, ele já está em uma rede virtual e não requer o uso do recurso de Integração VNet para acessar recursos na mesma VNet.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 obter mais informações sobre todos os recursos de rede, consulte recursos de rede do serviço de aplicativo.For more information on all of the networking features, see App Service networking features.

A integração VNet dá ao seu aplicativo acesso aos recursos em sua VNet, mas não concede acesso privado de entrada ao seu aplicativo por meio da 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. Acesso ao site privado refere-se a tornar um aplicativo acessível somente de uma rede privada, como de dentro de uma rede virtual do Azure.Private site access refers to making an app accessible only from a private network, such as from within an Azure virtual network. A integração VNet é usada apenas para fazer chamadas de saída do seu aplicativo para sua VNet.VNet Integration is used only to make outbound calls from your app into your VNet. O recurso de integração VNet se comporta de maneira diferente quando é usado com VNet na mesma região e com VNet em outras regiões.The VNet Integration feature behaves differently when it's used with VNet in the same region and with VNet in other regions. O recurso integração VNet tem duas variações:The VNet Integration feature has two variations:

  • Integração de VNet regional: quando você se conecta a redes virtuais Azure Resource Manager na mesma região, você deve ter uma sub-rede dedicada na VNet com a qual está se integrando.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.
  • Integração de vnet necessária ao gateway: quando você se conecta à VNet em outras regiões ou a uma rede virtual clássica na mesma região, você precisa de um gateway de rede virtual do Azure provisionado na 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.

Os recursos de integração VNet:The VNet Integration features:

  • Exigir um plano de preços Standard, Premium, PremiumV2 ou elástico Premium.Require a Standard, Premium, PremiumV2, or Elastic Premium pricing plan.
  • Suporte a TCP e UDP.Support TCP and UDP.
  • Trabalhe com aplicativos de serviço Azure App e aplicativos de funções.Work with Azure App Service apps and function apps.

Há algumas coisas para as quais a integração VNet não dá suporte, como:There are some things that VNet Integration doesn't support, like:

  • A montagem de uma unidade.Mounting a drive.
  • Integração de Active Directory.Active Directory integration.
  • Output.NetBIOS.

Gateway-a integração VNet necessária fornece acesso a recursos somente na VNet de destino ou em redes conectadas à VNet de destino com emparelhamento ou VPNs.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. A integração VNet exigida pelo gateway não habilita o acesso aos recursos disponíveis nas conexões do Azure ExpressRoute ou funciona com pontos de extremidade de serviço.Gateway-required VNet Integration doesn't enable access to resources available across Azure ExpressRoute connections or works with service endpoints.

Independentemente da versão usada, a integração VNet dá ao seu aplicativo acesso aos recursos em sua VNet, mas não concede acesso privado de entrada ao seu aplicativo por meio da 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. Acesso ao site privado refere-se a tornar seu aplicativo acessível somente de uma rede privada, como de dentro de uma VNet do Azure.Private site access refers to making your app accessible only from a private network, such as from within an Azure VNet. A integração VNet é apenas para fazer chamadas de saída de seu aplicativo para sua VNet.VNet Integration is only for making outbound calls from your app into your VNet.

A integração de rede virtual no Azure Functions usa a infraestrutura compartilhada com aplicativos Web do Serviço de Aplicativo.Virtual network integration in Azure Functions uses shared infrastructure with App Service web apps. Para saber mais sobre os dois tipos de integração de rede virtual, confira:To learn more about the two types of virtual network integration, see:

Para saber como configurar a integração de rede virtual, confira Integrar um aplicativo de funções com uma rede virtual do Azure.To learn how to set up virtual network integration, see Integrate a function app with an Azure virtual network.

Integração de rede virtual regionalRegional virtual network integration

O uso da integração de VNet regional permite que seu aplicativo acesse:Using regional VNet Integration enables your app to access:

  • Recursos em uma VNet na mesma região que seu aplicativo.Resources in a VNet in the same region as your app.
  • Recursos no VNets emparelhados com a VNet à qual seu aplicativo está integrado.Resources in VNets peered to the VNet your app is integrated with.
  • Serviços protegidos do ponto de extremidade de serviço.Service endpoint secured services.
  • Recursos entre as conexões do Azure ExpressRoute.Resources across Azure ExpressRoute connections.
  • Recursos na VNet com a qual você está integrado.Resources in the VNet you're integrated with.
  • Recursos entre conexões emparelhadas, que incluem conexões do Azure ExpressRoute.Resources across peered connections, which includes Azure ExpressRoute connections.
  • Pontos de extremidade privadosPrivate endpoints

Ao usar a integração VNet com o VNets na mesma região, você pode usar os seguintes recursos de rede do Azure:When you use VNet Integration with VNets in the same region, you can use the following Azure networking features:

  • NSGs (grupos de segurança de rede): você pode bloquear o tráfego de saída com um NSG que é colocado em sua sub-rede de integração.Network security groups (NSGs): You can block outbound traffic with an NSG that's placed on your integration subnet. As regras de entrada não se aplicam porque você não pode usar a integração VNet para fornecer acesso de entrada ao seu aplicativo.The inbound rules don't apply because you can't use VNet Integration to provide inbound access to your app.
  • UDRs (tabelas de rotas): você pode inserir uma tabela de rotas na sub-rede de integração para enviar o tráfego de saída onde desejar.Route tables (UDRs): You can place a route table on the integration subnet to send outbound traffic where you want.

Por padrão, seu aplicativo roteia apenas o tráfego RFC1918 para sua VNet.By default, your app routes only RFC1918 traffic into your VNet. Se você quiser rotear todo o tráfego de saída para sua VNet, aplique a configuração do aplicativo WEBSITE_VNET_ROUTE_ALL ao seu aplicativo.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 definir a configuração do aplicativo:To configure the app setting:

  1. Vá para a interface do usuário de configuração no portal do seu aplicativo.Go to the Configuration UI in your app portal. Selecione Nova configuração de aplicativo.Select New application setting.

  2. Insira WEBSITE_VNET_ROUTE_ALL na caixa nome e digite 1 na caixa valor .Enter WEBSITE_VNET_ROUTE_ALL in the Name box, and enter 1 in the Value box.

    Fornecer configuração de aplicativo

  3. Selecione OK.Select OK.

  4. Selecione Salvar.Select Save.

Se você rotear todo o tráfego de saída para sua VNet, ele estará sujeito aos NSGs e UDRs que são aplicados à sua sub-rede de integração.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. Quando você roteia todo o tráfego de saída para sua VNet, seus endereços de saída ainda são os endereços de saída listados nas propriedades do aplicativo, a menos que você forneça rotas para enviar o tráfego em outro lugar.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.

Há algumas limitações no uso da integração VNet com o VNets na mesma região:There are some limitations with using VNet Integration with VNets in the same region:

  • Você não pode acessar recursos entre conexões de emparelhamento globais.You can't reach resources across global peering connections.
  • O recurso está disponível somente de unidades de escala de serviço Azure App mais recentes que dão suporte a planos do serviço de aplicativo PremiumV2.The feature is available only from newer Azure App Service scale units that support PremiumV2 App Service plans. Observe que isso não significa que seu aplicativo deve ser executado em um tipo de preço PremiumV2, apenas que ele deve ser executado em um plano do serviço de aplicativo onde a opção PremiumV2 está disponível (o que implica que é uma unidade de escala mais recente em que esse recurso de integração VNet também está disponível).Note that this does not mean your app must run on a PremiumV2 pricing tier, only that it must run on an App Service Plan where the PremiumV2 option is available (which implies that it is a newer scale unit where this VNet integration feature is then also available).
  • A sub-rede de integração pode ser usada por apenas um plano do serviço de aplicativo.The integration subnet can be used by only one App Service plan.
  • O recurso não pode ser usado por aplicativos de plano isolado que estão em um Ambiente do Serviço de Aplicativo.The feature can't be used by Isolated plan apps that are in an App Service Environment.
  • O recurso requer uma sub-rede não usada que seja de/27 com 32 endereços ou maior em uma VNet Azure Resource Manager.The feature requires an unused subnet that's a /27 with 32 addresses or larger in an Azure Resource Manager VNet.
  • O aplicativo e a VNet devem estar na mesma região.The app and the VNet must be in the same region.
  • Não é possível excluir uma VNet com um aplicativo integrado.You can't delete a VNet with an integrated app. Remova a integração antes de excluir a VNet.Remove the integration before you delete the VNet.
  • Você só pode integrar com VNets na mesma assinatura que o aplicativo.You can only integrate with VNets in the same subscription as the app.
  • Você pode ter apenas uma integração VNet regional por plano do serviço de aplicativo.You can have only one regional VNet Integration per App Service plan. Vários aplicativos no mesmo plano do serviço de aplicativo podem usar a mesma VNet.Multiple apps in the same App Service plan can use the same VNet.
  • Você não pode alterar a assinatura de um aplicativo ou um plano enquanto há um aplicativo que está usando a integração VNet regional.You can't change the subscription of an app or a plan while there's an app that's using regional VNet Integration.
  • Seu aplicativo não pode resolver endereços em Zonas Privadas do DNS do Azure sem alterações de configuraçãoYour app cannot resolve addresses in Azure DNS Private Zones without configuration changes

Um endereço é usado para cada instância do plano.One address is used for each plan instance. Se você dimensionar seu aplicativo para cinco instâncias, serão usados cinco endereços.If you scale your app to five instances, then five addresses are used. Como o tamanho da sub-rede não pode ser alterado após a atribuição, você deve usar uma sub-rede que seja grande o suficiente para acomodar qualquer escala que seu aplicativo possa alcançar.Since subnet size can't be changed after assignment, you must use a subnet that's large enough to accommodate whatever scale your app might reach. R/26 com 64 endereços é o tamanho recomendado.A /26 with 64 addresses is the recommended size. R/26 com 64 endereços acomoda um plano Premium com 30 instâncias.A /26 with 64 addresses accommodates a Premium plan with 30 instances. Quando você dimensiona um plano para cima ou para baixo, precisará de duas vezes mais endereços por um curto período de tempo.When you scale a plan up or down, you need twice as many addresses for a short period of time.

Se você quiser que seus aplicativos em outro plano alcancem uma VNet que já está conectada por aplicativos em outro plano, selecione uma sub-rede diferente daquela que está sendo usada pela integração VNet pré-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.

O recurso tem suporte total para aplicativos Web do Windows e Linux.The feature is fully supported for both Windows and Linux web apps. Todos os comportamentos agem da mesma entre aplicativos do Windows e aplicativos do Linux.All of the behaviors act the same between Windows apps and Linux apps.

Pontos de extremidade de serviçoService endpoints

A integração VNet regional permite que você use pontos de extremidade de serviço.Regional VNet Integration enables you to use service endpoints. Para usar pontos de extremidade de serviço com seu aplicativo, use a integração VNet regional para se conectar a uma VNet selecionada e, em seguida, configure os pontos de extremidade de serviço com o serviço de destino na sub-rede usada para a integração.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. Se você quisesse acessar um serviço em pontos de extremidade de serviço:If you then wanted to access a service over service endpoints:

  1. configurar a integração VNet regional com seu aplicativo Webconfigure regional VNet Integration with your web app
  2. Vá para o serviço de destino e configure os pontos de extremidade de serviço em relação à sub-rede usada para integraçãogo to the destination service and configure service endpoints against the subnet used for integration

Grupos de Segurança de RedeNetwork security groups

Você pode usar grupos de segurança de rede para bloquear o tráfego de entrada e saída para recursos em uma VNet.You can use network security groups to block inbound and outbound traffic to resources in a VNet. Um aplicativo que usa a integração VNet regional pode usar um grupo de segurança de rede para bloquear o tráfego de saída para recursos em sua VNet ou na 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 o tráfego para endereços públicos, você deve ter a configuração de aplicativo WEBSITE_VNET_ROUTE_ALL definida como 1.To block traffic to public addresses, you must have the application setting WEBSITE_VNET_ROUTE_ALL set to 1. As regras de entrada em um NSG não se aplicam ao seu aplicativo porque a integração VNet afeta apenas o tráfego de saída de seu aplicativo.The inbound rules in an NSG don't apply to your app because VNet Integration affects only outbound traffic from your app.

Para controlar o tráfego de entrada para seu aplicativo, use o recurso de restrições de acesso.To control inbound traffic to your app, use the Access Restrictions feature. Um NSG que é aplicado à sua sub-rede de integração está em vigor, independentemente de quaisquer rotas aplicadas à sua sub-rede de integração.An NSG that's applied to your integration subnet is in effect regardless of any routes applied to your integration subnet. Se WEBSITE_VNET_ROUTE_ALL for definido como 1 e você não tiver nenhuma rota que afete o tráfego de endereço público em sua sub-rede de integração, todo o tráfego de saída ainda estará sujeito a NSGs atribuído à sua sub-rede de integração.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. Se WEBSITE_VNET_ROUTE_ALL não estiver definido, NSGs só será aplicado ao tráfego RFC1918.If WEBSITE_VNET_ROUTE_ALL isn't set, NSGs are only applied to RFC1918 traffic.

RotasRoutes

Você pode usar tabelas de rotas para rotear o tráfego de saída do seu aplicativo para onde quiser.You can use route tables to route outbound traffic from your app to wherever you want. Por padrão, as tabelas de rotas afetam apenas o tráfego de destino do RFC1918.By default, route tables only affect your RFC1918 destination traffic. Se você definir WEBSITE_VNET_ROUTE_ALL como 1, todas as suas chamadas de saída serão afetadas.If you set WEBSITE_VNET_ROUTE_ALL to 1, all of your outbound calls are affected. As rotas definidas em sua sub-rede de integração não afetarão as respostas a solicitações de aplicativo de entrada.Routes that are set on your integration subnet won't affect replies to inbound app requests. Os destinos comuns podem incluir dispositivos de firewall ou gateways.Common destinations can include firewall devices or gateways.

Se você quiser rotear todo o tráfego de saída local, poderá usar uma tabela de rotas para enviar todo o tráfego de saída para o gateway 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. Se você rotear o tráfego para um gateway, certifique-se de definir rotas na rede externa para enviar respostas.If you do route traffic to a gateway, be sure to set routes in the external network to send any replies back.

As rotas Border Gateway Protocol (BGP) também afetam o tráfego do aplicativo.Border Gateway Protocol (BGP) routes also affect your app traffic. Se você tiver rotas BGP de algo como um gateway de ExpressRoute, o tráfego de saída do aplicativo será afetado.If you have BGP routes from something like an ExpressRoute gateway, your app outbound traffic will be affected. Por padrão, as rotas BGP afetam apenas o tráfego de destino RFC1918.By default, BGP routes affect only your RFC1918 destination traffic. Se WEBSITE_VNET_ROUTE_ALL for definido como 1, todo o tráfego de saída poderá ser afetado por suas rotas BGP.If WEBSITE_VNET_ROUTE_ALL is set to 1, all outbound traffic can be affected by your BGP routes.

Zonas Privadas do DNS do AzureAzure DNS Private Zones

Depois que o aplicativo se integra à sua VNet, ele usa o mesmo servidor DNS com o qual sua VNet está configurada.After your app integrates with your VNet, it uses the same DNS server that your VNet is configured with. Por padrão, seu aplicativo não funcionará com Zonas Privadas do DNS do Azure.By default, your app won't work with Azure DNS Private Zones. Para trabalhar com Zonas Privadas do DNS do Azure você precisa adicionar as seguintes configurações de aplicativo:To work with Azure DNS Private Zones you need to add the following app settings:

  1. WEBSITE_DNS_SERVER com o valor 168.63.129.16WEBSITE_DNS_SERVER with value 168.63.129.16
  2. WEBSITE_VNET_ROUTE_ALL com valor 1WEBSITE_VNET_ROUTE_ALL with value 1

Essas configurações enviarão todas as suas chamadas de saída do seu aplicativo para sua VNet, além de habilitar seu aplicativo para usar zonas privadas do DNS do Azure.These settings will send all of your outbound calls from your app into your VNet in addition to enabling your app to use Azure DNS private zones.

Pontos de extremidade privadosPrivate endpoints

Se você quiser fazer chamadas para pontos de extremidade privados, será necessário integrar com zonas privadas do DNS do Azure ou gerenciar o ponto de extremidade privado no servidor DNS usado pelo seu aplicativo.If you want to make calls to Private Endpoints, then you need to either integrate with Azure DNS Private Zones or manage the private endpoint in the DNS server used by your app.

Conectar-se a recursos protegidos do ponto de extremidade de serviçoConnect to service endpoint secured resources

Para fornecer um nível mais alto de segurança, você pode restringir vários serviços do Azure a uma rede virtual usando pontos de extremidade de serviço.To provide a higher level of security, you can restrict a number of Azure services to a virtual network by using service endpoints. Em seguida, você deve integrar seu aplicativo de funções com essa rede virtual para acessar o recurso.You must then integrate your function app with that virtual network to access the resource. Essa configuração tem suporte em todos os planos que dão suporte à integração de rede virtual.This configuration is supported on all plans that support virtual network integration.

Para obter mais detalhes, confira Pontos de extremidade de serviço de rede virtual.To learn more, see Virtual network service endpoints.

Restringir a sua conta de armazenamento a uma rede virtualRestrict your storage account to a virtual network

Quando você cria um aplicativo de funções, é necessário criar ou vincular uma conta de Armazenamento do Azure de uso geral que dá ao armazenamento de Tabelas, Blobs e Filas.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. No momento, não é possível usar restrições de rede virtual nesta conta.You can't currently use any virtual network restrictions on this account. Se você configurar um ponto de extremidade de serviço de rede virtual na conta de armazenamento que você está usando para seu aplicativo de funções, essa configuração interromperá seu aplicativo.If you configure a virtual network service endpoint on the storage account you're using for your function app, that configuration will break your app.

Para saber mais, confira Requisitos de uma conta de armazenamento.To learn more, see Storage account requirements.

Usar referências de Key VaultUse Key Vault references

Você pode usar referências do Azure Key Vault para usar segredos do Azure Key Vault no seu aplicativo Azure Functions sem exigir alterações de 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. O Azure Key Vault é um serviço que fornece gerenciamento centralizado de segredos, com controle total sobre políticas de acesso e histórico de auditoria.Azure Key Vault is a service that provides centralized secrets management, with full control over access policies and audit history.

Atualmente, referências do Key Vault não funcionarão se o cofre de chaves estiver protegido com pontos de extremidade de serviço.Currently, Key Vault references won't work if your key vault is secured with service endpoints. Para se conectar a um cofre de chaves usando a integração de rede virtual, você precisará chamar o Key Vault no código do aplicativo.To connect to a key vault by using virtual network integration, you need to call Key Vault in your application code.

Gatilhos de rede virtual (não HTTP)Virtual network triggers (non-HTTP)

No momento, você pode usar funções de gatilho não HTTP de dentro de uma rede virtual de duas maneiras:Currently, you can use non-HTTP trigger functions from within a virtual network in one of two ways:

  • Execute seu aplicativo de funções em um plano Premium e habilite o suporte ao gatilho de rede virtual.Run your function app in a Premium plan and enable virtual network trigger support.
  • Execute seu aplicativo de funções em um plano do Serviço de Aplicativo ou Ambiente de Serviço de Aplicativo.Run your function app in an App Service plan or App Service Environment.

Plano Premium com gatilhos de rede virtualPremium plan with virtual network triggers

Ao executar um plano Premium, você poderá conectar funções de gatilho não HTTP a serviços que são executados dentro de uma rede virtual.When you run a Premium plan, you can connect non-HTTP trigger functions to services that run inside a virtual network. Para fazer isso, você deverá habilitar o suporte ao gatilho de rede virtual para seu aplicativo de funções.To do this, you must enable virtual network trigger support for your function app. A configuração suporte de gatilho de rede virtual está localizada no portal do Azure em Configuração > Configurações de execução do Functions.The virtual network trigger support setting is found in the Azure portal under Configuration > Function runtime settings.

VNETToggle

Você também pode habilitar gatilhos de rede virtual usando o seguinte comando de CLI do 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

Os gatilhos de rede virtual têm suporte na versão 2.x e superior do tempo de execução do Functions.Virtual network triggers are supported in version 2.x and above of the Functions runtime. Há suporte para os seguintes tipos de gatilho não HTTP.The following non-HTTP trigger types are supported.

ExtensãoExtension Versão mínimaMinimum version
Microsoft.Azure.WebJobs.Extensions.StorageMicrosoft.Azure.WebJobs.Extensions.Storage 3.0.10 ou superior3.0.10 or above
Microsoft.Azure.WebJobs.Extensions.EventHubsMicrosoft.Azure.WebJobs.Extensions.EventHubs 4.1.0 ou superior4.1.0 or above
Microsoft.Azure.WebJobs.Extensions.ServiceBusMicrosoft.Azure.WebJobs.Extensions.ServiceBus 3.2.0 ou superior3.2.0 or above
Microsoft.Azure.WebJobs.Extensions.CosmosDBMicrosoft.Azure.WebJobs.Extensions.CosmosDB 3.0.5 ou superior3.0.5 or above
Microsoft.Azure.WebJobs.Extensions.DurableTaskMicrosoft.Azure.WebJobs.Extensions.DurableTask 2.0.0 ou superior2.0.0 or above

Importante

Quando você habilita o suporte ao gatilho de rede virtual, somente os tipos de gatilho mostrados na tabela anterior são dimensionados dinamicamente com seu aplicativo.When you enable virtual network trigger support, only the trigger types shown in the previous table scale dynamically with your application. Você ainda pode usar gatilhos que não estão na tabela, mas eles não são dimensionados além da contagem de instâncias previamente inicializadas.You can still use triggers that aren't in the table, but they're not scaled beyond their pre-warmed instance count. Para obter a lista completa de gatilhos, confira Gatilhos e associações.For the complete list of triggers, see Triggers and bindings.

Plano do Serviço de Aplicativo e Ambiente do Serviço de Aplicativo com gatilhos de rede virtualApp Service plan and App Service Environment with virtual network triggers

Quando seu aplicativo de funções é executado em um plano do Serviço de Aplicativo ou em um Ambiente do Serviço de Aplicativo, você pode usar funções de gatilho não 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 suas funções sejam disparadas corretamente, você deverá estar conectado a uma rede virtual com acesso ao recurso definido na conexão do gatilho.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 exemplo, suponha que você deseja configurar o Azure Cosmos DB para aceitar o tráfego somente de uma rede virtual.For example, assume you want to configure Azure Cosmos DB to accept traffic only from a virtual network. Nesse caso, você deve implantar seu aplicativo de funções em um plano do Serviço de Aplicativo que fornece integração de rede virtual com essa rede virtual.In this case, you must deploy your function app in an App Service plan that provides virtual network integration with that virtual network. A integração permite que uma função seja disparada por esse recurso do Azure Cosmos DB.Integration enables a function to be triggered by that Azure Cosmos DB resource.

Conexões HíbridasHybrid Connections

Conexões Híbridas é um recurso da Retransmissão do Azure que você pode usar para acessar recursos do aplicativo em outras redes.Hybrid Connections is a feature of Azure Relay that you can use to access application resources in other networks. Ele fornece acesso de seu aplicativo para um ponto de extremidade do aplicativo.It provides access from your app to an application endpoint. Não é possível usá-lo para acessar seu aplicativo.You can't use it to access your application. O recurso Conexões Híbridas está disponível para funções executadas no Windows em todos os planos, exceto no plano de Consumo.Hybrid Connections is available to functions that run on Windows in all but the Consumption plan.

Conforme usado no Azure Functions, cada conexão híbrida se correlaciona com uma única combinação de host e de porta TCP.As used in Azure Functions, each hybrid connection correlates to a single TCP host and port combination. Isso significa que o ponto de extremidade de conexões híbridas pode estar em qualquer sistema operacional e em qualquer aplicativo, desde que você esteja acessando uma porta de escuta 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. O recurso Conexões Híbridas não sabe e nem se importa com o protocolo de aplicativo ou o que você está acessando.The Hybrid Connections feature doesn't know or care what the application protocol is or what you're accessing. Ele apenas fornece acesso à rede.It just provides network access.

Para saber mais, confira a Documentação do Serviço de Aplicativo para Conexões Híbridas.To learn more, see the App Service documentation for Hybrid Connections. Essas mesmas etapas de configuração dão suporte ao Azure Functions.These same configuration steps support Azure Functions.

Importante

Só há suporte para Conexões Híbridas em planos do Windows.Hybrid Connections is only supported on Windows plans. Não há suporte para o Linux.Linux isn't supported.

Restrições de IP de saídaOutbound IP restrictions

As restrições de IP de saída estão disponíveis em um plano Premium, plano do Serviço de Aplicativo ou Ambiente do Serviço de Aplicativo.Outbound IP restrictions are available in a Premium plan, App Service plan, or App Service Environment. Você pode configurar as restrições de saída para a rede virtual em que seu Ambiente do Serviço de Aplicativo está implantado.You can configure outbound restrictions for the virtual network where your App Service Environment is deployed.

Quando você integra um aplicativo de funções em um plano Premium ou plano do Serviço de Aplicativo com uma rede virtual, o aplicativo ainda pode fazer chamadas de saída para a Internet por padrão.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. Ao adicionar a configuração de aplicativo WEBSITE_VNET_ROUTE_ALL=1, você força todo o tráfego de saída a ser enviado para sua rede virtual, em que as regras do grupo de segurança de rede podem ser usadas para restringir o tráfego.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.

AutomaçãoAutomation

As APIs a seguir permitem gerenciar programaticamente integrações de rede virtual regional:The following APIs let you programmatically manage regional virtual network integrations:

Solução de problemasTroubleshooting

O recurso é fácil de configurar, mas isso não significa que sua experiência estará livre de problemas.The feature is easy to set up, but that doesn't mean your experience will be problem free. Se você encontrar problemas para acessar o ponto de extremidade desejado, há alguns utilitários que podem ser usados para testar a conectividade no console do aplicativo.If you encounter problems accessing your desired endpoint, there are some utilities you can use to test connectivity from the app console. Há dois consoles que você pode usar.There are two consoles that you can use. Um é o console do Kudu e o outro é o console do na portal do Azure.One is the Kudu console, and the other is the console in the Azure portal. Para acessar o console do kudu do seu aplicativo, acesse ferramentas > kudu.To reach the Kudu console from your app, go to Tools > Kudu. Você também pode acessar o console do Kudo em [SiteName]. SCM. azurewebsites. net.You can also reach the Kudo console at [sitename].scm.azurewebsites.net. Depois que o site for carregado, vá para a guia console de depuração . Para acessar o console do portal do Azure hospedado do seu aplicativo, vá para o Tools > consolede ferramentas.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.

FerramentasTools

As ferramentas ping, nslookupe tracert não funcionarão no console do devido a restrições de segurança.The tools ping, nslookup, and tracert won't work through the console because of security constraints. Para preencher o void, duas ferramentas separadas são adicionadas.To fill the void, two separate tools are added. Para testar a funcionalidade do DNS, adicionamos uma ferramenta chamada nameresolver.exe.To test DNS functionality, we added a tool named nameresolver.exe. A sintaxe do é:The syntax is:

nameresolver.exe hostname [optional: DNS Server]

Você pode usar a nameresolver para verificar os nomes de host de que seu aplicativo depende.You can use nameresolver to check the hostnames that your app depends on. Dessa forma, você pode testar se alguma coisa está configurada incorretamente com seu DNS ou talvez não tenha acesso ao seu 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. Você pode ver o servidor DNS que seu aplicativo usa no console examinando as variáveis de ambiente WEBSITE_DNS_SERVER e 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.

Você pode usar a próxima ferramenta para testar a conectividade TCP com uma combinação de host e porta.You can use the next tool to test for TCP connectivity to a host and port combination. Essa ferramenta é chamada tcpping e a sintaxe é:This tool is called tcpping and the syntax is:

tcpping.exe hostname [optional: port]

O utilitário tcpping informa se você pode alcançar um host e uma porta específicos.The tcpping utility tells you if you can reach a specific host and port. Ele pode mostrar o sucesso somente se houver um aplicativo escutando na combinação de host e porta, e houver acesso à rede do seu aplicativo para o host e a porta 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.

Depurar o acesso a recursos hospedados na rede virtualDebug access to virtual network-hosted resources

Várias coisas podem impedir que seu aplicativo atinja um host e uma porta específicos.A number of things can prevent your app from reaching a specific host and port. Na maioria das vezes, é uma destas coisas:Most of the time it's one of these things:

  • Há um firewall no caminho.A firewall is in the way. Se você tiver um firewall no caminho, atingirá o tempo limite de TCP.If you have a firewall in the way, you hit the TCP timeout. O tempo limite de TCP é 21 segundos neste caso.The TCP timeout is 21 seconds in this case. Use a ferramenta tcpping para testar a conectividade.Use the tcpping tool to test connectivity. Os tempos limite de TCP podem ser causados por muitas coisas além dos firewalls, mas começam lá.TCP timeouts can be caused by many things beyond firewalls, but start there.
  • O DNS não está acessível.DNS isn't accessible. O tempo limite do DNS é de 3 segundos por servidor DNS.The DNS timeout is 3 seconds per DNS server. Se você tiver dois servidores DNS, o tempo limite será de seis segundos.If you have two DNS servers, the timeout is 6 seconds. Use nameresolver para ver se o DNS está funcionando.Use nameresolver to see if DNS is working. Não é possível usar o Nslookup, pois isso não usa o DNS com o qual a rede virtual está configurada.You can't use nslookup, because that doesn't use the DNS your virtual network is configured with. Se estiver inacessível, você pode ter um firewall ou NSG bloqueando o acesso ao DNS ou pode estar inoperante.If inaccessible, you could have a firewall or NSG blocking access to DNS or it could be down.

Se esses itens não responderem a seus problemas, veja primeiro algo como:If those items don't answer your problems, look first for things like:

Integração VNET regionalRegional VNet Integration

  • Seu destino é um endereço não RFC1918 e você não tem WEBSITE_VNET_ROUTE_ALL definido como 1?Is your destination a non-RFC1918 address and you don't have WEBSITE_VNET_ROUTE_ALL set to 1?
  • Há um NSG bloqueando a saída de sua sub-rede de integração?Is there an NSG blocking egress from your integration subnet?
  • Se você estiver entrando no Azure ExpressRoute ou em uma VPN, seu gateway local será configurado para rotear o tráfego de volta para o Azure?If you're going across Azure ExpressRoute or a VPN, is your on-premises gateway configured to route traffic back up to Azure? Se você puder acessar pontos de extremidade em sua rede virtual, mas não no local, verifique suas rotas.If you can reach endpoints in your virtual network but not on-premises, check your routes.
  • Você tem permissões suficientes para definir a delegação na sub-rede de integração?Do you have enough permissions to set delegation on the integration subnet? Durante a configuração de integração VNet regional, sua sub-rede de integração é delegada para Microsoft. Web.During regional VNet Integration configuration, your integration subnet is delegated to Microsoft.Web. A interface do usuário de integração VNet delega a sub-rede ao Microsoft. Web automaticamente.The VNet Integration UI delegates the subnet to Microsoft.Web automatically. Se sua conta não tiver permissões de rede suficientes para definir a delegação, você precisará de alguém que possa definir atributos em sua sub-rede de integração para delegar a sub-rede.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 a sub-rede de integração, vá para a interface do usuário da sub-rede da rede virtual do Azure e defina a delegação para Microsoft. Web.To manually delegate the integration subnet, go to the Azure Virtual Network subnet UI and set the delegation for Microsoft.Web.

Integração de VNet necessária ao gatewayGateway-required VNet Integration

  • É o intervalo de endereços de ponto a site nos intervalos 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)?
  • O gateway é mostrado como estando ativo no portal?Does the gateway show as being up in the portal? Se o gateway estiver inativo, ative-o.If your gateway is down, then bring it back up.
  • Os certificados são mostrados como estando em sincronia ou você suspeita de que a configuração de rede foi alterada?Do certificates show as being in sync, or do you suspect that the network configuration was changed? Se os certificados estiverem fora de sincronia ou se você suspeitar que uma alteração foi feita em sua configuração de rede virtual que não foi sincronizada com seus ASPs, selecione sincronizar rede.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.
  • Se você estiver entrando em uma VPN, o gateway local será configurado para rotear o tráfego de backup para o Azure?If you're going across a VPN, is the on-premises gateway configured to route traffic back up to Azure? Se você puder acessar pontos de extremidade em sua rede virtual, mas não no local, verifique suas rotas.If you can reach endpoints in your virtual network but not on-premises, check your routes.
  • Você está tentando usar um gateway de coexistência que dá suporte a ponto a site e ExpressRoute?Are you trying to use a coexistence gateway that supports both point to site and ExpressRoute? Não há suporte para gateways de coexistência com integração VNet.Coexistence gateways aren't supported with VNet Integration.

A depuração de problemas de rede é um desafio porque você não pode ver o que está bloqueando o acesso a uma combinação de hosts: porta específica.Debugging networking issues is a challenge because you can't see what's blocking access to a specific host:port combination. Algumas causas incluem:Some causes include:

  • Você tem um firewall em seu host que impede o acesso à porta do aplicativo do intervalo de IP ponto a site.You have a firewall up on your host that prevents access to the application port from your point-to-site IP range. A cruzamento de sub-redes geralmente requer acesso público.Crossing subnets often requires public access.
  • Seu host de destino está inoperante.Your target host is down.
  • Seu aplicativo está inoperante.Your application is down.
  • Você tinha o IP ou o nome de host incorreto.You had the wrong IP or hostname.
  • Seu aplicativo está ouvindo em uma porta diferente da que você esperava.Your application is listening on a different port than what you expected. Você pode corresponder a sua ID de processo com a porta de escuta usando "netstat -aon" no host do ponto de extremidade.You can match your process ID with the listening port by using "netstat -aon" on the endpoint host.
  • Os grupos de segurança de rede são configurados de forma que impeçam o acesso ao host do aplicativo e à porta do intervalo de IP ponto a site.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.

Você não sabe qual endereço seu aplicativo realmente usa.You don't know what address your app actually uses. Pode ser qualquer endereço na sub-rede de integração ou intervalo de endereços de ponto a site, portanto, você precisa permitir o acesso de todo o intervalo de endereços.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.

As etapas de depuração adicionais incluem:Additional debug steps include:

  • Conecte-se a uma VM em sua rede virtual e tente acessar a porta do host de recursos: a partir daí.Connect to a VM in your virtual network and attempt to reach your resource host:port from there. Para testar o acesso TCP, use o comando do PowerShell test-netconnection.To test for TCP access, use the PowerShell command test-netconnection. A sintaxe do é:The syntax is:
test-netconnection hostname [optional: -Port]
  • Traga um aplicativo em uma VM e teste o acesso ao host e à porta do console a partir do seu aplicativo usando o 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 locaisOn-premises resources

Se seu aplicativo não puder acessar um recurso local, verifique se você pode acessar o recurso de sua rede virtual.If your app can't reach a resource on-premises, check if you can reach the resource from your virtual network. Use o comando do PowerShell test-netconnection para verificar se há acesso TCP.Use the test-netconnection PowerShell command to check for TCP access. Se sua VM não conseguir acessar o recurso local, sua conexão VPN ou ExpressRoute poderá não estar configurada corretamente.If your VM can't reach your on-premises resource, your VPN or ExpressRoute connection might not be configured properly.

Se sua VM hospedada na rede virtual puder acessar seu sistema local, mas seu aplicativo não puder, a causa provavelmente será um dos seguintes motivos: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:

  • Suas rotas não estão configuradas com os intervalos de endereços de sua sub-rede ou de ponto a site no gateway local.Your routes aren't configured with your subnet or point-to-site address ranges in your on-premises gateway.
  • Os grupos de segurança de rede estão bloqueando o acesso ao intervalo de IP ponto a site.Your network security groups are blocking access for your point-to-site IP range.
  • Seus firewalls locais estão bloqueando o tráfego do intervalo de IP ponto a site.Your on-premises firewalls are blocking traffic from your point-to-site IP range.
  • Você está tentando acessar um endereço não RFC 1918 usando o recurso de integração VNet regional.You're trying to reach a non-RFC 1918 address by using the regional VNet Integration feature.

Próximas etapasNext steps

Para saber mais sobre rede e o Azure Functions:To learn more about networking and Azure Functions: