Opções de rede das Funções do AzureAzure Functions networking options

Este artigo descreve as funcionalidades de networking disponíveis nas opções de hospedagem para Funções Azure.This article describes the networking features available across the hosting options for Azure Functions. Todas as seguintes opções de networking dão-lhe alguma capacidade de aceder a recursos sem usar endereços de internet-routable ou para restringir o acesso à Internet a uma aplicação de função.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 diferentes níveis de isolamento de rede disponíveis.The hosting models have different levels of network isolation available. Escolher o correto ajuda-o a cumprir os requisitos de isolamento da rede.Choosing the correct one helps you meet your network isolation requirements.

Pode hospedar aplicações de função de várias maneiras:You can host function apps in a couple of ways:

  • Pode escolher entre opções de plano que funcionam numa infraestrutura multitenante, com vários níveis de conectividade de rede virtual e opções de escala: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 escala dinamicamente em resposta à carga e oferece opções mínimas de isolamento de rede.The Consumption plan scales dynamically in response to load and offers minimal network isolation options.
    • O plano Premium também escala dinamicamente e oferece um isolamento de rede mais abrangente.The Premium plan also scales dynamically and offers more comprehensive network isolation.
    • O plano Azure App Service funciona a 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.
  • Pode executar funções num Ambiente de Serviço de Aplicações.You can run functions in an App Service Environment. Este método implementa a sua função na sua rede virtual e oferece controlo e isolamento completos da rede.This method deploys your function into your virtual network and offers full network control and isolation.

Matriz de funcionalidades de networkingMatrix of networking features

FuncionalidadeFeature Plano de consumoConsumption plan Plano PremiumPremium plan Plano dedicadoDedicated plan ASEASE Utilizar o KubernetesKubernetes
Restrições 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 virtuais (não HTTP)Virtual network triggers (non-HTTP) ❌Não❌No ✅Sim✅Yes ✅Sim✅Yes ✅Sim✅Yes ✅Sim✅Yes
Ligações híbridas (apenas para Windows)Hybrid connections (Windows only) ❌Não❌No ✅Sim✅Yes ✅Sim✅Yes ✅Sim✅Yes ✅Sim✅Yes
Restrições ip de saídaOutbound IP restrictions ❌Não❌No ✅Sim✅Yes ✅Sim✅Yes ✅Sim✅Yes ✅Sim✅Yes

Restrições ip de entradaInbound IP restrictions

Pode utilizar restrições IP para definir uma lista de endereços IP encomendados por prioridade que sejam permitidos ou impedidos de aceder à sua aplicação.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, existe um "negar tudo" implícito 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 ip funcionam com todas as opções de hospedagem de funções.IP restrictions work with all function-hosting options.

Nota

Com as restrições de rede em vigor, pode utilizar o editor do portal apenas a partir da sua rede virtual, ou quando tiver colocado o endereço IP da máquina que está a utilizar para aceder ao portal Azure na lista "Recetores 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, ainda é possível aceder a quaisquer funcionalidades no separador de funcionalidades da Plataforma a partir de qualquer máquina.However, you can still access any features on the Platform features tab from any machine.

Para saber mais, consulte as restrições de acesso estático do Azure App Service.To learn more, see Azure App Service static access restrictions.

O acesso a sites privadosPrivate site access

O acesso ao site privado refere-se a tornar a sua aplicação acessível apenas a partir de uma rede privada, como uma rede virtual 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, Consumoe Serviço de Aplicações quando os pontos finais do serviço estão configurados.Private site access is available in the Premium, Consumption, and App Service plans when service endpoints are configured.
    • Os pontos finais de serviço podem ser configurados numa base por aplicação na Plataforma, as funcionalidades > Networking > Configure Access Restrictions > Add Rule.Service endpoints can be configured on a per-app basis under Platform features > Networking > Configure Access Restrictions > Add Rule. As redes virtuais podem agora ser selecionadas como um tipo de regra.Virtual networks can now be selected as a rule type.
    • Para obter mais informações, consulte os pontos finais do serviço de rede Virtual.For more information, see Virtual network service endpoints.
    • Tenha em mente que, com os pontos finais do serviço, a sua função ainda tem acesso total à internet, mesmo com 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 dentro de um Ambiente de Serviço de Aplicações que está configurado com um equilibrador de carga interno (ILB).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, consulte Criar e utilizar um equilibrador de carga interno com um Ambiente de Serviço de Aplicações.For more information, see Create and use an internal load balancer with an App Service Environment.

