Tutorial: Controlar Funções do Azure IP de saída com um NAT Gateway de rede virtual do Azure

A tradução de endereços de rede virtual (NAT) simplifica a conectividade de Internet apenas de saída para redes virtuais. Quando configurada numa sub-rede, toda a conectividade de saída utiliza os endereços IP públicos estáticos especificados. Um NAT pode ser útil para aplicações que precisam de consumir um serviço de terceiros que utiliza uma lista de permissões de endereço IP como medida de segurança. Para saber mais, veja O que é o Azure NAT Gateway?.

Este tutorial mostra-lhe como utilizar gateways NAT para encaminhar o tráfego de saída de uma função acionada por HTTP. Esta função permite-lhe verificar o seu próprio endereço IP de saída. Durante este tutorial, irá:

  • Criar uma rede virtual
  • Criar uma aplicação de funções de plano Premium
  • Crie um endereço IP público
  • Criar um nat gateway
  • Configurar a aplicação de funções para encaminhar o tráfego de saída através do NAT Gateway

Topologia

O diagrama seguinte mostra a arquitetura da solução que cria:

IU para integração do NAT Gateway

As funções em execução no plano Premium têm as mesmas capacidades de alojamento que as aplicações Web no Serviço de Aplicações do Azure, que inclui a funcionalidade Integração de VNet. Para saber mais sobre a Integração de VNet, incluindo a resolução de problemas e a configuração avançada, veja Integrar a sua aplicação numa rede virtual do Azure.

Pré-requisitos

Neste tutorial, é importante que compreenda o endereçamento IP e a sub-rede. Pode começar com este artigo que abrange as noções básicas de endereçamento e sub-redes. Estão disponíveis muitos mais artigos e vídeos online.

Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

Se já tiver concluído o tutorial Integrar Funções numa rede virtual do Azure , pode avançar para Criar uma função de acionador HTTP.

Criar uma rede virtual

  1. No menu do portal do Azure, selecione Criar um recurso. Na Azure Marketplace, selecione Rede>Rede Rede virtual.

  2. Em Criar rede virtual, introduza ou selecione as definições especificadas, conforme mostrado na tabela seguinte:

    Definição Valor
    Subscrição Selecione a sua subscrição.
    Grupo de recursos Selecione Criar novo, introduza myResourceGroup e, em seguida, selecione OK.
    Name Introduza myResourceGroup-vnet.
    Localização Selecione E.U.A. Leste.
  3. Selecione Seguinte: Endereços IP e, para o espaço de endereços IPv4, introduza 10.10.0.0/16.

  4. Selecione Adicionar sub-rede e, em seguida, introduza Tutorial-Net para Nome da sub-rede e 10.10.1.0/24 para Intervalo de endereços da Sub-rede.

    Separador Endereços IP para criar uma vnet

  5. Selecione Adicionar e, em seguida, selecione Rever + criar. Deixe o resto como predefinição e selecione Criar.

  6. Em Criar rede virtual, selecione Criar.

Em seguida, crie uma aplicação de funções no plano Premium. Este plano fornece dimensionamento sem servidor ao suportar a integração da rede virtual.

Criar uma aplicação de funções num plano Premium

Este tutorial mostra-lhe como criar a sua aplicação de funções num plano Premium. A mesma funcionalidade também está disponível ao utilizar um plano Dedicado (Serviço de Aplicações).

Nota

