Självstudie: Kontrollera Azure Functions utgående IP-adress med en NAT-gateway för virtuella Azure-nätverk

NAT (Virtual Network Address Translation) förenklar utgående internetanslutning för virtuella nätverk. När den konfigureras i ett undernät använder alla utgående anslutningar dina angivna statiska offentliga IP-adresser. En NAT kan vara användbar för appar som behöver använda en tjänst från tredje part som använder en lista över tillåtna IP-adresser som en säkerhetsåtgärd. Mer information finns i Vad är Azure NAT Gateway?.

Den här självstudien visar hur du använder NAT-gatewayer för att dirigera utgående trafik från en HTTP-utlöst funktion. Med den här funktionen kan du kontrollera sin egen utgående IP-adress. Under den här självstudien kommer du att:

  • Skapa ett virtuellt nätverk
  • Skapa en funktionsapp för Premium-plan
  • Skapa en offentlig IP-adress
  • Skapa en NAT-gateway
  • Konfigurera funktionsappen för att dirigera utgående trafik via NAT-gatewayen

Topologi

Följande diagram visar arkitekturen för den lösning som du skapar:

Användargränssnitt för NAT-gatewayintegrering

Funktioner som körs i Premium-planen har samma värdfunktioner som webbappar i Azure App Service, vilket inkluderar VNet-integreringsfunktionen. Mer information om VNet-integrering, inklusive felsökning och avancerad konfiguration finns i Integrera din app med ett virtuellt Azure-nätverk.

Förutsättningar

I den här självstudien är det viktigt att du förstår IP-adressering och undernät. Du kan börja med den här artikeln som beskriver grunderna för adressering och undernät. Många fler artiklar och videor är tillgängliga online.

Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.

Om du redan har slutfört självstudien integrera Functions med ett virtuellt Azure-nätverk kan du gå vidare till Skapa en HTTP-utlösarfunktion.

Skapa ett virtuellt nätverk

  1. I menyn i Azure-portalen väljer du Skapa en resurs. Från Azure Marketplace väljer du Nätverk Virtuellt>nätverk.

  2. I Skapa virtuellt nätverk anger eller väljer du de inställningar som anges enligt följande tabell:

    Inställning Värde
    Prenumeration Välj din prenumeration.
    Resursgrupp Välj Skapa ny, ange myResourceGroup och välj sedan OK.
    Name Ange myResourceGroup-vnet.
    Location Välj USA, östra.
  3. Välj Nästa: IP-adresser och för IPv4-adressutrymme anger du 10.10.0.0/16.

  4. Välj Lägg till undernät och ange sedan Tutorial-Net som Undernätsnamn och 10.10.1.0/24 som undernätsadressintervall.

    Fliken IP-adresser för att skapa ett virtuellt nätverk

  5. Välj Lägg till och sedan Granska + skapa. Lämna resten som standard och välj Skapa.

  6. I Skapa virtuellt nätverk väljer du Skapa.

Därefter skapar du en funktionsapp i Premium-planen. Den här planen ger serverlös skalning med stöd för integrering av virtuella nätverk.

Skapa en funktionsapp i en Premium-plan

Den här självstudien visar hur du skapar din funktionsapp i en Premium-plan. Samma funktioner är också tillgängliga när du använder en dedikerad (App Service) plan.

Anteckning

