Självstudie: Integrera Azure Functions med ett virtuellt Azure-nätverk med hjälp av privata slutpunkter

Den här självstudien visar hur du använder Azure Functions för att ansluta till resurser i ett virtuellt Azure-nätverk med hjälp av privata slutpunkter. Du skapar en ny funktionsapp med ett nytt lagringskonto som är låst bakom ett virtuellt nätverk via Azure Portal. Det virtuella nätverket använder en Service Bus-köutlösare.

I den här självstudien ska du:

  • Skapa en funktionsapp i Elastic Premium-planen med integrering av virtuella nätverk och privata slutpunkter.
  • Skapa Azure-resurser, till exempel Service Bus
  • Lås servicebussen bakom en privat slutpunkt.
  • Distribuera en funktionsapp som använder både Service Bus- och HTTP-utlösare.
  • Testa för att se att funktionsappen är säker i det virtuella nätverket.
  • Rensa resurser.

Skapa en funktionsapp i en Premium-plan

Du skapar en C#-funktionsapp i en Elastic Premium-plan som har stöd för nätverksfunktioner som integrering av virtuella nätverk vid skapande tillsammans med serverlös skalning. I den här självstudien används C# och Windows. Andra språk och Linux stöds också.

  1. På Azure Portal-menyn 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 följande tabell för att konfigurera inställningarna för funktionsappen.

    Inställning Föreslaget värde Beskrivning
    Prenumeration Din prenumeration Prenumeration där den nya funktionsappen skapas.
    Resursgrupp myResourceGroup Namn på den nya resursgrupp där du skapar 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 Välj att publicera kodfiler eller en Docker-container.
    Körningsstack .NET I den här självstudien används .NET.
    Version 6 (LTS) I den här självstudien används .NET 6.0 som körs i samma process som Functions-värden.
    Region Önskad region Välj en region nära dig eller nära andra tjänster som dina funktioner har åtkomst till.
    Operativsystem Windows Den här självstudien använder Windows men fungerar även för Linux.
    Planera Functions Premium Värdplan som definierar hur resurser allokeras till din funktionsapp. När du väljer Premium skapas som standard en ny App Service plan. Standard-SKU och storlek är EP1, där EP står för elastic premium. Mer information finns i listan över Premium-SKU:er.

    När du kör JavaScript-funktioner i en Premium-plan väljer du en instans som har färre vCPU:er. Mer information finns i Choose single-core Premium plans (Välj premiumplaner med en kärna).
  4. Välj Nästa: Lagring. Ange följande inställningar på sidan Lagring .

    Inställning Föreslaget värde Beskrivning
    Lagringskonto Globalt unikt namn Skapa ett lagringskonto som används av din funktionsapp. Lagringskontonamn måste vara mellan 3 och 24 tecken långa. De får endast innehålla siffror och gemener. Du kan också använda ett befintligt konto som inte är begränsat av brandväggsregler och som uppfyller kraven för lagringskontot. När du använder Functions med ett låst lagringskonto krävs ett v2-lagringskonto. Det här är standardlagringsversionen som skapas när du skapar en funktionsapp med nätverksfunktioner via bladet Skapa.
  5. Välj Nästa: Nätverk. Ange följande inställningar på sidan Nätverk .

    Anteckning

    Vissa av de här inställningarna visas inte förrän andra alternativ har valts.

    Inställning Föreslaget värde Beskrivning
    Aktivera offentlig åtkomst Av Om du nekar åtkomst till offentligt nätverk blockeras all inkommande trafik förutom från privata slutpunkter.
    Aktivera nätverksinmatning Möjligheten att konfigurera ditt program med VNet-integrering när det skapas visas i portalfönstret när det här alternativet har växlats till .
    Virtual Network Skapa Ny Välj fältet Skapa ny . På popup-skärmen anger du ett namn för ditt virtuella nätverk och väljer Ok. Alternativ för att begränsa inkommande och utgående åtkomst till din funktionsapp vid skapande visas. Du måste uttryckligen aktivera VNet-integrering i delen Utgående åtkomst i fönstret för att begränsa utgående åtkomst.

    Ange följande inställningar för avsnittet Inkommande åtkomst . Det här steget skapar en privat slutpunkt i funktionsappen.

    Tips

    Om du vill fortsätta interagera med funktionsappen från portalen måste du lägga till den lokala datorn i det virtuella nätverket. Om du inte vill begränsa inkommande åtkomst hoppar du över det här steget.

    Inställning Föreslaget värde Beskrivning
    Aktivera privata slutpunkter Möjligheten att konfigurera ditt program med VNet-integrering när det skapas visas i portalen när det här alternativet har aktiverats.
    Namn på privat slutpunkt myInboundPrivateEndpointName Namn som identifierar den privata slutpunkten för den nya funktionsappen.
    Inkommande undernät Skapa Ny Det här alternativet skapar ett nytt undernät för din inkommande privata slutpunkt. Flera privata slutpunkter kan läggas till i ett enskilt undernät. Ange ett undernätsnamn. Adressblocket för undernätet kan lämnas vid standardvärdet. Välj OK. Mer information om storlek på undernät finns i Undernät.
    DNS Privat DNS-zon i Azure Det här värdet anger vilken DNS-server din privata slutpunkt använder. I de flesta fall om du arbetar i Azure är Azure Privat DNS Zone den DNS-zon som du bör använda som manuell för anpassade DNS-zoner har ökad komplexitet.

    Ange följande inställningar för avsnittet Utgående åtkomst . Det här steget integrerar funktionsappen med ett virtuellt nätverk när den skapas. Den visar också alternativ för att skapa privata slutpunkter på ditt lagringskonto och begränsa ditt lagringskonto från nätverksåtkomst vid skapande. När funktionsappen är vnet-integrerad går all utgående trafik som standard via det virtuella nätverket..

    Inställning Föreslaget värde Beskrivning
    Aktivera VNet-integrering Detta integrerar din funktionsapp med ett virtuellt nätverk när du skapar och dirigerar all utgående trafik via det virtuella nätverket.
    Utgående undernät Skapa ny Detta skapar ett nytt undernät för funktionsappens VNet-integrering. En funktionsapp kan bara vara VNet-integrerat med ett tomt undernät. Ange ett undernätsnamn. Adressblocket för undernätet kan lämnas vid standardvärdet. Om du vill konfigurera det kan du läsa mer om storlek på undernät här. Välj OK. Alternativet för att skapa privata lagringsslutpunkter visas. Om du vill använda funktionsappen med virtuella nätverk måste du ansluta den till ett undernät.

    Ange följande inställningar för avsnittet Privat slutpunkt för Lagring . Det här steget skapar privata slutpunkter för blob-, kö-, fil- och tabellslutpunkterna på ditt lagringskonto när du skapar. Detta integrerar effektivt ditt lagringskonto med det virtuella nätverket.

    Inställning Föreslaget värde Beskrivning
    Lägg till privat slutpunkt för lagring Möjligheten att konfigurera ditt program med VNet-integrering när det skapas visas i portalen när det här alternativet har aktiverats.
    Namn på privat slutpunkt myInboundPrivateEndpointName Namn som identifierar ditt lagringskontos privata slutpunkt.
    Privat slutpunktsundernät Skapa Ny Detta skapar ett nytt undernät för din inkommande privata slutpunkt på lagringskontot. Flera privata slutpunkter kan läggas till i ett enskilt undernät. Ange ett undernätsnamn. Adressblocket för undernätet kan lämnas vid standardvärdet. Om du vill konfigurera det kan du läsa mer om storlek på undernät här. Välj OK.
    DNS Privat DNS-zon i Azure Det här värdet anger vilken DNS-server din privata slutpunkt använder. I de flesta fall om du arbetar i Azure är Azure Privat DNS Zone den DNS-zon som du bör använda som manuell för anpassade DNS-zoner kommer att ha ökad komplexitet.
  6. Välj Nästa: Övervakning. På sidan Övervakning anger du följande inställningar.

    Inställning Föreslaget värde Beskrivning
    Application Insights Standard Skapa en Application Insights-resurs med samma appnamn i närmaste region som stöds. Expandera den här inställningen om du behöver ändra nytt resursnamn eller lagra dina data på en annan plats i ett Azure-geografiskt område.
  7. Välj Granska + skapa för att granska valet av appkonfiguration.

  8. Granska inställningarna på sidan Granska + skapa . Välj sedan Skapa för att skapa och distribuera funktionsappen.

  9. I det övre högra hörnet i portalen väljer du ikonen Meddelanden och watch för meddelandet Distributionen lyckades.

  10. 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.

Grattis! Du har skapat din Premium-funktionsapp.

Anteckning

Vissa distributioner kan ibland misslyckas med att skapa de privata slutpunkterna i lagringskontot med felet "StorageAccountOperationInProgress". Det här felet inträffar även om själva funktionsappen skapas. När du stöter på ett sådant fel tar du bort funktionsappen och försöker utföra åtgärden igen. Du kan i stället skapa de privata slutpunkterna på lagringskontot manuellt.

Skapa en Service Bus

Därefter skapar du en Service Bus-instans som används för att testa funktionerna i funktionsappens nätverksfunktioner i den här självstudien.

  1. På menyn Azure Portal eller på startsidan väljer du Skapa en resurs.

  2. På sidan Nytt söker du efter Service Bus. Välj sedan Skapa.

  3. På fliken Grundläggande använder du följande tabell för att konfigurera Service Bus-inställningarna. Alla andra inställningar kan använda standardvärdena.

    Inställning Föreslaget värde Beskrivning
    Prenumeration Din prenumeration Prenumerationen där dina resurser skapas.
    Resursgrupp myResourceGroup Den resursgrupp som du skapade med funktionsappen.
    Namn på namnområde myServiceBus Namnet på den Service Bus-instans som den privata slutpunkten är aktiverad för.
    Location myFunctionRegion Den region där du skapade funktionsappen.
    Prisnivå Premium Välj den här nivån om du vill använda privata slutpunkter med Azure Service Bus.
  4. Välj Granska + skapa. När valideringen är klar väljer du Skapa.

Lås servicebussen

Skapa den privata slutpunkten för att låsa Service Bus:

  1. I din nya Service Bus går du till menyn till vänster och väljer Nätverk.

  2. På fliken Privata slutpunktsanslutningar väljer du Privat slutpunkt.

    Skärmbild av hur du går till privata slutpunkter för Service Bus.

  3. På fliken Grundläggande använder du inställningarna för privat slutpunkt som visas i följande tabell.

    Inställning Föreslaget värde Beskrivning
    Prenumeration Din prenumeration Prenumerationen där dina resurser skapas.
    Resursgrupp myResourceGroup Resursgruppen som du skapade med funktionsappen.
    Namn sb-slutpunkt Namnet på den privata slutpunkten för Service Bus.
    Region myFunctionRegion Den region där du skapade ditt lagringskonto.
  4. På fliken Resurs använder du inställningarna för privat slutpunkt som visas i följande tabell.

    Inställning Föreslaget värde Beskrivning
    Prenumeration Din prenumeration Prenumerationen under vilken dina resurser skapas.
    Resurstyp Microsoft.ServiceBus/namespaces Resurstypen för Service Bus.
    Resurs myServiceBus Service Bus som du skapade tidigare i självstudien.
    Underresurs för mål namnområde Den privata slutpunkt som används för namnområdet från Service Bus.
  5. Välj standard för inställningen Undernät på fliken Virtual Network.

  6. Välj Granska + skapa. När valideringen är klar väljer du Skapa.

  7. När den privata slutpunkten har skapats går du tillbaka till avsnittet Nätverk i Service Bus-namnområdet och markerar fliken Offentlig åtkomst .

  8. Kontrollera att Valda nätverk har valts.

  9. Välj + Lägg till befintligt virtuellt nätverk för att lägga till det nyligen skapade virtuella nätverket.

  10. På fliken Lägg till nätverk använder du nätverksinställningarna från följande tabell:

    Inställning Föreslaget värde Beskrivning
    Prenumeration Din prenumeration Prenumerationen under vilken dina resurser skapas.
    Virtuella nätverk myVirtualNet Namnet på det virtuella nätverk som funktionsappen ansluter till.
    Undernät Funktioner Namnet på det undernät som funktionsappen ansluter till.
  11. Välj Lägg till klientens IP-adress för att ge din aktuella klient-IP-åtkomst till namnområdet.

    Anteckning

    Att tillåta klientens IP-adress är nödvändigt för att aktivera Azure Portal att publicera meddelanden till kön senare i den här självstudien.

  12. Välj Aktivera för att aktivera tjänstslutpunkten.

  13. Välj Lägg till för att lägga till det valda virtuella nätverket och undernätet i brandväggsreglerna för Service Bus.

  14. Välj Spara för att spara de uppdaterade brandväggsreglerna.

Resurser i det virtuella nätverket kan nu kommunicera med Service Bus med hjälp av den privata slutpunkten.

Skapa en kö

Skapa kön där din Azure Functions Service Bus-utlösare hämtar händelser:

  1. I servicebussen går du till menyn till vänster och väljer Köer.

  2. Välj . I den här självstudien anger du namnkön som namnet på den nya kön.

    Skärmbild av hur du skapar en Service Bus-kö.

  3. Välj Skapa.

Hämta en Anslutningssträng för Service Bus

  1. I Service Bus går du till menyn till vänster och väljer Principer för delad åtkomst.

  2. Välj RootManageSharedAccessKey. Kopiera och spara den primära anslutningssträngen. Du behöver den här anslutningssträngen när du konfigurerar appinställningarna.

    Skärmbild av hur du hämtar en Anslutningssträng för Service Bus.

Konfigurera dina inställningar för funktionsappen

  1. I funktionsappen går du till menyn till vänster och väljer Konfiguration.

  2. Om du vill använda funktionsappen med virtuella nätverk och Service Bus uppdaterar du appinställningarna som visas i följande tabell. Om du vill lägga till eller redigera en inställning väljer du + Ny programinställning eller ikonen Redigera i kolumnen längst till höger i tabellen med appinställningar. När du är klar väljer du Spara.

    Inställning Föreslaget värde Beskrivning
    SERVICEBUS_CONNECTION myServiceBusConnectionString Skapa den här appinställningen för anslutningssträngen för din Service Bus. Den här lagringsanslutningssträngen kommer från avsnittet Hämta en Service Bus-anslutningssträng .
    WEBSITE_CONTENTOVERVNET 1 Skapa den här appinställningen. Värdet 1 gör att funktionsappen kan skalas när ditt lagringskonto är begränsat till ett virtuellt nätverk.
  3. Eftersom du använder en Elastic Premium-värdplan väljer du fliken Funktionskörningsinställningar i konfigurationsvyn. Ange Körningsskalningsövervakning till . Välj sedan Spara. Med körningsdriven skalning kan du ansluta icke-HTTP-utlösarfunktioner till tjänster som körs i ditt virtuella nätverk.

    Skärmbild av hur du aktiverar körningsdriven skalning för Azure Functions.

Anteckning

Körningsskalning behövs inte för funktionsappar som finns i en dedikerad App Service plan.

Distribuera en Service Bus-utlösare och HTTP-utlösare

Anteckning

Om du aktiverar privata slutpunkter i en funktionsapp blir SCM-webbplatsen (Source Control Manager) offentligt otillgänglig. Följande instruktioner ger distributionsriktningar med hjälp av Distributionscenter i funktionsappen. Du kan också använda zip-distribution eller lokalt installerade agenter som distribueras till ett undernät i det virtuella nätverket.

  1. I GitHub går du till följande exempellagringsplats. Den innehåller en funktionsapp och två funktioner, en HTTP-utlösare och en Service Bus-köutlösare.

    https://github.com/Azure-Samples/functions-vnet-tutorial

  2. Längst upp på sidan väljer du Förgrening för att skapa en förgrening av den här lagringsplatsen i ditt eget GitHub-konto eller din organisation.

  3. I funktionsappen går du till menyn till vänster och väljer Distributionscenter. Välj sedan Inställningar.

  4. På fliken Inställningar använder du de distributionsinställningar som visas i följande tabell.

    Inställning Föreslaget värde Beskrivning
    Källa GitHub Du bör ha skapat en GitHub-lagringsplats för exempelkoden i steg 2.
    Organisation myOrganization Organisationen som lagringsplatsen är incheckad i. Det är vanligtvis ditt konto.
    Lagringsplats functions-vnet-tutorial Lagringsplatsen som förgrenas från https://github.com/Azure-Samples/functions-vnet-tutorial.
    Gren main Huvudgrenen för lagringsplatsen som du skapade.
    Körningsstack .NET Exempelkoden finns i C#.
    Version .NET Core 3.1 Körningsversionen.
  5. Välj Spara.

    Skärmbild av hur du distribuerar Azure Functions kod via portalen.

  6. Den första distributionen kan ta några minuter. När appen har distribuerats visas statusmeddelandet Lyckad (Aktiv) på fliken Loggar. Uppdatera sidan om det behövs.

Grattis! Du har distribuerat exempelfunktionsappen.

Testa din låsta funktionsapp

  1. I funktionsappen går du till menyn till vänster och väljer Funktioner.

  2. Välj ServiceBusQueueTrigger.

  3. I menyn till vänster väljer du Övervaka.

Du ser att du inte kan övervaka din app. Webbläsaren har inte åtkomst till det virtuella nätverket, så den kan inte komma åt resurser direkt i det virtuella nätverket.

Här är ett alternativt sätt att övervaka din funktion med hjälp av Application Insights:

  1. I funktionsappen går du till menyn till vänster och väljer Application Insights. Välj sedan Visa Application Insights-data.

    Skärmbild av hur du visar programinsikter för en funktionsapp.

  2. I menyn till vänster väljer du Live-mått.

  3. Öppna en ny flik. I Service Bus går du till menyn till vänster och väljer Köer.

  4. Välj din kö.

  5. I menyn till vänster väljer du Service Bus Explorer. Under Skicka för Innehållstyp väljer du Text/Oformaterad. Ange sedan ett meddelande.

  6. Välj Skicka för att skicka meddelandet.

    Skärmbild av hur du skickar Service Bus-meddelanden med hjälp av portalen.

  7. På fliken Live-mått bör du se att service bus-köutlösaren har utlösts. Om det inte har gjort det skickar du meddelandet igen från Service Bus Explorer.

    Skärmbild av hur du visar meddelanden med hjälp av live-mått för funktionsappar.

Grattis! Du har testat konfigurationen av funktionsappen med privata slutpunkter.

Förstå privata DNS-zoner

Du har använt en privat slutpunkt för att ansluta till Azure-resurser. Du ansluter till en privat IP-adress i stället för den offentliga slutpunkten. Befintliga Azure-tjänster har konfigurerats för att använda en befintlig DNS för att ansluta till den offentliga slutpunkten. Du måste åsidosätta DNS-konfigurationen för att ansluta till den privata slutpunkten.

En privat DNS-zon skapas för varje Azure-resurs som har konfigurerats med en privat slutpunkt. En DNS-post skapas för varje privat IP-adress som är associerad med den privata slutpunkten.

Följande DNS-zoner skapades i den här självstudien:

  • privatelink.file.core.windows.net
  • privatelink.blob.core.windows.net
  • privatelink.servicebus.windows.net
  • privatelink.azurewebsites.net

Rensa resurser

I de föregående stegen skapade du Azure-resurser i en resursgrupp. Om du inte tror att du behöver dessa resurser i framtiden, kan du ta bort dem genom att ta bort resursgruppen.

På menyn Azure Portal eller startsidan väljer du Resursgrupper. På sidan Resursgrupper väljer du sedan myResourceGroup.

På sidan myResourceGroup kontrollerar du att resurserna i listan är de som du vill ta bort.

Välj Ta bort resursgrupp, skriv myResourceGroup i textrutan för att bekräfta och välj sedan Ta bort.

Nästa steg

I den här självstudien har du skapat en Premium-funktionsapp, ett lagringskonto och en Service Bus. Du har skyddat alla dessa resurser bakom privata slutpunkter.

Använd följande länkar för att lära dig mer Azure Functions nätverksalternativ och privata slutpunkter: