Tutorial: integrar funções com uma rede virtual do AzureTutorial: integrate Functions with an Azure virtual network

Este tutorial mostra como usar o Azure Functions para conectar-se aos recursos em uma rede virtual do Azure.This tutorial shows you how to use Azure Functions to connect to resources in an Azure virtual network. Você criará uma função que tenha acesso à internet e a uma VM executando o WordPress na rede virtual.you'll create a function that has access to both the internet and to a VM running WordPress in virtual network.

  • Criar um aplicativo de funções no plano PremiumCreate a function app in the Premium plan
  • Implantar um site WordPress a VM em uma rede virtualDeploy a WordPress site to VM in a virtual network
  • Conectar o aplicativo de função para a rede virtualConnect the function app to the virtual network
  • Criar um proxy de função para acessar os recursos do WordPressCreate a function proxy to access WordPress resources
  • Solicitar um arquivo do WordPress de dentro da rede virtualRequest a WordPress file from inside the virtual network

Observação

Este tutorial cria um aplicativo de funções no plano Premium.This tutorial creates a function app in the Premium plan. Este plano de hospedagem está atualmente em visualização.This hosting plan is currently in preview. Para obter mais informações, consulte plano Premium.For more information, see Premium plan.

TopologiaTopology

O diagrama a seguir mostra a arquitetura da solução que você cria:The following diagram shows the architecture of the solution that you create:

Interface do usuário para integração da rede virtual

Funções em execução no plano Premium têm os mesmos recursos de hospedagem como aplicativos web no serviço de aplicativo do Azure, que inclui o recurso de integração de rede virtual.Functions running in the Premium plan have the same hosting capabilities as web apps in Azure App Service, which includes the VNet Integration feature. Para saber mais sobre a integração de rede virtual, incluindo a solução de problemas e configuração avançada, consulte integrar seu aplicativo com uma rede virtual do Azure.To learn more about VNet Integration, including troubleshooting and advanced configuration, see Integrate your app with an Azure virtual network.

Pré-requisitosPrerequisites

Para este tutorial, é importante que você compreenda o endereçamento IP e sub-redes.For this tutorial, it's important that you understand IP addressing and subnetting. Você pode iniciar com deste artigo que aborda os conceitos básicos de endereçamento e subrede.You can start with this article that covers the basics of addressing and subnetting. Muitos que mais artigos e vídeos estão disponíveis online.Many more articles and videos are available online.

Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.If you don’t have an Azure subscription, create a free account before you begin.

Criar um aplicativo de funções em um plano PremiumCreate a function app in a Premium plan