Para aprender a configurar o acesso ao site privado, consulte o 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 da rede virtualVirtual network integration

A integração de rede virtual permite que a sua aplicação de função aceda a recursos dentro de uma rede virtual.Virtual network integration allows your function app to access resources inside a virtual network. A Azure Functions suporta dois tipos de integração de rede virtual:Azure Functions supports two kinds of virtual network integration:

  • Os sistemas multitenantes que suportam 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 de Serviço de Aplicações, que se implanta no seu VNet e suporta aplicações de planos de preços isolados.The App Service Environment, which deploys into your VNet and supports Isolated pricing plan apps.

A funcionalidade de Integração VNet é utilizada em aplicações multitenantes.The VNet Integration feature is used in multitenant apps. Se a sua aplicação está no Ambiente de Serviço de Aplicações,então já está num VNet e não necessita de utilização da funcionalidade de Integração VNet para alcançar recursos no mesmo 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 todas as funcionalidades de networking, consulte as funcionalidades de networking do Serviço de Aplicações.For more information on all of the networking features, see App Service networking features.

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

  • Integração Regional VNet: Quando ligar às redes virtuais do Azure Resource Manager na mesma região, deve ter uma sub-rede dedicada no VNet com a qual se está a integrar.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 VNet exigida pelo Gateway: Quando se conecta ao VNet noutras regiões ou a uma rede virtual clássica na mesma região, precisa de um gateway de rede virtual Azure a provisionado no VNet alvo.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.

As funcionalidades de Integração VNet:The VNet Integration features:

  • Requer um plano de preços Standard, Premium, PremiumV2 ou Elastic Premium.Require a Standard, Premium, PremiumV2, or Elastic Premium pricing plan.
  • Apoiar TCP e UDP.Support TCP and UDP.
  • Trabalhe com aplicações e aplicações de função do Azure App Service.Work with Azure App Service apps and function apps.

Há algumas coisas que a Integração VNet não suporta, como:There are some things that VNet Integration doesn't support, like:

  • Montar uma unidade.Mounting a drive.
  • Integração do Diretório Ativo.Active Directory integration.
  • O NetBIOS.NetBIOS.

A Integração VNet exigida pelo Gateway fornece acesso a recursos apenas no VNet alvo ou em redes ligadas ao VNet alvo com peering 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 permite o acesso aos recursos disponíveis em todas as ligações Azure ExpressRoute ou funciona com pontos finais 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 utilizada, a VNet Integration dá à sua aplicação acesso a recursos no seu VNet, mas não concede acesso privado à sua aplicação a partir do 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. O acesso ao site privado refere-se a tornar a sua aplicação acessível apenas a partir de uma rede privada, como por exemplo dentro de um Azure VNet.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 destina-se apenas a fazer chamadas de saída da sua app para o seu VNet.VNet Integration is only for making outbound calls from your app into your VNet.

A integração virtual da rede em Azure Functions utiliza infraestruturas partilhadas com aplicações web do App Service.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, consulte:To learn more about the two types of virtual network integration, see:

Para aprender a configurar a integração de rede virtual, consulte integrar uma aplicação de função com uma rede virtual 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

A utilização da Integração VNet regional permite que a sua aplicação aceda:Using regional VNet Integration enables your app to access:

  • Recursos num VNet na mesma região que a sua aplicação.Resources in a VNet in the same region as your app.
  • Os recursos em VNets espreguiçadados para o VNet a sua aplicação está integrada.Resources in VNets peered to the VNet your app is integrated with.
  • Serviços seguros de serviço.Service endpoint secured services.
  • Recursos através das ligações Azure ExpressRoute.Resources across Azure ExpressRoute connections.
  • Recursos no VNet com os qual está integrado.Resources in the VNet you're integrated with.
  • Recursos através de ligações espreitadas, que incluem ligações Azure ExpressRoute.Resources across peered connections, which includes Azure ExpressRoute connections.
  • Pontos finais privadosPrivate endpoints

Quando utilizar a Integração VNet com VNets na mesma região, pode utilizar as seguintes funcionalidades de networking Azure:When you use VNet Integration with VNets in the same region, you can use the following Azure networking features:

  • Grupos de segurança de rede (NSGs): Pode bloquear o tráfego de saída com um NSG colocado na 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 não pode usar a Integração VNet para fornecer acesso à sua aplicação.The inbound rules don't apply because you can't use VNet Integration to provide inbound access to your app.
  • Tabelas de rotas (UDRs): Pode colocar uma tabela de rota na sub-rede de integração para enviar o tráfego de saída onde quiser.Route tables (UDRs): You can place a route table on the integration subnet to send outbound traffic where you want.

Por padrão, a sua aplicação apenas encaminha o tráfego RFC1918 para o seu VNet.By default, your app routes only RFC1918 traffic into your VNet. Se quiser encaminhar todo o tráfego de saída para o seu VNet, aplique a definição da aplicação WEBSITE_VNET_ROUTE_ALL para a sua aplicação.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 a definição da aplicação:To configure the app setting:

  1. Aceda ao UI de configuração no portal da aplicação.Go to the Configuration UI in your app portal. Selecione Nova definição da aplicação.Select New application setting.

  2. Introduza WEBSITE_VNET_ROUTE_ALL na caixa Nome e introduza 1 na caixa Valor.Enter WEBSITE_VNET_ROUTE_ALL in the Name box, and enter 1 in the Value box.

    Fornecer definição de aplicação

  3. Selecione OK.Select OK.

  4. Selecione Guardar.Select Save.

Se encaminhar todo o tráfego de saída para o seu VNet, está sujeito aos NSGs e UDRs que são aplicados na 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 encaminha todo o tráfego de saída para o seu VNet, os seus endereços de saída ainda são os endereços de saída que estão listados nas propriedades da sua aplicação, a menos que forneça rotas para enviar o tráfego para 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.

Existem algumas limitações com a utilização da Integração VNet com VNets na mesma região:There are some limitations with using VNet Integration with VNets in the same region:

  • Não se pode alcançar recursos através de ligações globais de observação.You can't reach resources across global peering connections.
  • A funcionalidade está disponível apenas a partir de novas unidades de escala do Azure App Service que suportam planos do Serviço de Aplicações PremiumV2.The feature is available only from newer Azure App Service scale units that support PremiumV2 App Service plans. Note que isso não significa que a sua aplicação deve funcionar num nível de preços PremiumV2, apenas que deve funcionar num Plano de Serviço de Aplicações onde a opção PremiumV2 está disponível (o que implica que é uma unidade de escala mais recente onde esta funcionalidade 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 utilizada apenas por um plano de Serviço de Aplicações.The integration subnet can be used by only one App Service plan.
  • A funcionalidade não pode ser utilizada por aplicações de plano isolado que se encontrem num Ambiente de Serviço de Aplicações.The feature can't be used by Isolated plan apps that are in an App Service Environment.
  • A funcionalidade requer uma sub-rede não utilizada que seja uma /27 com 32 endereços ou maior num VNet do Gestor de Recursos Azure.The feature requires an unused subnet that's a /27 with 32 addresses or larger in an Azure Resource Manager VNet.
  • A aplicação e o VNet devem estar na mesma região.The app and the VNet must be in the same region.
  • Não é possível eliminar um VNet com uma aplicação integrada.You can't delete a VNet with an integrated app. Remova a integração antes de eliminar o VNet.Remove the integration before you delete the VNet.
  • Só é possível integrar-se com VNets na mesma subscrição que a aplicação.You can only integrate with VNets in the same subscription as the app.
  • Você pode ter apenas uma integração regional VNet por plano de Serviço de Aplicação.You can have only one regional VNet Integration per App Service plan. Várias aplicações no mesmo plano de Serviço de Aplicações podem usar o mesmo VNet.Multiple apps in the same App Service plan can use the same VNet.
  • Não é possível alterar a subscrição de uma app ou de um plano enquanto há uma aplicação que está a usar 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.
  • A sua aplicação não consegue resolver endereços em Zonas Privadas Azure DNS 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 de plano.One address is used for each plan instance. Se escalar a sua aplicação em cinco instâncias, então são utilizados cinco endereços.If you scale your app to five instances, then five addresses are used. Uma vez que o tamanho da sub-rede não pode ser alterado após a atribuição, você deve usar uma sub-rede que é grande o suficiente para acomodar qualquer escala que a sua app 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. Um /26 com 64 endereços é o tamanho recomendado.A /26 with 64 addresses is the recommended size. A /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 escala um plano para cima ou para baixo, você precisa do dobro de 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 quiser que as suas apps num outro plano cheguem a um VNet que já esteja ligado a apps noutro plano, selecione uma sub-rede diferente da que está a ser 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.

A funcionalidade é totalmente suportada tanto para aplicações web Windows como Linux.The feature is fully supported for both Windows and Linux web apps. Todos os comportamentos agem da mesma forma entre aplicações Windows e aplicações Linux.All of the behaviors act the same between Windows apps and Linux apps.

Pontos finais de serviçoService endpoints

A Integração Regional de VNet permite-lhe utilizar pontos finais de serviço.Regional VNet Integration enables you to use service endpoints. Para utilizar pontos finais de serviço com a sua aplicação, utilize a Integração Regional de VNet para ligar a um VNet selecionado e, em seguida, configure os pontos finais do serviço com o serviço de destino na sub-rede que utilizou 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 então quisesse aceder a um serviço sobre os pontos finais de serviço:If you then wanted to access a service over service endpoints:

  1. Configure a Integração Regional de VNet com a sua aplicação webconfigure regional VNet Integration with your web app
  2. ir para o serviço de destino e configurar pontos finais de serviço contra a sub-rede utilizada para a integraçãogo to the destination service and configure service endpoints against the subnet used for integration

Grupos de segurança de redeNetwork security groups

Pode utilizar grupos de segurança de rede para bloquear o tráfego de entrada e saída de recursos num VNet.You can use network security groups to block inbound and outbound traffic to resources in a VNet. Uma aplicação que utiliza a Integração VNet regional pode usar um grupo de segurança de rede para bloquear o tráfego de saída para recursos no seu 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, tem de ter a definição de aplicação WEBSITE_VNET_ROUTE_ALL definida para 1.To block traffic to public addresses, you must have the application setting WEBSITE_VNET_ROUTE_ALL set to 1. As regras de entrada num NSG não se aplicam à sua aplicação porque a Integração VNet afeta apenas o tráfego de saída da sua aplicação.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 na sua aplicação, utilize a funcionalidade Restrições de Acesso.To control inbound traffic to your app, use the Access Restrictions feature. Um NSG 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 estiver definido para 1 e não tiver rotas que afetem o tráfego de endereço público na sua sub-rede de integração, todo o tráfego de saída ainda está sujeito a NSGs atribuídos à 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, os NSGs são aplicados apenas ao tráfego RFC1918.If WEBSITE_VNET_ROUTE_ALL isn't set, NSGs are only applied to RFC1918 traffic.

RotasRoutes

Pode utilizar as tabelas de rotas para encaminhar o tráfego de saída da sua app para onde quiser.You can use route tables to route outbound traffic from your app to wherever you want. Por predefinição, as tabelas de rotas apenas afetam o tráfego de destino RFC1918.By default, route tables only affect your RFC1918 destination traffic. Se definir WEBSITE_VNET_ROUTE_ALL para 1, todas as suas chamadas de saída são afetadas.If you set WEBSITE_VNET_ROUTE_ALL to 1, all of your outbound calls are affected. As rotas que estão definidas na sua sub-rede de integração não afetarão respostas a pedidos de aplicações 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 quiser encaminhar todo o tráfego de saída no local, pode utilizar uma mesa de rota para enviar todo o tráfego de saída para o seu gateway 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 fizer a rota do tráfego para um gateway, certifique-se de definir rotas na rede externa para enviar quaisquer respostas de volta.If you do route traffic to a gateway, be sure to set routes in the external network to send any replies back.

As rotas do Border Gateway Protocol (BGP) também afetam o tráfego da sua aplicação.Border Gateway Protocol (BGP) routes also affect your app traffic. Se tiver rotas BGP a partir de algo como um gateway ExpressRoute, o tráfego de saída da sua aplicação 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 estiver definido para 1, todo o tráfego de saída pode ser afetado pelas suas rotas BGP.If WEBSITE_VNET_ROUTE_ALL is set to 1, all outbound traffic can be affected by your BGP routes.

Zonas Privadas Azure DNSAzure DNS Private Zones

Depois de a sua aplicação se integrar com o seu VNet, utiliza o mesmo servidor DNS com o qual o seu VNet está configurado.After your app integrates with your VNet, it uses the same DNS server that your VNet is configured with. Por padrão, a sua aplicação não funcionará com as Zonas Privadas Azure DNS.By default, your app won't work with Azure DNS Private Zones. Para trabalhar com as Zonas Privadas Azure DNS, é necessário adicionar as seguintes definições de aplicações: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 o valor 1WEBSITE_VNET_ROUTE_ALL with value 1

Estas definições enviarão todas as suas chamadas de saída da sua app para o seu VNet, além de permitir que a sua aplicação utilize zonas privadas Azure DNS.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 finais privadosPrivate endpoints

Se quiser fazer chamadas para Private Endpoints,então tem de se integrar com as Zonas Privadas Azure DNS ou gerir o ponto final privado no servidor DNS utilizado pela sua aplicação.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.

Ligar ao ponto final de serviço recursos segurosConnect to service endpoint secured resources

Para fornecer um nível de segurança mais elevado, pode restringir uma série de serviços Azure a uma rede virtual utilizando pontos finais 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, deve integrar a sua aplicação de função com aquela rede virtual para aceder ao recurso.You must then integrate your function app with that virtual network to access the resource. Esta configuração é suportada em todos os planos que suportam a integração de redes virtuais.This configuration is supported on all plans that support virtual network integration.

Para saber mais, consulte os pontos finais do 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 criar uma aplicação de função, deve criar ou ligar para uma conta de Armazenamento Azure de uso geral que suporte o armazenamento de Blob, Queue e Table.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. Não é possível utilizar quaisquer restrições de rede virtuais nesta conta.You can't currently use any virtual network restrictions on this account. Se configurar um ponto final de serviço de rede virtual na conta de armazenamento que está a usar para a sua aplicação de função, essa configuração quebrará a sua aplicação.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, consulte os requisitos da conta de Armazenamento.To learn more, see Storage account requirements.

Use referências de Cofre de ChavesUse Key Vault references

Pode utilizar referências do Azure Key Vault para utilizar segredos do Azure Key Vault na sua aplicação 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. Azure Key Vault é um serviço que fornece gestão de segredos centralizados, com controlo 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, as referências do Key Vault não funcionarão se o cofre da chave estiver seguro com pontos finais de serviço.Currently, Key Vault references won't work if your key vault is secured with service endpoints. Para se ligar a um cofre de chaves utilizando a integração virtual da rede, tem de ligar para o Key Vault no seu código de aplicação.To connect to a key vault by using virtual network integration, you need to call Key Vault in your application code.

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

Atualmente, pode utilizar funções de gatilho não-HTTP a partir de uma rede virtual de uma de duas maneiras:Currently, you can use non-HTTP trigger functions from within a virtual network in one of two ways:

  • Execute a sua aplicação de função num plano Premium e ative o suporte ao gatilho da rede virtual.Run your function app in a Premium plan and enable virtual network trigger support.
  • Execute a sua aplicação de função num plano de Serviço de Aplicações ou ambiente de serviço de aplicações.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

Quando executar um plano Premium, pode ligar funções de gatilho não-HTTP a serviços que funcionam 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 isso, tem de ativar o suporte de gatilho de rede virtual para a sua aplicação de função.To do this, you must enable virtual network trigger support for your function app. A definição de suporte de gatilho de rede virtual encontra-se no portal Azure nas definições de tempo de funcionamento da função de configuração > Function runtime settings.The virtual network trigger support setting is found in the Azure portal under Configuration > Function runtime settings.

VNETToggle

Também pode ativar os gatilhos de rede virtuais utilizando o seguinte comando Azure CLI: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 virtuais são suportados na versão 2.x e acima do tempo de execução de Funções.Virtual network triggers are supported in version 2.x and above of the Functions runtime. Os seguintes tipos de gatilho não-HTTP são suportados.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 ativa o suporte ao gatilho de rede virtual, apenas os tipos de gatilho mostrados na escala de tabela anterior dinamicamente com a sua aplicação.When you enable virtual network trigger support, only the trigger types shown in the previous table scale dynamically with your application. Ainda podes usar gatilhos que não estão na mesa, mas não estão além da contagem de exemplos pré-aquecidas.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, consulte Triggers e encadernações.For the complete list of triggers, see Triggers and bindings.

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

Quando a sua aplicação de função é executado num plano de Serviço de Aplicações ou num Ambiente de Serviço de Aplicações, pode utilizar 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 as suas funções sejam ativadas corretamente, tem de estar ligado a uma rede virtual com acesso ao recurso definido na ligaçã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, assuma que quer configurar a Azure Cosmos DB para aceitar o tráfego apenas a partir de uma rede virtual.For example, assume you want to configure Azure Cosmos DB to accept traffic only from a virtual network. Neste caso, deve implementar a sua aplicação de função num plano de Serviço de Aplicações que proporciona 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 desencadeada por esse recurso DB da Azure Cosmos.Integration enables a function to be triggered by that Azure Cosmos DB resource.

Ligações HíbridasHybrid Connections

Hybrid Connections é uma característica do Azure Relay que pode usar para aceder a recursos de aplicações noutras redes.Hybrid Connections is a feature of Azure Relay that you can use to access application resources in other networks. Fornece acesso da sua aplicação a um ponto final de aplicação.It provides access from your app to an application endpoint. Não pode usá-lo para aceder à sua aplicação.You can't use it to access your application. As Ligações Híbridas estão disponíveis para funções que funcionam no Windows em todos, menos no plano de Consumo.Hybrid Connections is available to functions that run on Windows in all but the Consumption plan.

Como usado em Funções Azure, cada ligação híbrida está relacionada com um único hospedeiro TCP e combinação de porta.As used in Azure Functions, each hybrid connection correlates to a single TCP host and port combination. Isto significa que o ponto final da ligação híbrida pode estar em qualquer sistema operativo e qualquer aplicação, desde que aceda a 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. A funcionalidade Ligações Híbridas não sabe nem se importa com o protocolo de aplicação ou o que está a aceder.The Hybrid Connections feature doesn't know or care what the application protocol is or what you're accessing. Só dá acesso à rede.It just provides network access.

Para saber mais, consulte a documentação do Serviço de Aplicações para Ligações Híbridas.To learn more, see the App Service documentation for Hybrid Connections. Estes mesmos passos de configuração suportam funções Azure.These same configuration steps support Azure Functions.

Importante

As Ligações Híbridas só são suportadas nos planos do Windows.Hybrid Connections is only supported on Windows plans. Linux não é apoiado.Linux isn't supported.

Restrições ip de saídaOutbound IP restrictions

As restrições IP de saída estão disponíveis num plano Premium, plano de Serviço de Aplicações ou Ambiente de Serviço de Aplicações.Outbound IP restrictions are available in a Premium plan, App Service plan, or App Service Environment. Pode configurar restrições de saída para a rede virtual onde o seu Ambiente de Serviço de Aplicações está implantado.You can configure outbound restrictions for the virtual network where your App Service Environment is deployed.

Quando integra uma aplicação de função num plano Premium ou num plano de Serviço de Aplicações com uma rede virtual, a aplicação 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 definição de aplicação, força todo o WEBSITE_VNET_ROUTE_ALL=1 tráfego de saída a ser enviado para a sua rede virtual, onde 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.

AutomatizaçãoAutomation

As seguintes APIs permitem gerir programáticamente integrações de redes virtuais regionais:The following APIs let you programmatically manage regional virtual network integrations:

Resolução de problemasTroubleshooting

A funcionalidade é fácil de configurar, mas isso não significa que a sua experiência seja livre de problemas.The feature is easy to set up, but that doesn't mean your experience will be problem free. Se encontrar problemas no acesso ao seu ponto final pretendido, existem alguns utilitários que pode utilizar para testar a conectividade a partir da consola da aplicação.If you encounter problems accessing your desired endpoint, there are some utilities you can use to test connectivity from the app console. Há duas consolas que podes usar.There are two consoles that you can use. Uma é a consola Kudu, e a outra é a consola no portal Azure.One is the Kudu console, and the other is the console in the Azure portal. Para chegar à consola Kudu a partir da sua aplicação, vá ao Tools > Kudu.To reach the Kudu console from your app, go to Tools > Kudu. Também pode alcançar a consola Kudo em [sitename].scm.azurewebsites.net.You can also reach the Kudo console at [sitename].scm.azurewebsites.net. Depois de carregar o site, vá ao separador de consola Debug. Para chegar à consola azure a partir da sua aplicação, vá ao Consola de Ferramentas. > ConsoleAfter 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, nslookup, e tracert não funcionam através da consola 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 vazio, são adicionadas duas ferramentas separadas.To fill the void, two separate tools are added. Para testar a funcionalidade DNS, adicionámos uma ferramenta chamada nameresolver.exe.To test DNS functionality, we added a tool named nameresolver.exe. A sintaxe é:The syntax is:

nameresolver.exe hostname [optional: DNS Server]

Pode utilizar o nomeresolver para verificar os nomes de anfitrião de que a sua aplicação depende.You can use nameresolver to check the hostnames that your app depends on. Desta forma pode testar se tem alguma coisa mal configurada com o 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. Pode ver o servidor DNS que a sua aplicação utiliza na consola, olhando para as variáveis ambientais 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.

Pode utilizar a próxima ferramenta para testar a conectividade TCP a uma combinação de hospedeiro e porta.You can use the next tool to test for TCP connectivity to a host and port combination. Esta ferramenta chama-se tcpping e a sintaxe é:This tool is called tcpping and the syntax is:

tcpping.exe hostname [optional: port]

O utilitário de tcpping diz-lhe se pode chegar a um hospedeiro e porta específicos.The tcpping utility tells you if you can reach a specific host and port. Só pode mostrar sucesso se houver uma aplicação a ouvir na combinação de anfitriões e portas, e há acesso à rede da sua app para o anfitrião especificado e porta.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.

Depurg acesso a recursos hospedados em rede virtualDebug access to virtual network-hosted resources

Uma série de coisas pode impedir que a sua app chegue a um anfitrião e porto específicos.A number of things can prevent your app from reaching a specific host and port. A maior parte do tempo é uma destas coisas:Most of the time it's one of these things:

  • Uma firewall está no caminho.A firewall is in the way. Se tiver uma firewall no caminho, atinja o tempo limite da TCP.If you have a firewall in the way, you hit the TCP timeout. O tempo limite de TCP é de 21 segundos neste caso.The TCP timeout is 21 seconds in this case. Utilize a ferramenta de tcpping para testar a conectividade.Use the tcpping tool to test connectivity. Os intervalos de tempo TCP podem ser causados por muitas coisas além das firewalls, mas começam por aí.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 de DNS é de 3 segundos por servidor DNS.The DNS timeout is 3 seconds per DNS server. Se tiver dois servidores DNS, o tempo limite é de 6 segundos.If you have two DNS servers, the timeout is 6 seconds. Use o nome de consolação para ver se o DNS está a funcionar.Use nameresolver to see if DNS is working. Não podes usar o nslookup, porque isso não usa o DNS com o qual a tua rede virtual está configurada.You can't use nslookup, because that doesn't use the DNS your virtual network is configured with. Se for inacessível, pode ter uma firewall ou NSG bloqueando o acesso ao DNS ou pode estar em baixo.If inaccessible, you could have a firewall or NSG blocking access to DNS or it could be down.

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

Integração Regional de VNetRegional VNet Integration

  • O seu destino é um endereço não-RFC1918 e não tem WEBSITE_VNET_ROUTE_ALL definido para 1?Is your destination a non-RFC1918 address and you don't have WEBSITE_VNET_ROUTE_ALL set to 1?
  • Existe uma saída de bloqueio da NSG da sua sub-rede de integração?Is there an NSG blocking egress from your integration subnet?
  • Se vai atravessar a Azure ExpressRoute ou uma VPN, o seu portal no local está configurado para encaminhar o tráfego de volta para 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 conseguir chegar aos pontos finais da sua rede virtual, mas não no local, verifique as suas rotas.If you can reach endpoints in your virtual network but not on-premises, check your routes.
  • 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 regional de Integração VNet, a sua sub-rede de integração é delegada no Microsoft.Web.During regional VNet Integration configuration, your integration subnet is delegated to Microsoft.Web. O UI de Integração VNet delega automaticamente a sub-rede para o Microsoft.Web.The VNet Integration UI delegates the subnet to Microsoft.Web automatically. Se a sua conta não tiver permissões de networking suficientes para definir a delegação, precisará de alguém que possa definir atributos na 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á à sub-rede Azure Virtual Network UI e deslote 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 VNet exigida pelo GatewayGateway-required VNet Integration

  • É o intervalo de endereços ponto-a-local nas gamas RFC 1918 (10.0.0-10.255.255.255 /172.16.00.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 portal mostra-se como estando no portal?Does the gateway show as being up in the portal? Se o seu portal está em baixo, então traga-o de volta.If your gateway is down, then bring it back up.
  • Os certificados mostram estar sincronizados ou suspeita que a configuração da rede foi alterada?Do certificates show as being in sync, or do you suspect that the network configuration was changed? Se os seus certificados estiverem dessincronizados ou suspeitar que foi feita uma alteração na sua configuração de rede virtual que não foi sincronizada com os seus ASPs, selecione Sync Network.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 vai atravessar uma VPN, o portal no local está configurado para encaminhar o tráfego de volta para Azure?If you're going across a VPN, is the on-premises gateway configured to route traffic back up to Azure? Se conseguir chegar aos pontos finais da sua rede virtual, mas não no local, verifique as suas rotas.If you can reach endpoints in your virtual network but not on-premises, check your routes.
  • Está a tentar usar uma porta de entrada de coexistência que suporta tanto o ponto para o site como o ExpressRoute?Are you trying to use a coexistence gateway that supports both point to site and ExpressRoute? As portas de coexistência não são suportadas com a Integração VNet.Coexistence gateways aren't supported with VNet Integration.

Depurar problemas de networking é um desafio porque você não pode ver o que está bloqueando o acesso a uma combinação específica de anfitrião:port.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:

  • Tem uma firewall no seu anfitrião que impede o acesso à porta de aplicação a partir da sua gama IP ponto-a-local.You have a firewall up on your host that prevents access to the application port from your point-to-site IP range. Atravessar sub-redes requer frequentemente acesso público.Crossing subnets often requires public access.
  • O teu anfitrião-alvo está em baixo.Your target host is down.
  • A sua candidatura está em baixo.Your application is down.
  • Enganou-se no IP ou no nome de anfitrião.You had the wrong IP or hostname.
  • A sua aplicação está a ouvir numa porta diferente do que esperava.Your application is listening on a different port than what you expected. Pode combinar o seu ID de processo com a porta de audição utilizando "netstat -aon" no anfitrião do ponto final.You can match your process ID with the listening port by using "netstat -aon" on the endpoint host.
  • Os seus grupos de segurança de rede estão configurados de forma a impedir o acesso ao seu anfitrião de aplicações e à porta a partir da sua gama IP ponto-a-local.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.

Não sabe que endereço a sua aplicação realmente usa.You don't know what address your app actually uses. Pode ser qualquer endereço na sub-rede de integração ou no intervalo de endereços ponto a local, pelo que precisa de permitir o acesso a partir de toda a gama 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.

Os passos adicionais de depurg incluem:Additional debug steps include:

  • Ligue-se a um VM na sua rede virtual e tente contactar o seu anfitrião de recursos:porta 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, utilize a rede de teste decomando PowerShell .To test for TCP access, use the PowerShell command test-netconnection. A sintaxe é:The syntax is:
test-netconnection hostname [optional: -Port]
  • Apresentar uma aplicação num VM e testar o acesso a esse anfitrião e porta a partir da consola a partir da sua aplicação, utilizando 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 no localOn-premises resources

Se a sua aplicação não conseguir chegar a um recurso no local, verifique se consegue contactar o recurso a partir da sua rede virtual.If your app can't reach a resource on-premises, check if you can reach the resource from your virtual network. Utilize o comando PowerShell de rede de teste para verificar se há acesso à TCP.Use the test-netconnection PowerShell command to check for TCP access. Se o seu VM não conseguir chegar ao seu recurso no local, a sua ligação VPN ou ExpressRoute pode 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 o seu VM virtual hospedado em rede pode chegar ao seu sistema no local, mas a sua aplicação não pode, a causa é provavelmente uma das seguintes razões: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:

  • As suas rotas não estão configuradas com os intervalos de endereços da sua sub-rede ou ponto a local no seu gateway no local.Your routes aren't configured with your subnet or point-to-site address ranges in your on-premises gateway.
  • Os seus grupos de segurança de rede estão a bloquear o acesso para o seu intervalo ip ponto-a-local.Your network security groups are blocking access for your point-to-site IP range.
  • As suas firewalls no local estão a bloquear o tráfego da sua gama IP ponto-a-local.Your on-premises firewalls are blocking traffic from your point-to-site IP range.
  • Está a tentar chegar a um endereço não RFC 1918 utilizando a funcionalidade regional de Integração VNet.You're trying to reach a non-RFC 1918 address by using the regional VNet Integration feature.

Próximos passosNext steps

Para saber mais sobre networking e Funções Azure:To learn more about networking and Azure Functions: