Dela via


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 stöder 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å menyn Azure Portal eller på startsidan 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
    Abonnemang Din prenumeration Prenumeration under vilken 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 elastisk 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. På sidan Lagring 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. Lagringskontonamnen 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. På sidan Nätverk anger du följande inställningar.

    Kommentar

    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 Neka åtkomst till offentligt nätverk blockerar 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 det virtuella nätverket och väljer Ok. Alternativ för att begränsa inkommande och utgående åtkomst till funktionsappen vid skapande visas. Du måste uttryckligen aktivera VNet-integrering i den utgående åtkomstdelen 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.

    Dricks

    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 din nya funktionsapp.
    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 enda undernät. Ange ett undernätsnamn. Adressblocket för undernätet kan lämnas kvar vid standardvärdet. Välj OK. Mer information om storleksändring av undernät finns i Undernät.
    DNS Privat DNS-zon i Azure Det här värdet anger vilken DNS-server som 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 eftersom manuella 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. Det 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 VNet när du skapar och dirigerar all utgående trafik via det virtuella nätverket.
    Utgående undernät Skapa nya , och programformulär i Detta skapar ett nytt undernät för funktionsappens VNet-integrering. En funktionsapp kan bara vara VNet-integrerad med ett tomt undernät. Ange ett undernätsnamn. Adressblocket för undernätet kan lämnas kvar vid standardvärdet. Om du vill konfigurera den 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ägga 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 lagringskontots 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 enda undernät. Ange ett undernätsnamn. Adressblocket för undernätet kan lämnas kvar vid standardvärdet. Om du vill konfigurera den 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 som 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 eftersom manuella för anpassade DNS-zoner får ö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 Standardvärde 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 appkonfigurationsvalen.

  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 tittar på meddelandet Distributionen lyckades .

  10. Välj Gå till resurs för att se den nya funktionsappen. Du kan också välja Fäst på instrumentpanelen. Med fästning blir det enklare att återgå till den här funktionsappresursen från instrumentpanelen.

Grattis! Du har skapat din Premium-funktionsapp.

Kommentar

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 ett sådant fel uppstår 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

Sedan 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 Ny 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
    Abonnemang Din prenumeration Prenumerationen där dina resurser skapas.
    Resursgrupp myResourceGroup Den resursgrupp som du skapade med funktionsappen.
    Namn på namnrymd myServiceBus Namnet på Den Service Bus-instans som den privata slutpunkten är aktiverad för.
    Plats 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 de privata slutpunktsinställningar som visas i följande tabell.

    Inställning Föreslaget värde beskrivning
    Abonnemang Din prenumeration Prenumerationen där dina resurser skapas.
    Resursgrupp myResourceGroup Den resursgrupp som du skapade med funktionsappen.
    Namn sb-slutpunkt Namnet på den privata slutpunkten för servicebussen.
    Region myFunctionRegion Den region där du skapade ditt lagringskonto.
  4. På fliken Resurs använder du de privata slutpunktsinställningar som visas i följande tabell.

    Inställning Föreslaget värde beskrivning
    Abonnemang 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ätfliken Virtuellt nätverk.

  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 är markerade.

  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
    Abonnemang Din prenumeration Prenumerationen under vilken dina resurser skapas.
    Virtuella nätverk myVirtualNet Namnet på det virtuella nätverk som funktionsappen ansluter till.
    Undernät functions 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.

    Kommentar

    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 Azure Functions Service Bus-utlösaren hämtar händelser:

  1. I Service Bus 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 Service Bus-anslutningssträng

  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äng när du konfigurerar appinställningarna.

    Skärmbild av hur du hämtar en Service Bus-anslutningssträng.

Konfigurera inställningarna 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 för 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äng för din Service Bus. Den här lagrings-anslutningssträng 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 Inställningar för funktionskörning 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 det virtuella nätverket.

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

Kommentar

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

Kommentar

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
    Source GitHub Du bör ha skapat en GitHub-lagringsplats för exempelkoden i steg 2.
    Organisation myOrganization Organisationen som din lagringsplats är incheckad i. Det är vanligtvis ditt konto.
    Lagringsplats functions-vnet-tutorial Lagringsplatsen förgrenas från https://github.com/Azure-Samples/functions-vnet-tutorial.
    Gren huvud- 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)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 den 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. Välj sedan myResourceGroupsidan Resursgrupper.

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 skapade du en Premium-funktionsapp, lagringskonto och Service Bus. Du har skyddat alla dessa resurser bakom privata slutpunkter.

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