Primeiro, crie um aplicativo de funções na plano Premium.First, you create a function app in the Premium plan. Esse plano fornece escala sem servidor e dar suporte a integração da rede virtual.This plan provides serverless scale while supporting virtual network integration.

  1. Vá para o Portal do Azure.Go to the Azure portal.

  2. Selecione + criar um recurso no lado esquerdo e, em seguida, escolha aplicativo de funções.Select + Create a resource on the left hand side, then choose Function app.

  3. Para o plano de hospedagem, escolha plano do serviço de aplicativoe, em seguida, selecione plano/local do serviço de aplicativo.For Hosting plan, choose App Service plan, then select App Service plan/Location.

    Criar um aplicativo de funções

  4. Selecione criar novo, digite um nome de plano do serviço de aplicativo , escolha um local em uma região perto de você ou perto de outros serviços que suas funções acessam e selecione tipo de preço.Select Create new, type an App Service plan name, choose a Location in a region near you or near other services your functions access, and then select Pricing tier.

    Criar plano de Serviço de Aplicativo

  5. Escolha o plano ep1 (Premium elástico) e, em seguida, selecione aplicar.Choose the EP1 (elastic Premium) plan, then select Apply.

    Selecionar plano Premium

  6. Selecione OK para criar o plano e, em seguida, use as configurações do aplicativo de funções restantes, conforme especificado na tabela abaixo da imagem.Select OK to create the plan, then use the remaining function app settings as specified in the table below the image.

    Plano do serviço de aplicativo concluído

    ConfiguraçãoSetting Valor sugeridoSuggested value DescriçãoDescription
    Nome do aplicativoApp name Nome globalmente exclusivoGlobally unique name Nome que identifica seu novo aplicativo de funções.Name that identifies your new function app. Os caracteres válidos são a-z, 0-9 e -.Valid characters are a-z, 0-9, and -.
    AssinaturaSubscription Sua assinaturaYour subscription A assinatura na qual este novo aplicativo de funções será criado.The subscription under which this new function app is created.
    Grupo de RecursosResource Group myResourceGroupmyResourceGroup Nome do novo grupo de recursos no qual criar o seu aplicativo de funções.Name for the new resource group in which to create your function app. Você também pode usar o valor sugerido.You can also use the suggested value.
    OSOS Sistema operacional preferencialPreferred OS O Linux e o Windows têm suporte no plano Premium.Both Linux and Windows are supported on the Premium plan.
    Pilha de tempo de execuçãoRuntime stack Linguagem preferencialPreferred language Escolha um tempo de execução compatível com sua linguagem de programação de funções favorita.Choose a runtime that supports your favorite function programming language. Escolha .NET para funções C# e F#.Choose .NET for C# and F# functions. Somente os idiomas com suporte no sistema operacional escolhido são exibidos.Only languages supported on your chosen OS are displayed.
    ArmazenamentoStorage Nome globalmente exclusivoGlobally unique name Crie uma conta de armazenamento usada pelo seu aplicativo de funções.Create a storage account used by your function app. Os nomes da conta de armazenamento devem ter entre 3 e 24 caracteres e podem conter apenas números e letras minúsculas.Storage account names must be between 3 and 24 characters in length and may contain numbers and lowercase letters only. Você também pode usar uma conta existente, mas ela precisa atender aos requisitos da conta de armazenamento.You can also use an existing account, which must meets the storage account requirements.
    Application InsightsApplication Insights PadrãoDefault Cria um recurso do Application Insights do mesmo nome do aplicativo na região com suporte mais próxima.Creates an Application Insights resource of the same App name in the nearest supported region. Ao expandir essa configuração, você pode alterar o Novo nome do recurso ou escolher um Local diferente em uma geografia do Azure onde deseja armazenar seus dados.By expanding this setting, you can change the New resource name or choose a different Location in an Azure geography where you want to store your data.
  7. Depois que as configurações forem validadas, selecione criar.After your settings are validated, select Create.

  8. Selecione o ícone da Notificação no canto superior direito do portal e veja se a mensagem Implantação concluída com êxito é exibida.Select the Notification icon in the upper-right corner of the portal and watch for the Deployment succeeded message.

    Definir novas configurações do aplicativo de funções

  9. Selecione Ir para recursos para exibir o novo aplicativo de funções.Select Go to resource to view your new function app. Você também pode selecionar Fixar no painel.You can also select Pin to dashboard. A fixação torna mais fácil retornar a esse recurso de aplicativo de função no seu painel.Pinning makes it easier to return to this function app resource from your dashboard.

Você pode fixar o aplicativo de funções ao painel selecionando o ícone de pino no canto superior direito.You can pin the function app to the dashboard by selecting the pin icon in the upper right-hand corner. Fixando torna mais fácil retornar a este aplicativo de função depois de criar sua VM.Pinning makes it easier to return to this function app after you create your VM.

Criar uma máquina virtual dentro de uma rede virtualCreate a VM inside a virtual network

Em seguida, crie uma VM pré-configurada que executa o WordPress em uma rede virtual (WordPress LEMP7 Max Performance por Jetware).Next, create a preconfigured VM that runs WordPress inside a virtual network (WordPress LEMP7 Max Performance by Jetware). Uma VM do WordPress for usada por causa de sua baixo custo e a conveniência.A WordPress VM is used because of its low cost and convenience. Esse mesmo cenário funciona com qualquer recurso em uma rede virtual, como APIs REST, ambientes de serviço de aplicativo e outros serviços do Azure.This same scenario works with any resource in a virtual network, such as REST APIs, App Service Environments, and other Azure services.

  1. No portal, escolha + criar um recurso no painel de navegação à esquerda, no campo de pesquisa, digite WordPress LEMP7 Max Performance, e pressione Enter.In the portal, choose + Create a resource on the left navigation pane, in the search field type WordPress LEMP7 Max Performance, and press Enter.

  2. Escolher Wordpress LEMP Max Performance nos resultados da pesquisa.Choose Wordpress LEMP Max Performance in the search results. Selecione um plano de software da Wordpress LEMP Max Performance para CentOS como o plano de Software e selecione criar.Select a software plan of Wordpress LEMP Max Performance for CentOS as the Software Plan and select Create.

  3. No Noções básicas sobre guia, use as configurações da VM conforme especificado na tabela abaixo da imagem:In the Basics tab, use the VM settings as specified in the table below the image:

    Guia de Noções básicas para criar uma VM

    ConfiguraçãoSetting Valor sugeridoSuggested value DESCRIÇÃODescription
    AssinaturaSubscription Sua assinaturaYour subscription A assinatura em que seus recursos são criados.The subscription under which your resources are created.
    Grupo de recursosResource group myResourceGroupmyResourceGroup Escolha myResourceGroup, ou o grupo de recursos que você criou com o seu aplicativo de funções.Choose myResourceGroup, or the resource group you created with your function app. Usando o mesmo grupo de recursos para o aplicativo de função, a VM do WordPress e o plano de hospedagem torna mais fácil limpar os recursos quando você concluir este tutorial.Using the same resource group for the function app, WordPress VM, and hosting plan makes it easier to clean up resources when you are done with this tutorial.
    Nome da máquina virtualVirtual machine name VNET-WordpressVNET-Wordpress O nome da VM precisa ser exclusivo no grupo de recursosThe VM name needs to be unique in the resource group
    RegiãoRegion Oeste da Europa (Europa)(Europe) West Europe Escolha uma região perto de você ou perto as funções que acessar a VM.Choose a region near you or near the functions that access the VM.
    SizeSize B1sB1s Escolher alterar o tamanho e, em seguida, selecione a imagem B1s standard, que tem 1 vCPU e 1 GB de memória.Choose Change size and then select the B1s standard image, which has 1 vCPU and 1 GB of memory.
    Tipo de autenticaçãoAuthentication type SenhaPassword Para usar a autenticação de senha, você também deve especificar um nome de usuário, um seguro senhae então Confirmar senha.To use password authentication, you must also specify a Username, a secure Password, and then Confirm password. Para este tutorial, você não precisará entrar para a VM, a menos que você precise solucionar.For this tutorial, you won't need to sign in to the VM unless you need to troubleshoot.
  4. Escolha o Networking guia e em redes virtuais de configurar, selecione criar novo.Choose the Networking tab and under Configure virtual networks select Create new.

  5. Na criar rede virtual, use as configurações na tabela abaixo da imagem:In Create virtual network, use the settings in the table below the image:

    Guia de rede de criar a VM

    ConfiguraçãoSetting Valor sugeridoSuggested value DescriçãoDescription
    NomeName myResourceGroup-vnetmyResourceGroup-vnet Você pode usar o nome padrão gerado para sua rede virtual.You can use the default name generated for your virtual network.
    Intervalo de endereçosAddress range 10.10.0.0/1610.10.0.0/16 Use um intervalo de endereço único para a rede virtual.Use a single address range for the virtual network.
    Nome da sub-redeSubnet name Tutorial-NetTutorial-Net Nome da sub-rede.Name of the subnet.
    Intervalo de endereços (sub-rede)Address range (subnet) 10.10.1.0/2410.10.1.0/24 O tamanho da sub-rede define quantas interfaces podem ser adicionados à sub-rede.The subnet size defines how many interfaces can be added to the subnet. Essa sub-rede é usada pelo site de WordPress.This subnet is used by the WordPress site. Um /24 sub-rede fornece 254 endereços de host.A /24 subnet provides 254 host addresses.
  6. Selecione Okey para criar a rede virtual.Select OK to create the virtual network.

  7. Volta a Networking guia, escolha None para IP público.Back in the Networking tab, choose None for Public IP.

  8. Escolha o Management guia, em seguida, na conta de armazenamento de diagnóstico, escolha a conta de armazenamento que você criou com o seu aplicativo de funções.Choose the Management tab, then in Diagnostics storage account, choose the Storage account you created with your function app.

  9. Selecione Examinar + criar.Select Review + create. Após a conclusão da validação, selecione criar.After validation completes, select Create. A VM criar processo leva alguns minutos.The VM create process takes a few minutes. A VM criada só pode acessar a rede virtual.The created VM can only access the virtual network.

  10. Depois que a VM é criada, escolha ir para o recurso para exibir a página para sua nova VM, em seguida, escolha Networking sob configurações.After the VM is created, choose Go to resource to view the page for your new VM, then choose Networking under Settings.

  11. Verifique se não há nenhuma IP público.Verify that there's no Public IP. Lembre-se a IP privado, que você usa para se conectar à VM de seu aplicativo de funções.Make a note the Private IP, which you use to connect to the VM from your function app.

    Configurações de rede na VM

Agora você tem um site do WordPress implantado inteiramente dentro de sua rede virtual.You now have a WordPress site deployed entirely within your virtual network. Este site não está acessível pela internet pública.This site isn't accessible from the public internet.

Conectar seu aplicativo de função para a rede virtualConnect your function app to the virtual network

Com um site do WordPress em execução em uma VM em uma rede virtual, agora você pode conectar seu aplicativo de funções nessa rede virtual.With a WordPress site running in a VM in a virtual network, you can now connect your function app to that virtual network.

  1. Em seu novo aplicativo de função, selecione recursos da plataforma > rede.In your new function app, select Platform features > Networking.

    Escolha a rede no aplicativo de funções

  2. Sob integração de VNet, selecione clique aqui para configurar.Under VNet Integration, select Click here to configure.

    Status de configuração de um recurso de rede

  3. Na página de integração de rede virtual, selecione Adicionar rede virtual (versão prévia) .On the virtual network integration page, select Add VNet (preview).

    Adicionar a visualização de integração de rede virtual

  4. Na Status do recurso de rede, use as configurações na tabela abaixo da imagem:In Network Feature Status, use the settings in the table below the image:

    Definir a rede virtual do aplicativo de função

    ConfiguraçãoSetting Valor sugeridoSuggested value DESCRIÇÃODescription
    Rede VirtualVirtual Network MyResourceGroup-vnetMyResourceGroup-vnet Essa rede virtual é aquele que você criou anteriormente.This virtual network is the one you created earlier.
    Sub-redeSubnet Criar uma nova sub-redeCreate New Subnet Crie uma sub-rede na rede virtual para seu aplicativo de funções usar.Create a subnet in the virtual network for your function app to use. Integração de rede virtual deve ser configurada para usar uma sub-rede vazia.VNet Integration must be configured to use an empty subnet. Não importa que suas funções usam uma sub-rede diferente de sua VM.It doesn't matter that your functions use a different subnet than your VM. A rede virtual roteia automaticamente o tráfego entre as duas sub-redes.The virtual network automatically routes traffic between the two subnets.
    Nome da sub-redeSubnet name Função-NetFunction-Net Nome da nova sub-rede.Name of the new subnet.
    Bloco de endereço de rede virtualVirtual network address block 10.10.0.0/1610.10.0.0/16 Escolha o mesmo bloco de endereço usado pelo site de WordPress.Choose the same address block used by the WordPress site. Você deve ter apenas um bloco de endereço definido.You should only have one address block defined.
    Intervalo de endereçosAddress range 10.10.2.0/2410.10.2.0/24 O tamanho da sub-rede restringe o número total de instâncias que seu aplicativo de funções de plano Premium pode escalar horizontalmente para.The subnet size restricts the total number of instances that your Premium plan function app can scale out to. Este exemplo usa um /24 sub-rede com 254 endereços disponíveis no host.This example uses a /24 subnet with 254 available host addresses. Essa sub-rede é provisionados em excesso, mas é fácil calcular.This subnet is over-provisioned, but easy to calculate.
  5. Selecione Okey para adicionar a sub-rede.Select OK to add the subnet. Feche as páginas de integração de rede virtual e o Status do recurso de rede para retornar à página de seu aplicativo de função.Close the VNet Integration and Network Feature Status pages to return to your function app page.

O aplicativo de função agora pode acessar a rede virtual onde o site do WordPress está sendo executado.The function app can now access the virtual network where the WordPress site is running. Em seguida, use Proxies do Azure Functions para retornar um arquivo do site do WordPress.Next, you use Azure Functions Proxies to return a file from the WordPress site.

Criar um proxy para acessar os recursos VMCreate a proxy to access VM resources

Com a integração de rede virtual habilitado, você pode criar um proxy em seu aplicativo de função para encaminhar solicitações para a VM em execução na rede virtual.With VNet Integration enabled, you can create a proxy in your function app to forward requests to the VM running in the virtual network.

  1. Em seu aplicativo de função, selecione Proxies > + , em seguida, use as configurações de proxy na tabela abaixo da imagem:In your function app, select Proxies > +, then use the proxy settings in the table below the image:

    Definir as configurações de proxy

    ConfiguraçãoSetting Valor sugeridoSuggested value DescriçãoDescription
    NomeName PlantaPlant O nome pode ser qualquer valor.The name can be any value. Ele é usado para identificar o proxy.It's used to identify the proxy.
    Modelo de rotaRoute Template /plant/plant Rota que é mapeado para um recurso VM.Route that maps to a VM resource.
    URL de back-endBackend URL http://<YOUR_VM_IP>/wp-content/themes/twentyseventeen/assets/images/header.jpghttp://<YOUR_VM_IP>/wp-content/themes/twentyseventeen/assets/images/header.jpg Substitua <YOUR_VM_IP> com o endereço IP da sua VM do WordPress que você criou anteriormente.Replace <YOUR_VM_IP> with the IP address of your WordPress VM that you created earlier. Esse mapeamento retorna um único arquivo do site.This mapping returns a single file from the site.
  2. Selecione criar para adicionar o proxy ao seu aplicativo de funções.Select Create to add the proxy to your function app.

ExperimentarTry it out

  1. Em seu navegador, tente acessar a URL usada como o URL de back-end.In your browser, try to access the URL you used as the Backend URL. Conforme o esperado, a solicitação expira. Um tempo limite ocorre porque o site do WordPress é conectado somente à sua rede virtual e não pela internet.As expected, the request times out. A timeout occurs because your WordPress site is connected only to your virtual network and not the internet.

  2. Cópia de URL do Proxy seu novo proxy de valor e cole-o na barra de endereços do navegador.Copy the Proxy URL value from your new proxy and paste it into the address bar of your browser. A imagem retornada é do site de WordPress em execução dentro de sua rede virtual.The returned image is from the WordPress site running inside your virtual network.

    Arquivo de imagem de fábrica retornado do site do WordPress

Seu aplicativo de funções está conectado à internet e sua rede virtual.Your function app is connected to both the internet and your virtual network. O proxy está recebendo uma solicitação pela internet pública e, em seguida, que atua como um proxy HTTP simples para encaminhar a solicitação para rede virtual conectada.The proxy is receiving a request over the public internet, and then acting as a simple HTTP proxy to forward that request to the connected virtual network. O proxy, em seguida, retransmite a resposta de volta para você publicamente na Internet.The proxy then relays the response back to you publicly over the internet.

Limpar recursosClean up resources

Nas etapas anteriores, você criou os recursos do Azure em um grupo de recursos.In the preceding steps, you created Azure resources in a resource group. Se você não espera precisar desses recursos no futuro, poderá excluí-los ao excluir o grupo de recursos.If you don't expect to need these resources in the future, you can delete them by deleting the resource group.

No menu à esquerda no portal do Azure, selecione Grupos de recursos e, em seguida, selecione myResourceGroup.From the left menu in the Azure portal, select Resource groups and then select myResourceGroup.

Na página do grupo de recursos, certifique-se de que os recursos listados são aqueles que deseja excluir.On the resource group page, make sure that the listed resources are the ones you want to delete.

Selecione Excluir, digite myResourceGroup na caixa de texto e selecione Excluir.Select Delete, type myResourceGroup in the text box, and then select Delete.

Próximas etapasNext steps

Neste tutorial, o site do WordPress serve como uma API que é chamada usando um proxy no aplicativo de funções.In this tutorial, the WordPress site serves as an API that is called by using a proxy in the function app. Esse cenário faz um bom tutorial porque é fácil de configurar e visualizar.This scenario makes a good tutorial because it's easy to set up and visualize. Você pode usar qualquer outra API implantada em uma rede virtual.You could use any other API deployed within a virtual network. Você também poderia ter criado uma função com o código que chama as APIs implantadas dentro da rede virtual.You could also have created a function with code that calls APIs deployed within the virtual network. Um cenário mais realista é uma função que usa APIs de cliente de dados para chamar uma instância do SQL Server implantada na rede virtual.A more realistic scenario is a function that uses data client APIs to call a SQL Server instance deployed in the virtual network.

Funções em execução em um plano Premium compartilham a mesma infraestrutura subjacente do serviço de aplicativo como aplicativos web em planos de PremiumV2.Functions running in a Premium plan share the same underlying App Service infrastructure as web apps on PremiumV2 plans. Toda a documentação para aplicativos web no serviço de aplicativo do Azure aplica-se a suas funções de plano Premium.All the documentation for web apps in Azure App Service applies to your Premium plan functions.