Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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 med hjälp av Azure portalen. Det virtuella nätverket använder en Service Bus köutlösare.
I den här guiden kommer du att:
- Skapa en funktionsapp i Elastic Premium-planen med integrering av virtuella nätverk och privata slutpunkter.
- Skapa Azure resurser, till exempel Service Bus
- Skydda din Service Bus med en privat nätverksanslutning.
- 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. Den här guiden använder C# och Windows. Andra språk och Linux stöds också.
På Azure-portalmenyn eller sidan Home väljer du Skapa en resurs.
På sidan Nytt väljer duWebbfunktionsapp>.
På sidan värdalternativ väljer du Functions Premium.
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 Subscription Din prenumeration Prenumeration under vilken den nya funktionsappen skapas. Resursgrupp minResursgrupp 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-9och-.Publicera Kod Välj att publicera kodfiler eller en Docker-container. Körningsstack .NET Den här guiden använder .NET. Version: 8 (LTS), isolerad arbetsmodell I den här självstudien används .NET 8.0 som körs i isolerad arbetsmodell. 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 handledningen använder Windows men fungerar även för Linux. Plan Funktionen 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).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 kan endast innehålla siffror och små bokstäver. 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 behöver du ett v2-lagringskonto. Den här versionen är standardlagringsversionen som skapas när du skapar en funktionsapp med nätverksfunktioner via Azure portalen. 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 den som kommer från privata slutpunkter. Aktivera nätverksinmatning På Möjligheten att konfigurera ditt program med integrering av virtuella nätverk när det skapas visas i portalfönstret när det här alternativet har växlats till På. Virtuellt nätverk 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 integrering av virtuella nätverk i den utgående åtkomstdelen av 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 Azure-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 På Möjligheten att konfigurera ditt program med integrering av virtuella nätverk 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 vara kvar vid standardvärdet. Välj OK. Mer information om storleksändring av undernät finns i Undernät. DNS Azure Private DNS zon Det här värdet anger vilken DNS-server som din privata slutpunkt använder. I de flesta fall, om du arbetar inom Azure, är Azure Private DNS-zon den DNS-zon som du bör använda eftersom användningen av Manual 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 integrerad i det virtuella nätverket går all utgående trafik som standard via det virtuella nätverket.
Inställning Föreslaget värde beskrivning Aktivera VNet-integrering På Den här inställningen integrerar funktionsappen 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 nya Den här inställningen skapar ett nytt undernät för funktionsappens integrering av virtuella nätverk. En funktionsapp kan bara vara ett virtuellt nätverk integrerat med ett tomt undernät. Ange ett undernätsnamn. Adressblocket för undernätet kan vara kvar vid standardvärdet. 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. Den här metoden integrerar effektivt ditt lagringskonto med det virtuella nätverket.
Inställning Föreslaget värde beskrivning Lägga till privat slutpunkt för lagring På Möjligheten att konfigurera ditt program med integrering av virtuella nätverk 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 Den här inställningen 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 vara kvar vid standardvärdet. Välj OK. DNS Azure Private DNS zon Det här värdet anger vilken DNS-server som din privata slutpunkt använder. I de flesta fall, om du arbetar inom Azure, är Azure Private DNS Zone den DNS-zon som du bör använda, eftersom användning av Manual för anpassade DNS-zoner kommer att innebära ökad komplexitet. 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 Ny resursnamn eller lagra dina data på en annan plats i en Azure-geografi. Aktivera följande inställning på sidan Avancerat .
Inställning Föreslaget värde beskrivning Systemtilldelad identitet På Aktiverar en systemtilldelad hanterad identitet för funktionsappen, som du använder senare för att ansluta till Service Bus utan anslutningssträngar. Välj Granska + skapa för att granska appkonfigurationsvalen.
Granska inställningarna på sidan Granska + skapa . Välj sedan Skapa för att skapa och distribuera funktionsappen.
I det övre högra hörnet i portalen väljer du ikonen Meddelanden och tittar på meddelandet Distributionen lyckades .
Välj Gå till resurs för att se den nya funktionsappen. Du kan också välja Fäst på instrumentbrädan. Att fästa gör det enklare att återgå till resursen för funktionsappen från instrumentpanelen.
Tänk på följande när du skapar och distribuerar din app:
När du skapar en Funktionsapp för Premium-plan i portalen med ett lagringskonto som använder privata slutpunkter, anger portalen automatiskt sajtegenskapen
vnetContentShareEnabledtilltrue. Den här egenskapen säkerställer att trafik till innehållsdelningen på Azure Files, som används för att skala ut en app i en Premiumplan, dirigeras via det virtuella nätverket. Mer information finns i egenskapsreferensen för vnetContentShareEnabled-webbplats . För automatiserade distributioner måste du uttryckligen ange den här webbplatsegenskapen i distributionsmallen. Mer information finns i Säkra distributioner.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 med framgång. 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 funktionaliteten hos din funktionsapps nätverksfunktioner i denna handledning.
På Azure-portalmenyn eller sidan Home väljer du Skapa en resurs.
På sidan Ny söker du efter Service Bus. Välj sedan Skapa.
På fliken Basics använder du följande tabell för att konfigurera inställningarna för Service Bus. Alla andra inställningar kan använda standardvärdena.
Inställning Föreslaget värde beskrivning Subscription Din prenumeration Prenumerationen där dina resurser skapas. Resursgrupp minResursgrupp Den resursgrupp som du skapade med funktionsappen. Namnrymdens namn 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å Premie Välj den här nivån om du vill använda privata slutpunkter med Azure Service Bus. Välj Förhandsgranska + skapa. När valideringen är klar väljer du Skapa.
Lås din Service Bus
Skapa den privata slutpunkten för att låsa din Service Bus:
I den nya Service Bus går du till menyn under Settings och väljer Networking.
På fliken Privata slutpunktsanslutningar väljer du Privat slutpunkt.
På fliken Grundläggande använder du de privata slutpunktsinställningar som visas i följande tabell.
Inställning Föreslaget värde beskrivning Subscription Din prenumeration Prenumerationen där dina resurser skapas. Resursgrupp minResursgrupp 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. På fliken Resurs använder du de privata slutpunktsinställningar som visas i följande tabell.
Inställning Föreslaget värde beskrivning Subscription Din prenumeration Prenumerationen under vilken dina resurser skapas. Resurstyp Microsoft. ServiceBus/namnområden Resurstypen för Service Bus. Resource myServiceBus Service Busen du skapade tidigare i självstudien. Målsubresurs namnområde Den privata slutpunkt som används för namnområdet från Service Bus. På fliken Virtual Network väljer du det inkommande undernätet som du skapade för inställningen Subnet.
Lämna DNS och Taggar som standard och välj sedan Granska + skapa. När valideringen är klar väljer du Skapa.
När den privata slutpunkten har skapats går du tillbaka till avsnittet Networking i namnområdet Service Bus och kontrollerar fliken Public Access.
Kontrollera att Valda nätverk är markerade.
Välj + Lägg till befintligt virtuellt nätverk för att lägga till det nyligen skapade virtuella nätverket.
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 Subscription 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. Välj Lägg till klientens IP-adress för att ge din aktuella klient-IP-åtkomst till namnområdet.
Kommentar
Att tillåta din klient-IP-adress är nödvändigt för att möjliggöra att Azure-portalen kan publicera meddelanden till kön senare i denna handledning.
Välj Aktivera för att aktivera tjänstslutpunkten.
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.
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:
I din Service Bus går du till menyn under Entiteter och väljer Queues.
Välj Kö. I den här självstudien anger du namnet queue som namnet på den nya kön.
Välj Skapa.
Ge funktionsappen åtkomst till Service Bus
Eftersom du aktiverade en systemtilldelad hanterad identitet när appen skapades kan du nu använda rollbaserad åtkomstkontroll (RBAC) för att ge funktionsappen åtkomst till din Service Bus.
Välj Access control (IAM) i namnområdet för din Service Bus.
Välj Lägg till>Lägg till rolltilldelning.
Sök efter Azure Service Bus datamottagare, välj rollen och välj sedan Nästa.
På fliken Medlemmar väljer du Hanterad identitet för Tilldela åtkomst till.
Välj + Välj medlemmar, leta upp och välj den hanterade identiteten för funktionsappen och välj sedan Välj.
Välj Granska + tilldela för att genomföra rolltilldelningen.
Mer information om identitetsbaserade anslutningar finns i Identitetsbaserade anslutningar i artikeln om Service Bus-bindningsreferens.
Konfigurera inställningarna för funktionsappen
I funktionsappen går du till menyn under Inställningar och väljer Miljövariabler.
Om du vill ansluta funktionsappen till Service Bus med hanterad identitet måste du lägga till en Service Bus namnområdesinställning. Välj + Lägg till för att skapa en ny inställning med namnet SERVICEBUS_CONNECTION__fullyQualifiedNamespace med värdet <SERVICE_BUS_NAMESPACE>.servicebus.windows.net, ersätta <SERVICE_BUS_NAMESPACE> med namnet på ditt Service Bus namnområde. När du är klar väljer du Använd.
Eftersom du använder en Elastic Premium-värdplan väljer du fliken Appinställningar i vyn Miljövariabler. Kontrollera att inställningen FUNCTIONS_WORKER_RUNTIME har värdet dotnet-isolated. Välj sedan fliken Funktionskörningsinställningar. Ange Körningsskalningsövervakning till På. Välj därefter Tillämpa. Med körningsdriven skalning kan du ansluta icke-HTTP-utlösarfunktioner till tjänster som körs i det virtuella nätverket.
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
Viktigt!
Eftersom offentlig åtkomst är inaktiverad går det inte att nå SCM-distributionsplatsen. Du måste tillfälligt återaktivera offentlig åtkomst så att Distributionscenter kan distribuera koden. För produktionsarbetsbelastningar distribuerar du från en lokalt installerad agent som distribueras till ett undernät i det virtuella nätverket eller ansluter utvecklingsdatorn med hjälp av ett punkt-till-plats-VPN. Mer information finns i Skyddade virtuella nätverk.
I funktionsappen går du till menyn under Inställningar och väljer Nätverk. Ange Åtkomst till Offentligt nätverktill Aktiverad från välj virtuella nätverk och IP-adresser och välj sedan Spara.
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.
Längst upp på sidan väljer du Fork för att skapa en förgrening av den här lagringsplatsen i ditt eget GitHub konto eller organisation.
I funktionsappen går du till menyn under Distribution och väljer Distributionscenter. Välj sedan Inställningar.
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 minOrganisation Organisationen som din lagringsplats är incheckad i. Det är vanligtvis ditt konto. Lagringsplats functions-vnet-tutorial Lagringsplatsen har förgrenats härifrån. Filial huvud Huvudgrenen för lagringsplatsen som du skapade. Körningsstack .NET Exempelkoden finns i C#. Version: .NET 8 isolerad Körningstidsversionen. Välj Spara.
Den första utrullningen kan ta några minuter. När appen har distribuerats visas statusmeddelandet Lyckad (Aktiv) på fliken Loggar. Uppdatera sidan om det behövs.
Nu när distributionen är klar kan du skydda appen igen. I funktionsappen går du till Inställningar>Nätverk och ställer in Åtkomst till offentligt nätverk tillbaka till Inaktiverad. Välj Spara.
Grattis! Du har framgångsrikt distribuerat din exempelfunktionsapp.
Testa din låsta funktionsapp
Eftersom funktionsappen har offentlig åtkomst inaktiverad kan du inte anropa HTTP-utlösarslutpunkten från det offentliga Internet. I stället verifierar du Service Bus köutlösare genom att skicka ett meddelande och övervaka funktionens körning i Application Insights.
I funktionsappen går du till menyn under Övervakning och väljer Application Insights. Välj Använd och välj sedan Visa Application Insights-data.
På menyn under Undersök väljer du Live-metrics.
Öppna en ny flik. I din Service Bus går du till menyn under Entiteter och väljer Queues.
Välj din kö.
I menyn väljer du Service Bus Explorer. Välj Skicka meddelanden och välj Text/oformaterad för Innehållstyp. Ange sedan ett meddelande.
Välj Skicka för att skicka meddelandet.
På fliken Live-metrics bör du se att din Service Bus-köutlösare har aktiverats. Om det inte har gjort det skickar du meddelandet igen från Service Bus Explorer.
Grattis! Du har framgångsrikt testat konfigurationen av din funktionsapp med privata slutpunkter.
Förstå privata DNS-zoner
Du använde 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 är konfigurerade 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 handledningen:
- privatelink.file.core.windows.net
- privatelink.blob.core.windows.net
- privatelink.servicebus.windows.net
- privatelink.azurewebsites.net
Rensa resurser
I föregående steg skapade du Azure resurser i en resursgrupp. Om du inte förväntar dig att behöva dessa resurser i framtiden kan du ta bort dem genom att ta bort resursgruppen:
På Azure portalmenyn eller startsidan väljer du Resource-grupper>myResourceGroup.
I fönstret 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, 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: