Zelfstudie: Azure Functions uitgaand IP-adres beheren met een NAT-gateway van een virtueel Azure-netwerk
Virtual Network Address Translation (NAT) vereenvoudigt uitgaande internetverbinding voor virtuele netwerken. Indien geconfigureerd op een subnet, maken alle uitgaande verbindingen gebruik van uw opgegeven statische openbare IP-adressen. Een NAT kan handig zijn voor apps die een service van derden moeten gebruiken die een acceptatielijst met IP-adressen als beveiligingsmaatregel gebruikt. Zie Wat is Azure NAT Gateway? voor meer informatie.
In deze zelfstudie ziet u hoe u NAT-gateways gebruikt om uitgaand verkeer te routeren vanaf een door HTTP geactiveerde functie. Met deze functie kunt u het eigen uitgaande IP-adres controleren. Tijdens deze zelfstudie gaat u het volgende doen:
- Een virtueel netwerk maken
- Een functie-app voor een Premium-abonnement maken
- Een openbaar IP-adres maken
- Een NAT-gateway maken
- Functie-app configureren om uitgaand verkeer via de NAT-gateway te routeren
Topologie
In het volgende diagram ziet u de architectuur van de oplossing die u maakt:
Functies die worden uitgevoerd in het Premium-abonnement hebben dezelfde hostingmogelijkheden als web-apps in Azure App Service, waaronder de functie VNet-integratie. Zie Uw app integreren met een virtueel Azure-netwerk voor meer informatie over VNet-integratie, inclusief probleemoplossing en geavanceerde configuratie.
Vereisten
Voor deze zelfstudie is het belangrijk dat u inzicht hebt in IP-adressering en subnetten. U kunt beginnen met dit artikel waarin de basisprincipes van adressering en subnetten worden beschreven. Er zijn veel meer artikelen en video's online beschikbaar.
Als u nog geen abonnement op Azure hebt, maakt u een gratis account aan voordat u begint.
Als u de zelfstudie Functies integreren met een virtueel Azure-netwerk al hebt voltooid, kunt u doorgaan naar Een HTTP-triggerfunctie maken.
Een virtueel netwerk maken
Selecteer Een resource maken in het menu van de Azure-portal. Selecteer Netwerk>Virtueel netwerk in Azure Marketplace.
In Virtueel netwerk maken voert u de opgegeven instellingen in of selecteert u deze zoals weergegeven in de volgende tabel:
Instelling Waarde Abonnement Selecteer uw abonnement. Resourcegroep Selecteer Nieuwe maken, voer myResourceGroup in en selecteer vervolgens OK. Naam Voer myResourceGroup-vnet in. Locatie Selecteer VS - oost. Selecteer Volgende: IP-adressen en voer voor IPv4-adresruimte10.10.0.0/16 in.
Selecteer Subnet toevoegen en voer vervolgens Tutorial-Net in als Subnetnaam en 10.10.1.0/24 voor Subnetadresbereik.
Selecteer Toevoegen en selecteer vervolgens Controleren en maken. Laat voor de rest de standaardwaarden staan en selecteer Maken.
Selecteer in Virtueel netwerk maken de optie Maken.
Vervolgens maakt u een functie-app in het Premium-abonnement. Dit plan biedt serverloze schaalaanpassing en biedt ondersteuning voor integratie van virtuele netwerken.
Een functie-app maken in een Premium-abonnement
In deze zelfstudie ziet u hoe u uw functie-app maakt in een Premium-abonnement. Dezelfde functionaliteit is ook beschikbaar wanneer u een Dedicated-abonnement (App Service) gebruikt.
Notitie
Voor de beste ervaring in deze zelfstudie kiest u .NET voor runtimestack en kiest u Windows als besturingssysteem. Maak ook uw functie-app in dezelfde regio als uw virtuele netwerk.
Selecteer vanuit het menu van Azure Portal of op de startpagina de optie Een resource maken.
Selecteer op de pagina NieuwReken>functie-app.
Op de pagina Basics gebruikt u de instellingen voor de functie-app zoals in de volgende tabel wordt vermeld:
Instelling Voorgestelde waarde Beschrijving Abonnement Uw abonnement Het abonnement waarmee deze nieuwe functie-app is gemaakt. Resourcegroep myResourceGroup Naam voor de nieuwe resourcegroep waarin uw functie-app moet worden gemaakt. Naam van de functie-app Wereldwijd unieke naam Naam waarmee uw nieuwe functie-app wordt aangeduid. Geldige tekens zijn a-z
(hoofdlettergevoelig),0-9
en-
.Publiceren Code Optie voor het publiceren van codebestanden of een Docker-container. Runtimestack Voorkeurstaal Kies een runtime die uw favoriete functieprogrammeertaal ondersteunt. Bewerken in de portal wordt momenteel niet ondersteund voor Python-ontwikkeling. Regio Voorkeursregio Kies een regio in de buurt of in de buurt van andere services die door uw functie worden gebruikt. Selecteer Volgende: Hosting. Voer op de pagina Hosting de volgende instellingen in:
Instelling Voorgestelde waarde Beschrijving Opslagaccount Wereldwijd unieke naam Maak een opslagaccount die wordt gebruikt door uw functie-app. Namen van opslagaccounts moeten tussen 3 en 24 tekens lang zijn en mogen alleen cijfers en kleine letters bevatten. U kunt ook een bestaand account gebruiken dat voldoet aan de vereisten voor een opslagaccount. Besturingssysteem Voorkeurbesturingssysteem Er wordt vooraf een besturingssysteem geselecteerd voor u op basis van de selectie van de runtimestack, maar u kunt de instelling wijzigen, indien nodig. Python wordt alleen ondersteund in Linux. Bewerken in de portal wordt momenteel alleen ondersteund in Windows. Plannen Premium Hostingabonnement dat definieert hoe resources worden toegewezen aan uw functie-app. Selecteer Premium. Er wordt standaard een nieuw App Service-plan gemaakt. De standaard SKU en grootte is EP1, waarbij EP staat voor Elastisch Premium. Zie voor meer informatie de lijst met Premium-SKU's.
Wanneer u JavaScript-functies uitvoert in een Premium-abonnement, kunt u het beste een instantie kiezen met minder vCPU's. Zie voor meer informatie het artikel over Premium-abonnementen met één core kiezen.Selecteer Volgende: Bewaking. Voer op de pagina Bewaking de volgende instellingen in:
Instelling Voorgestelde waarde Beschrijving Application Insights Standaard Hiermee maakt u een Application Insights-resource van dezelfde app-naam in de dichtstbijzijnde ondersteunde regio. Door deze instelling uit te breiden, kunt u de Nieuwe resourcenaam wijzigen of een andere Locatie in een Azure-geografie kiezen om uw gegevens op te slaan. Selecteer Beoordelen + maken om de selecties van appconfiguratie te controleren.
Controleer uw instellingen op de pagina Beoordelen en maken en selecteer vervolgens Maken om de functie-app in te richten en te implementeren.
Selecteer het Meldingspictogram in de rechterbovenhoek van de portal en zoek het bericht Implementatie voltooid.
Selecteer Naar de resource gaan om uw nieuwe functie-app te bekijken. U kunt ook Vastmaken aan dashboard selecteren. Vastmaken maakt het gemakkelijker om terug te gaan naar deze functie-app-resource vanuit uw dashboard.
Uw functie-app verbinden met het virtuele netwerk
U kunt nu uw functie-app verbinden met het virtuele netwerk.
Selecteer in uw functie-app netwerken in het linkermenu en selecteer vervolgens onder VNet-integratiede optie Klik hier om te configureren.
Selecteer VNet toevoegen op de pagina VNET-integratie.
Gebruik in Status van netwerkfunctie de instellingen in de tabel onder de afbeelding:
Instelling Voorgestelde waarde Beschrijving Virtual Network MyResourceGroup-vnet Dit virtuele netwerk is het netwerk dat u eerder hebt gemaakt. Subnet Nieuw subnet maken Maak een subnet in het virtuele netwerk dat uw functie-app kan gebruiken. VNet-integratie moet worden geconfigureerd voor het gebruik van een leeg subnet. Subnetnaam Function-Net Naam van het nieuwe subnet. Adresblok van virtueel netwerk 10.10.0.0/16 U moet slechts één adresblok hebben gedefinieerd. Subnetadresblok 10.10.2.0/24 De subnetgrootte beperkt het totale aantal exemplaren waarnaar de functie-app van uw Premium-abonnement kan worden geschaald. In dit voorbeeld wordt een /24
subnet met 254 beschikbare hostadressen gebruikt. Dit subnet is te veel ingericht, maar eenvoudig te berekenen.Selecteer OK om het subnet toe te voegen. Sluit de pagina's VNet-integratie en Status van netwerkfunctie om terug te keren naar de pagina van uw functie-app.
De functie-app heeft nu toegang tot het virtuele netwerk. Wanneer connectiviteit is ingeschakeld, wordt de vnetrouteallenabled
site-instelling ingesteld op 1
. U moet deze site-instelling of de verouderde WEBSITE_VNET_ROUTE_ALL
toepassingsinstelling hebben ingesteld op 1
.
Vervolgens voegt u een door HTTP geactiveerde functie toe aan de functie-app.
Een HTTP-triggerfunctie maken
Selecteer in het menu links van het venster Functies de optie Functies en selecteer vervolgens Toevoegen in het bovenste menu.
Selecteer in het venster Nieuwe functiede optie Http-trigger en accepteer de standaardnaam voor Nieuwe functie of voer een nieuwe naam in.
Vervang in Code + Test de door de sjabloon gegenereerde C#-scriptcode (.csx) door de volgende code:
#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); }
Met deze code wordt een externe website aangeroepen die het IP-adres van de aanroeper retourneert, in dit geval deze functie. Met deze methode kunt u eenvoudig het uitgaande IP-adres bepalen dat door uw functie-app wordt gebruikt.
U bent nu klaar om de functie uit te voeren en de huidige uitgaande IP-adressen te controleren.
Huidige uitgaande IP-adressen controleren
Nu kunt u de functie uitvoeren. Maar controleer eerst in de portal om te zien welke uitgaande IP-adressen worden gebruikt door de functie-app.
Selecteer eigenschappen in uw functie-app en controleer het veld Uitgaande IP-adressen .
Ga nu terug naar uw HTTP-triggerfunctie, selecteer Code + Test en vervolgens Testen/uitvoeren.
Selecteer Uitvoeren om de functie uit te voeren en schakel vervolgens over naar uitvoer.
Controleer of het IP-adres in de HTTP-antwoordtekst een van de waarden is van de uitgaande IP-adressen die u eerder hebt bekeken.
U kunt nu een openbaar IP-adres maken en een NAT-gateway gebruiken om dit uitgaande IP-adres te wijzigen.
Openbaar IP-adres maken
Selecteer in de resourcegroep Toevoegen, zoek in de Azure Marketplace naar Openbaar IP-adres en selecteer Maken. Gebruik de instellingen van de tabel onder de afbeelding:
Instelling Voorgestelde waarde IP-versie IPv4 SKU Standard Laag Regionaal Naam Uitgaand IP-adres Abonnement ervoor zorgen dat uw abonnement wordt weergegeven Resourcegroep myResourceGroup (of naam die u hebt toegewezen aan uw resourcegroep) Locatie VS - oost (of locatie die u hebt toegewezen aan uw andere resources) Beschikbaarheidszone Geen zone Selecteer Maken om de implementatie te verzenden.
Zodra de implementatie is voltooid, gaat u naar uw zojuist gemaakte openbare IP-adresresource en bekijkt u het IP-adres in het overzicht.
NAT-gateway maken
Nu gaan we de NAT-gateway maken. Toen u met de vorige zelfstudie over virtuele netwerken begon, Function-Net
was de voorgestelde subnetnaam en MyResourceGroup-vnet
de voorgestelde naam van het virtuele netwerk in die zelfstudie.
Selecteer in uw resourcegroep Toevoegen, zoek in de Azure Marketplace naar NAT-gateway en selecteer Maken. Gebruik de instellingen in de tabel onder de afbeelding om het tabblad Basisbeginselen te vullen:
Instelling Voorgestelde waarde Abonnement Uw abonnement Resourcegroep myResourceGroup (of naam die u hebt toegewezen aan uw resourcegroep) NAT-gatewaynaam myNatGateway Regio VS - oost (of locatie die u hebt toegewezen aan uw andere resources) Beschikbaarheidszone Geen Selecteer Volgende: Uitgaand IP-adres. Selecteer in het veld Openbare IP-adressen het eerder gemaakte openbare IP-adres. Laat openbare IP-voorvoegsels uitgeschakeld.
Selecteer Volgende: Subnet. Selecteer de resource myResourceGroup-vnet in het veld Virtueel netwerk en het subnet Function-Net .
Selecteer Beoordelen en maken en vervolgens Maken om de implementatie te verzenden.
Zodra de implementatie is voltooid, is de NAT-gateway klaar om verkeer van het subnet van uw functie-app naar internet te routeren.
Nieuwe uitgaande IP-adressen verifiëren
Herhaal de eerdere stappen om de functie opnieuw uit te voeren. U ziet nu het uitgaande IP-adres dat u hebt geconfigureerd in de NAT die wordt weergegeven in de functie-uitvoer.
Resources opschonen
U hebt resources gemaakt om deze zelfstudie te voltooien. U wordt gefactureerd voor deze resources, afhankelijk van de status van uw account en de serviceprijzen. Als u extra kosten wilt voorkomen, verwijdert u de resources wanneer u weet dat u ze langer nodig hebt.
Ga in Azure Portal naar de pagina Resourcegroep.
Als u naar die pagina wilt gaan vanaf de pagina van de functie-app, selecteert u het tabblad Overzicht en selecteert u vervolgens de koppeling onder Resourcegroep.
Als u naar die pagina wilt gaan vanuit het dashboard, selecteert u Resourcegroepen en selecteert u vervolgens de resourcegroep die u voor dit artikel hebt gebruikt.
Bekijk op de pagina Resourcegroep de lijst met opgenomen resources, en controleer of dit de resources zijn die u wilt verwijderen.
Selecteer Resourcegroep verwijderen en volg de instructies.
Het verwijderen kan enkele minuten duren. Wanneer dit is voltooid, verschijnt een aantal seconden een melding in beeld. U kunt ook het belpictogram boven aan de pagina selecteren om de melding te bekijken.