För bästa möjliga upplevelse i den här självstudien väljer du .NET för körningsstack och Windows för operativsystem. Skapa även din funktionsapp i samma region som ditt virtuella nätverk.

  1. I menyn i Azure-portalen eller på sidan Start väljer du Skapa en resurs.

  2. På sidan Nytt väljer du Beräkningsfunktionsapp>.

  3. På sidan Grundläggande använder du inställningarna för funktionsappen som anges i följande tabell:

    Inställning Föreslaget värde Beskrivning
    Prenumeration Din prenumeration Prenumerationen som den nya funktionsappen skapas under.
    Resursgrupp myResourceGroup Namnet på den nya resursgrupp där du vill skapa funktionsappen.
    Funktionsappens namn Globalt unikt namn Namn som identifierar din nya funktionsapp. Giltiga tecken är a-z (skiftlägesokänsligt), 0-9 och -.
    Publicera Kod Alternativ för att publicera kodfiler eller en Docker-container.
    Körningsstack Önskat språk Välj en körning som stöder det funktionsprogrammeringsspråk som du föredrar. Redigering i portalen stöds för närvarande inte för Python-utveckling.
    Region Önskad region Välj en region nära dig eller nära andra tjänster som dina funktioner har åtkomst till.
  4. Välj Nästa: Värd. På sidan Värd anger du följande inställningar:

    Inställning Föreslaget värde Beskrivning
    Lagringskonto Globalt unikt namn Skapa ett lagringskonto som används av din funktionsapp. Namnet på ett lagringskonto måste vara mellan 3 och 24 tecken långt och får endast innehålla siffror och gemener. Du kan också använda ett befintligt konto som måste uppfylla kraven för lagringskontot.
    Operativsystem Önskat operativsystem Ett operativsystem är förvalt baserat på valet av körningsstack, men du kan ändra inställningen om det behövs. Python stöds bara i Linux. Redigering i portalen stöds bara i Windows.
    Planera Premium Värdplan som definierar hur resurser allokeras till din funktionsapp. Välj Premium. Som standard skapas en ny App Service plan. Standard-SKU och storlek är EP1, där EP står för elastisk premium. Mer information finns i listan över Premium-SKU:er.
    När du kör JavaScript-funktioner i en Premium-plan bör du välja en instans som har färre vCPU:er. Mer information finns i Välj premiumplaner med en kärna.
  5. Välj Nästa: Övervakning. På sidan Övervakning anger du följande inställningar:

    Inställning Föreslaget värde Beskrivning
    Application Insights Standardvärde Skapar en Application Insights-resurs med samma appnamn i närmaste region som stöds. Genom att expandera den här inställningen kan du ändra nytt resursnamn eller välja en annan plats i ett Azure-geografiskt område för att lagra dina data.
  6. Välj Granska + skapa för att granska valet av appkonfiguration.

  7. På sidan Granska + skapa granskar du inställningarna och väljer sedan Skapa för att etablera och distribuera funktionsappen.

  8. Välj ikonen Meddelanden i det övre högra hörnet i portalen och watch för meddelandet Distributionen lyckades.

  9. Välj Gå till resurs att visa den nya funktionsappen. Du kan också välja Fäst på instrumentpanelen. Genom att fästa blir det enklare att återgå till den här funktionsappresursen från instrumentpanelen.

    Distributionsmeddelande

Ansluta funktionsappen till det virtuella nätverket

Nu kan du ansluta funktionsappen till det virtuella nätverket.

  1. I funktionsappen väljer du Nätverk på den vänstra menyn och under VNet-integrering väljer du Klicka här för att konfigurera.

    Välj nätverk i funktionsappen

  2. På sidan VNET-integrering väljer du Lägg till VNet.

  3. I Status för nätverksfunktioner använder du inställningarna i tabellen nedanför bilden:

    Definiera funktionsappens virtuella nätverk

    Inställning Föreslaget värde Beskrivning
    Virtual Network MyResourceGroup-vnet Det här virtuella nätverket är det du skapade tidigare.
    Undernät Skapa nytt undernät Skapa ett undernät i det virtuella nätverket som funktionsappen ska använda. VNet-integrering måste konfigureras för att använda ett tomt undernät.
    Namn på undernät Function-Net Namnet på det nya undernätet.
    Adressblock för virtuellt nätverk 10.10.0.0/16 Du bör bara ha ett definierat adressblock.
    Adressblock för undernät 10.10.2.0/24 Storleken på undernätet begränsar det totala antalet instanser som funktionsappen för Premium-planen kan skala ut till. I det här exemplet används ett /24 undernät med 254 tillgängliga värdadresser. Det här undernätet är överetablerad, men enkelt att beräkna.
  4. Välj OK för att lägga till undernätet. Stäng sidorna för VNet-integrering och nätverksfunktionsstatus för att återgå till funktionsappsidan.

Funktionsappen kan nu komma åt det virtuella nätverket. När anslutningen är aktiverad är platsinställningen vnetrouteallenabled inställd på 1. Du måste ha antingen den här webbplatsinställningen eller den äldre WEBSITE_VNET_ROUTE_ALL programinställningen inställd på 1.

Därefter lägger du till en HTTP-utlöst funktion i funktionsappen.

Skapa en HTTP-utlösarfunktion

  1. På den vänstra menyn i funktionsfönstret väljer du Funktioner och sedan Lägg till på den översta menyn.

  2. I fönstret Ny funktion väljer du Http-utlösare och accepterar standardnamnet för Ny funktion eller anger ett nytt namn.

  3. I Kod + test ersätter du den mallgenererade C#-skriptkoden (.csx) med följande kod:

    #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);
    }
    

    Den här koden anropar en extern webbplats som returnerar anroparens IP-adress, vilket i det här fallet är den här funktionen. Med den här metoden kan du enkelt fastställa den utgående IP-adress som används av funktionsappen.

Nu är du redo att köra funktionen och kontrollera de aktuella utgående IP-adresserna.

Verifiera aktuella utgående IP-adresser

Nu kan du köra funktionen. Men först checkar du in portalen och ser vilka utgående IP-adresser som används av funktionsappen.

  1. I funktionsappen väljer du Egenskaper och granskar fältet Utgående IP-adresser .

    Visa utgående IP-adresser för funktionsapp

  2. Gå nu tillbaka till http-utlösarfunktionen, välj Kod + test och sedan Testa/kör.

    Testfunktion

  3. Välj Kör för att köra funktionen och växla sedan till Utdata.

    Testfunktionsutdata

  4. Kontrollera att IP-adressen i HTTP-svarstexten är ett av värdena från de utgående IP-adresserna som du visade tidigare.

Nu kan du skapa en offentlig IP-adress och använda en NAT-gateway för att ändra den här utgående IP-adressen.

Skapa offentlig IP-adress

  1. I resursgruppen väljer du Lägg till, söker i Azure Marketplace efter offentlig IP-adress och väljer Skapa. Använd inställningarna i tabellen nedanför bilden:

    Skapa offentlig IP-adress

    Inställning Föreslaget värde
    IP-version IPv4
    SKU Standard
    Nivå Regional
    Namn Utgående IP
    Prenumeration se till att din prenumeration visas
    Resursgrupp myResourceGroup (eller namnet du tilldelade till resursgruppen)
    Plats USA, östra (eller plats som du har tilldelat till dina andra resurser)
    Tillgänglighetszon Ingen zon
  2. Välj Skapa för att skicka distributionen.

  3. När distributionen är klar navigerar du till den nyligen skapade offentliga IP-adressresursen och visar IP-adressen i översikten.

    Visa offentlig IP-adress

Skapa NAT-gateway

Nu ska vi skapa NAT-gatewayen. När du börjar med den tidigare självstudienFunction-Net om virtuella nätverk var det föreslagna undernätets namn och MyResourceGroup-vnet var det föreslagna namnet på det virtuella nätverket i den självstudien.

  1. I resursgruppen väljer du Lägg till, söker i Azure Marketplace efter NAT-gateway och väljer Skapa. Använd inställningarna i tabellen under bilden för att fylla i fliken Grundläggande :

    Skapa NAT-gateway

    Inställning Föreslaget värde
    Prenumeration Din prenumeration
    Resursgrupp myResourceGroup (eller namnet du tilldelade till resursgruppen)
    NAT-gatewaynamn myNatGateway
    Region USA, östra (eller plats som du har tilldelat till dina andra resurser)
    Tillgänglighetszon Ingen
  2. Välj Nästa: Utgående IP-adress. I fältet Offentliga IP-adresser väljer du den tidigare skapade offentliga IP-adressen. Låt offentliga IP-prefix vara avmarkerade.

  3. Välj Nästa: Undernät. Välj resursen myResourceGroup-vnet i fältet Virtuellt nätverk och Undernätet Function-Net .

    Välj undernät

  4. Välj Granska + skapa och sedan Skapa för att skicka distributionen.

När distributionen är klar är NAT-gatewayen redo att dirigera trafik från funktionsappens undernät till Internet.

Verifiera nya utgående IP-adresser

Upprepa stegen tidigare för att köra funktionen igen. Nu bör du se den utgående IP-adress som du konfigurerade i NAT som visas i funktionsutdata.

Rensa resurser

Du har skapat resurser för att slutföra den här självstudien. Du debiteras för dessa resurser, beroende på kontostatus och tjänstpriser. För att undvika extra kostnader tar du bort resurserna när du vet att de behövs längre.

  1. Gå till sidan Resursgrupp i Azure Portal.

    Om du vill komma till sidan från funktionsappsidan väljer du fliken Översikt och väljer sedan länken under Resursgrupp.

    Skärmbild som visar hur du väljer den resursgrupp som ska tas bort från funktionsappsidan.

    Gå till sidan från instrumentpanelen genom att välja Resursgrupper och sedan välja den resursgrupp som du använde för den här artikeln.

  2. På sidan Resursgrupp granskar du listan över resurser som ingår och kontrollerar att det är de som du vill ta bort.

  3. Välj Ta bort resursgrupp och följ anvisningarna.

    Borttagningen kan ta några minuter. När du är färdig visas ett meddelande i några sekunder. Du kan även välja klockikonen längst upp på sidan för att se meddelandet.

Nästa steg