Para obter a melhor experiência neste tutorial, selecione .NET para pilha de runtime e selecione Windows para sistema operativo. Além disso, crie a sua aplicação de funções na mesma região que a sua rede virtual.

  1. A partir do menu do portal do Azure ou a partir da Home page, selecione Criar um recurso.

  2. Na página Novo, selecione >Aplicação de Funções de Computação.

  3. Na página Noções básicas , utilize as definições da aplicação de funções conforme especificado na tabela seguinte:

    Definição Valor sugerido Descrição
    Subscrição A sua subscrição A subscrição no âmbito da qual esta nova aplicação de funções é criada.
    Grupo de Recursos myResourceGroup Nome do grupo de recursos novo no qual a aplicação Function App vai ser criada.
    Nome da Aplicação de Funções Nome globalmente exclusivo Nome que identifica a sua aplicação Function App nova. Os carateres válidos são a-z (não sensível a maiúsculas e minúsculas), 0-9 e -.
    Publicar Código Opção para publicar ficheiros de código ou um contentor de Docker.
    Pilha de runtime Linguagem preferencial Escolha um tempo de execução que suporte a sua linguagem de programação de funções favorita. A edição no portal não é atualmente suportada para o desenvolvimento do Python.
    Região Região preferencial Escolha uma região perto de si ou perto de outros serviços aos quais as suas funções acedem.
  4. Selecione Seguinte: Alojamento. Na página Alojamento , introduza as seguintes definições:

    Definição Valor sugerido Descrição
    Conta de armazenamento Nome globalmente exclusivo Crie uma conta de armazenamento para ser utilizada pela sua aplicação de funções. Os nomes das contas de armazenamento têm de ter entre 3 e 24 carateres de comprimento e apenas podem conter números e letras minúsculas. Também pode utilizar uma conta existente, que tem de cumprir os requisitos da conta de armazenamento.
    Sistema operativo Sistema operativo preferencial Um sistema operativo está pré-selecionado para si com base na seleção da pilha de runtime, mas pode alterar a definição, se necessário. O Python só é suportado no Linux. A edição no portal só é suportada no Windows.
    Planear Premium O plano de alojamento que define a forma como os recursos são alocados à sua aplicação Function App. Selecione Premium. Por predefinição, é criado um novo plano de Serviço de Aplicações. O SKU e o tamanho predefinidos são O EP1, onde o EP significa premium elástico. Para saber mais, veja a lista de SKUs Premium.
    Ao executar funções JavaScript num plano Premium, deve escolher uma instância que tenha menos vCPUs. Para obter mais informações, veja Escolher planos Premium de núcleo único.
  5. Selecione Seguinte: Monitorização. Na página Monitorização , introduza as seguintes definições:

    Definição Valor sugerido Descrição
    Application Insights Predefinição Cria um recurso do Application Insights com o mesmo nome da Aplicação na região suportada mais próxima. Ao expandir esta definição, pode alterar o Novo nome do recurso ou escolher uma Localização diferente numa geografia do Azure para armazenar os seus dados.
  6. Selecione Rever + criar para rever as seleções de configuração da aplicação.

  7. Na página Rever + criar , reveja as suas definições e, em seguida, selecione Criar para aprovisionar e implementar a aplicação de funções.

  8. Selecione o ícone Notificações no canto superior direito do portal e watch para a mensagem Implementação bem-sucedida.

  9. Selecione Ir para o recurso para ver a sua nova aplicação de funções. Também pode selecionar Afixar ao dashboard. A afixação facilita o regresso a este recurso da aplicação de funções a partir do dashboard.

    Notificação de implementação

Ligar a aplicação de funções à rede virtual

Agora, pode ligar a aplicação de funções à rede virtual.

  1. Na sua aplicação de funções, selecione Rede no menu esquerdo e, em seguida, em Integração de VNet, selecione Clique aqui para configurar.

    Escolher rede na aplicação de funções

  2. Na página Integração da VNET , selecione Adicionar VNet.

  3. Em Estado da Funcionalidade de Rede, utilize as definições na tabela abaixo da imagem:

    Definir a rede virtual da aplicação de funções

    Definição Valor sugerido Descrição
    Rede Virtual MyResourceGroup-vnet Esta é a rede virtual que criou anteriormente.
    Sub-rede Criar Nova Sub-rede Crie uma sub-rede na rede virtual para a sua aplicação de funções utilizar. A Integração de VNet tem de ser configurada para utilizar uma sub-rede vazia.
    Nome da sub-rede Function-Net Nome da nova sub-rede.
    Bloco de endereços de rede virtual 10.10.0.0/16 Só deve ter um bloco de endereços definido.
    Bloco de Endereços da Sub-rede 10.10.2.0/24 O tamanho da sub-rede restringe o número total de instâncias para as quais a aplicação de funções do plano Premium pode aumentar horizontalmente. Este exemplo utiliza uma /24 sub-rede com 254 endereços de anfitrião disponíveis. Esta sub-rede está sobreaprovisionada, mas é fácil de calcular.
  4. Selecione OK para adicionar a sub-rede. Feche as páginas Integração de VNet e Estado da Funcionalidade de Rede para regressar à página da aplicação de funções.

A aplicação de funções pode agora aceder à rede virtual. Quando a conectividade está ativada, a definição do vnetrouteallenabled site é definida como 1. Tem de ter esta definição de site ou a definição da aplicação legada WEBSITE_VNET_ROUTE_ALL definida como 1.

Em seguida, irá adicionar uma função acionada por HTTP à aplicação de funções.

Criar uma função de acionador HTTP

  1. No menu esquerdo da janela Funções , selecione Funções e, em seguida, selecione Adicionar no menu superior.

  2. Na janela Nova Função , selecione Acionador Http e aceite o nome predefinido para Nova Função ou introduza um novo nome.

  3. Em Código + Teste, substitua o código C# gerado pelo modelo (.csx) pelo seguinte código:

    #r "Newtonsoft.Json"
    
    using System.Net;
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.Extensions.Primitives;
    using Newtonsoft.Json;
    
    public static async Task<IActionResult> Run(HttpRequest req, ILogger log)
    {
        log.LogInformation("C# HTTP trigger function processed a request.");
    
        var client = new HttpClient();
        var response = await client.GetAsync(@"https://ifconfig.me");
        var responseMessage = await response.Content.ReadAsStringAsync();
    
        return new OkObjectResult(responseMessage);
    }
    

    Este código chama um site externo que devolve o endereço IP do autor da chamada, que neste caso é esta função. Este método permite-lhe determinar facilmente o endereço IP de saída que está a ser utilizado pela sua aplicação de funções.

Agora, está pronto para executar a função e verificar os IPs de saída atuais.

Verificar os IPs de saída atuais

Agora, pode executar a função. Mas primeiro, verifique no portal e veja que IPs de saída estão a ser utilizados pela aplicação de funções.

  1. Na sua aplicação de funções, selecione Propriedades e reveja o campo Endereços IP de Saída .

    Ver endereços IP de saída da aplicação de funções

  2. Agora, regresse à função de acionador HTTP, selecione Código + Teste e, em seguida , Teste/Executar.

    Função Test

  3. Selecione Executar para executar a função e, em seguida, mude para a Saída.

    Resultado da função de teste

  4. Verifique se o endereço IP no corpo da resposta HTTP é um dos valores dos endereços IP de saída que viu anteriormente.

Agora, pode criar um IP público e utilizar um NAT Gateway para modificar este endereço IP de saída.

Criar IP público

  1. No grupo de recursos, selecione Adicionar, pesquise o Azure Marketplace endereço IP público e selecione Criar. Utilize as definições na tabela abaixo da imagem:

    Criar Endereço IP Público

    Definição Valor sugerido
    Versão do IP IPv4
    SKU Standard
    Escalão de serviço Regional
    Nome IP de saída
    Subscrição certifique-se de que a sua subscrição é apresentada
    Grupo de recursos myResourceGroup (ou nome que atribuiu ao grupo de recursos)
    Localização E.U.A. Leste (ou localização que atribuiu aos outros recursos)
    Zona de Disponibilidade Sem Zona
  2. Selecione Criar para submeter a implementação.

  3. Assim que a implementação estiver concluída, navegue para o recurso de Endereço IP Público recém-criado e veja o Endereço IP na Descrição Geral.

    Ver Endereço IP Público

Criar um NAT gateway

Agora, vamos criar o NAT Gateway. Quando começou com o tutorial de rede virtual anterior, Function-Net era o nome de sub-rede sugerido e MyResourceGroup-vnet era o nome de rede virtual sugerido nesse tutorial.

  1. No grupo de recursos, selecione Adicionar, procure nat gateway no Azure Marketplace e selecione Criar. Utilize as definições na tabela abaixo da imagem para preencher o separador Noções Básicas :

    Criar um NAT gateway

    Definição Valor sugerido
    Subscrição A sua subscrição
    Grupo de recursos myResourceGroup (ou nome que atribuiu ao grupo de recursos)
    Nome do NAT Gateway myNatGateway
    Região E.U.A. Leste (ou localização que atribuiu aos outros recursos)
    Zona de Disponibilidade Nenhuma
  2. Selecione Seguinte: IP de saída. No campo Endereços IP públicos , selecione o endereço IP público criado anteriormente. Deixe prefixos ip públicos não selecionados.

  3. Selecione Seguinte: Sub-rede. Selecione o recurso myResourceGroup-vnet no campo Rede virtual e sub-rede Function-Net .

    Selecionar sub-rede

  4. Selecione Rever + Criar e, em seguida , Criar para submeter a implementação.

Depois de concluída a implementação, o NAT Gateway está pronto para encaminhar o tráfego da sub-rede da aplicação de funções para a Internet.

Verificar novos IPs de saída

Repita os passos anteriores para executar a função novamente. Deverá agora ver o endereço IP de saída que configurou no NAT apresentado na saída da função.

Limpar os recursos

Criou recursos para concluir este tutorial. Estes recursos ser-lhe-ão cobrados, consoante o estado da conta e os preços do serviço. Para evitar incorrer em custos adicionais, elimine os recursos quando souber que mais precisa deles.

  1. No portal do Azure, visite a página Grupo de recursos.

    Para aceder a essa página a partir da página da aplicação de funções, selecione o separador Descrição geral e, em seguida, selecione a ligação em Grupo de recursos.

    Captura de ecrã que mostra a seleção do grupo de recursos a eliminar da página da aplicação de funções.

    Para aceder a essa página a partir do dashboard, selecione Grupos de recursos e, em seguida, selecione o grupo de recursos que utilizou para este artigo.

  2. Na página Grupo de recursos, reveja a lista de recursos incluídos e verifique se são os que pretende eliminar.

  3. Selecione Eliminar grupo de recursos e siga as instruções.

    A eliminação pode demorar alguns minutos. Quando terminar, é apresentada uma notificação durante alguns segundos. Também pode selecionar o ícone de sino na parte superior da página para ver a notificação.

Passos seguintes