Nätverksalternativ för Azure Functions

I den här artikeln beskrivs de nätverksfunktioner som är tillgängliga i värdalternativen för Azure Functions. Med alla följande nätverksalternativ kan du komma åt resurser utan att använda internetroutningsbara adresser eller begränsa internetåtkomsten till en funktionsapp.

Värdmodellerna har olika nivåer av tillgänglig nätverksisolering. Genom att välja rätt kan du uppfylla kraven på nätverksisolering.

Du kan vara värd för funktionsappar på flera sätt:

  • Du kan välja mellan planalternativ som körs på en infrastruktur för flera klientorganisationer, med olika nivåer av anslutning till virtuella nätverk och skalningsalternativ:
    • Förbrukningsplanen skalas dynamiskt som svar på belastning och erbjuder minimala alternativ för nätverksisolering.
    • Premium-planen skalas också dynamiskt och erbjuder mer omfattande nätverksisolering.
    • Azure App Service-planen fungerar i fast skala och erbjuder nätverksisolering som liknar Premium-planen.
  • Du kan köra funktioner i en App Service-miljön. Den här metoden distribuerar din funktion till ditt virtuella nätverk och erbjuder fullständig nätverkskontroll och isolering.

Matris med nätverksfunktioner

Funktion Förbrukningsplan Premium-plan Dedikerad plan ASE
Inkommande IP-begränsningar ✅Ja ✅Ja ✅Ja ✅Ja
Inkommande privata slutpunkter ❌Nej ✅Ja ✅Ja ✅Ja
Integrering med virtuellt nätverk ❌Nej ✅Ja (regional) ✅Ja (regional och gateway) ✅Ja
Utlösare för virtuellt nätverk (icke-HTTP) ❌Nej ✅Ja ✅Ja ✅Ja
Hybridanslutningar (endast Windows) ❌Nej ✅Ja ✅Ja ✅Ja
Utgående IP-begränsningar ❌Nej ✅Ja ✅Ja ✅Ja

Snabbstartsresurser

Använd följande resurser för att snabbt komma igång med Azure Functions-nätverksscenarier. Dessa resurser refereras i hela artikeln.

Funktioner för inkommande nätverk

Med följande funktioner kan du filtrera inkommande begäranden till din funktionsapp.

Begränsningar för inkommande åtkomst

Du kan använda åtkomstbegränsningar för att definiera en prioritetsbeställd lista över IP-adresser som tillåts eller nekas åtkomst till din app. Listan kan innehålla IPv4- och IPv6-adresser eller specifika virtuella nätverksundernät med hjälp av tjänstslutpunkter. När det finns en eller flera poster finns en implicit "neka alla" i slutet av listan. IP-begränsningar fungerar med alla funktionsvärdalternativ.

Åtkomstbegränsningar är tillgängliga i Premium, Consumption och App Service.

Kommentar

Med nätverksbegränsningar på plats kan du bara distribuera inifrån ditt virtuella nätverk eller när du har placerat IP-adressen för den dator som du använder för att komma åt Azure-portalen i listan Valv mottagare. Du kan dock fortfarande hantera funktionen med hjälp av portalen.

Mer information finns i Begränsningar för statisk åtkomst i Azure App Service.

Privata slutpunkter

Azure privat slutpunkt är ett nätverksgränssnitt som ansluter dig privat och säkert till en tjänst som drivs av Azure Private Link. Privat slutpunkt använder en privat IP-adress från ditt virtuella nätverk, vilket effektivt tar in tjänsten i ditt virtuella nätverk.

Du kan använda privat slutpunkt för dina funktioner som finns i Premium- och App Service-abonnemangen.

Om du vill göra anrop till privata slutpunkter måste du se till att DNS-sökningarna matchar den privata slutpunkten. Du kan tillämpa det här beteendet på något av följande sätt:

  • Integrera med privata Azure DNS-zoner. När det virtuella nätverket inte har någon anpassad DNS-server görs detta automatiskt.
  • Hantera den privata slutpunkten på DEN DNS-server som används av din app. För att göra detta måste du känna till den privata slutpunktsadressen och sedan peka slutpunkten som du försöker nå till den adressen med hjälp av en A-post.
  • Konfigurera din egen DNS-server så att den vidarebefordrar till privata Azure DNS-zoner.

Mer information finns i Använda privata slutpunkter för Web Apps.

Om du vill anropa andra tjänster som har en privat slutpunktsanslutning, till exempel lagring eller Service Bus, måste du konfigurera appen för att göra utgående anrop till privata slutpunkter. Mer information om hur du använder privata slutpunkter med lagringskontot för funktionsappen finns i begränsa ditt lagringskonto till ett virtuellt nätverk.

Tjänstslutpunkter

Med hjälp av tjänstslutpunkter kan du begränsa många Azure-tjänster till valda virtuella nätverksundernät för att ge en högre säkerhetsnivå. Regional integrering av virtuella nätverk gör det möjligt för din funktionsapp att nå Azure-tjänster som skyddas med tjänstslutpunkter. Den här konfigurationen stöds för alla planer som stöder integrering av virtuella nätverk. För att få åtkomst till en tjänstslutpunktsskyddad tjänst måste du göra följande:

  1. Konfigurera regional integrering av virtuella nätverk med funktionsappen för att ansluta till ett specifikt undernät.
  2. Gå till måltjänsten och konfigurera tjänstslutpunkter mot integrationsundernätet.

Mer information finns i Tjänstslutpunkter för virtuellt nätverk.

Använda tjänstslutpunkter

Om du vill begränsa åtkomsten till ett visst undernät skapar du en begränsningsregel med en typ av virtuellt nätverk . Du kan sedan välja den prenumeration, det virtuella nätverket och undernätet som du vill tillåta eller neka åtkomst till.

Om tjänstslutpunkter inte redan är aktiverade med Microsoft.Web för det undernät som du har valt aktiveras de automatiskt om du inte markerar kryssrutan Ignorera saknade Microsoft.Web-tjänstslutpunkter . Scenariot där du kanske vill aktivera tjänstslutpunkter i appen, men inte undernätet, beror främst på om du har behörighet att aktivera dem i undernätet.

Om du behöver någon annan för att aktivera tjänstslutpunkter i undernätet markerar du kryssrutan Ignorera saknade Microsoft.Web-tjänstslutpunkter . Appen är konfigurerad för tjänstslutpunkter i väntan på att de ska aktiveras senare i undernätet.

Screenshot of the

Du kan inte använda tjänstslutpunkter för att begränsa åtkomsten till appar som körs i en App Service-miljön. När din app finns i en App Service-miljön kan du styra åtkomsten till den genom att tillämpa IP-åtkomstregler.

Information om hur du konfigurerar tjänstslutpunkter finns i Upprätta åtkomst till privata Azure Functions-webbplatser.

Virtual Network-integration

Integrering av virtuella nätverk gör att funktionsappen kan komma åt resurser i ett virtuellt nätverk. Azure Functions stöder två typer av integrering av virtuella nätverk:

  • Prisnivåerna för dedikerad beräkning, som inkluderar Basic, Standard, Premium, Premium v2 och Premium v3.
  • App Service-miljön, som distribueras direkt till ditt virtuella nätverk med dedikerad stödinfrastruktur och använder prisnivåerna Isolerad och Isolerad v2.

Integreringsfunktionen för virtuella nätverk används i prisnivåer för dedikerad beräkning i Azure App Service. Om din app finns i en App Service-miljön finns den redan i ett virtuellt nätverk och kräver inte användning av VNet-integreringsfunktionen för att nå resurser i samma virtuella nätverk. Mer information om alla nätverksfunktioner finns i App Service-nätverksfunktioner.

Integrering av virtuellt nätverk ger din app åtkomst till resurser i ditt virtuella nätverk, men den beviljar inte inkommande privat åtkomst till din app från det virtuella nätverket. Åtkomst till privat webbplats syftar på att göra en app endast tillgänglig från ett privat nätverk, till exempel inifrån ett virtuellt Azure-nätverk. Integrering av virtuella nätverk används endast för att göra utgående anrop från din app till ditt virtuella nätverk. Integreringsfunktionen för virtuella nätverk fungerar annorlunda när den används med virtuella nätverk i samma region och med virtuella nätverk i andra regioner. Integreringsfunktionen för virtuella nätverk har två varianter:

  • Regional integrering av virtuella nätverk: När du ansluter till virtuella nätverk i samma region måste du ha ett dedikerat undernät i det virtuella nätverk som du integrerar med.
  • Gateway-nödvändig integrering av virtuella nätverk: När du ansluter direkt till virtuella nätverk i andra regioner eller till ett klassiskt virtuellt nätverk i samma region behöver du en Azure Virtual Network-gateway som skapats i det virtuella målnätverket.

Integreringsfunktionen för virtuella nätverk:

  • Kräver prisnivån Basic eller Standard, Premium, Premium v2, Premium v3 eller Elastic Premium App Service.
  • Stöder TCP och UDP.
  • Fungerar med App Service-appar och funktionsappar.

Det finns några saker som integreringen av virtuella nätverk inte stöder, till exempel:

  • Montera en enhet.
  • Windows Server Active Directory-domänanslutning.
  • Netbios.

Gateway-nödvändig integrering av virtuella nätverk ger endast åtkomst till resurser i det virtuella målnätverket eller i nätverk som är anslutna till det virtuella målnätverket med peering eller VPN. Gateway-nödvändig integrering av virtuella nätverk ger inte åtkomst till resurser som är tillgängliga i Azure ExpressRoute-anslutningar eller fungerar med tjänstslutpunkter.

Oavsett vilken version som används ger integrering av virtuella nätverk din app åtkomst till resurser i ditt virtuella nätverk, men den beviljar inte inkommande privat åtkomst till din app från det virtuella nätverket. Åtkomst till privat webbplats syftar på att göra din app endast tillgänglig från ett privat nätverk, till exempel inifrån ett virtuellt Azure-nätverk. Integrering av virtuellt nätverk är bara till för att göra utgående anrop från din app till ditt virtuella nätverk.

Integrering av virtuella nätverk i Azure Functions använder delad infrastruktur med App Service-webbappar. Mer information om de två typerna av integrering av virtuella nätverk finns i:

Information om hur du konfigurerar integrering av virtuella nätverk finns i Aktivera integrering av virtuella nätverk.

Aktivera integrering av virtuellt nätverk

  1. I funktionsappen i Azure-portalen väljer du Nätverk och under VNet-integrering väljer du Klicka här för att konfigurera.

  2. Välj Lägg till virtuellt nätverk.

    Select VNet Integration

  3. Listrutan innehåller alla virtuella Azure Resource Manager-nätverk i din prenumeration i samma region. Välj det virtuella nätverk som du vill integrera med.

    Select the VNet

    • Functions Premium-planen stöder endast regional integrering av virtuella nätverk. Om det virtuella nätverket finns i samma region skapar du antingen ett nytt undernät eller väljer ett tomt, befintligt undernät.

    • Om du vill välja ett virtuellt nätverk i en annan region måste du ha en virtuell nätverksgateway etablerad med punkt-till-plats aktiverat. Integrering av virtuella nätverk mellan regioner stöds bara för dedikerade planer, men globala peerings fungerar med regional integrering av virtuella nätverk.

Under integreringen startas appen om. När integreringen är klar visas information om det virtuella nätverk som du är integrerad med. Som standard är Route All aktiverat och all trafik dirigeras till ditt virtuella nätverk.

Om du bara vill att din privata trafik (RFC1918 trafik) ska dirigeras följer du stegen i App Service-dokumentationen.

Integrering av regionala virtuella nätverk

Med regional integrering av virtuella nätverk kan din app komma åt:

  • Resurser i samma virtuella nätverk som din app.
  • Resurser i virtuella nätverk som är peer-kopplade till det virtuella nätverk som appen är integrerad med.
  • Tjänstslutpunktsskyddade tjänster.
  • Resurser i Azure ExpressRoute-anslutningar.
  • Resurser mellan peer-kopplade anslutningar, inklusive Azure ExpressRoute-anslutningar.
  • Privata slutpunkter

När du använder regional integrering av virtuella nätverk kan du använda följande Azure-nätverksfunktioner:

  • Nätverkssäkerhetsgrupper (NSG:er): Du kan blockera utgående trafik med en NSG som placeras i ditt integrationsundernät. Reglerna för inkommande trafik gäller inte eftersom du inte kan använda integrering av virtuella nätverk för att ge inkommande åtkomst till din app.
  • Routningstabeller (UDR): Du kan placera en routningstabell i integrationsundernätet för att skicka utgående trafik där du vill.

Kommentar

När du dirigerar all utgående trafik till ditt virtuella nätverk omfattas den av de NSG:er och UDR:er som tillämpas på ditt integrationsundernät. När det virtuella nätverket är integrerat skickas funktionsappens utgående trafik till offentliga IP-adresser fortfarande från de adresser som anges i appegenskaperna, såvida du inte anger vägar som dirigerar trafiken någon annanstans.

Regional integrering av virtuella nätverk kan inte använda port 25.

Det finns vissa begränsningar med att använda virtuella nätverk:

  • Funktionen är tillgänglig från alla App Service-distributioner i Premium V2 och Premium V3. Den är också tillgänglig i Standard men endast från nyare App Service-distributioner. Om du använder en äldre distribution kan du bara använda funktionen från en Premium V2 App Service-plan. Om du vill se till att du kan använda funktionen i en Standard App Service-plan skapar du din app i en Premium V3 App Service-plan. Dessa planer stöds bara för våra senaste distributioner. Du kan skala ner om du vill efter det.
  • Integrationsundernätet kan endast användas av en App Service-plan.
  • Funktionen kan inte användas av isolerade planappar som finns i en App Service-miljön.
  • Funktionen kräver ett oanvänt undernät som är ett /28 eller större i ett virtuellt Azure Resource Manager-nätverk.
  • Appen och det virtuella nätverket måste finnas i samma region.
  • Du kan inte ta bort ett virtuellt nätverk med en integrerad app. Ta bort integreringen innan du tar bort det virtuella nätverket.
  • Du kan bara ha en regional integrering av virtuella nätverk per App Service-plan. Flera appar i samma App Service-plan kan använda samma integrationsundernät.
  • Du kan inte ändra prenumerationen på en app eller en plan när det finns en app som använder regional integrering av virtuella nätverk.

Undernät

Integrering av virtuella nätverk är beroende av ett dedikerat undernät. När du etablerar ett undernät förlorar Azure-undernätet fem IP-adresser från början. En adress används från integrationsundernätet för varje planinstans. När du skalar din app till fyra instanser används fyra adresser.

När du skalar upp eller ned i storlek fördubblas det nödvändiga adressutrymmet under en kort tidsperiod. Detta påverkar de verkliga, tillgängliga instanser som stöds för en viss undernätsstorlek. I följande tabell visas både de maximala tillgängliga adresserna per CIDR-block och vilken effekt detta har på vågrät skala:

CIDR-blockstorlek Maximalt antal tillgängliga adresser Maximal vågrät skala (instanser)*
/28 11 5
/27 27 13
/26 59 29

*Förutsätter att du behöver skala upp eller ned i antingen storlek eller SKU någon gång.

Eftersom undernätsstorleken inte kan ändras efter tilldelningen använder du ett undernät som är tillräckligt stort för att hantera den skala som appen kan nå. För att undvika problem med undernätskapacitet för Functions Premium-planer bör du använda en /24 med 256 adresser för Windows och en /26 med 64 adresser för Linux. När du skapar undernät i Azure-portalen som en del av integreringen med det virtuella nätverket krävs en minsta storlek på /24 respektive /26 för Windows respektive Linux.

När du vill att dina appar i en annan plan ska nå ett virtuellt nätverk som redan är anslutet till av appar i en annan plan väljer du ett annat undernät än det som används av den befintliga virtuella nätverksintegrering.

Funktionen stöds fullt ut för både Windows- och Linux-appar, inklusive anpassade containrar. Alla beteenden fungerar på samma sätt mellan Windows-appar och Linux-appar.

Nätverkssäkerhetsgrupper

Du kan använda nätverkssäkerhetsgrupper för att blockera inkommande och utgående trafik till resurser i ett virtuellt nätverk. En app som använder regional integrering av virtuella nätverk kan använda en nätverkssäkerhetsgrupp för att blockera utgående trafik till resurser i ditt virtuella nätverk eller internet. Om du vill blockera trafik till offentliga adresser måste du ha virtuell nätverksintegrering med Route All aktiverat. Reglerna för inkommande trafik i en NSG gäller inte för din app eftersom integrering av virtuella nätverk endast påverkar utgående trafik från din app.

Om du vill styra inkommande trafik till din app använder du funktionen Åtkomstbegränsningar. En NSG som tillämpas på ditt integrationsundernät gäller oavsett vilka vägar som tillämpas på ditt integrationsundernät. Om din funktionsapp är ett virtuellt nätverk integrerat med Route All aktiverat och du inte har några vägar som påverkar trafiken med offentliga adresser i integrationsundernätet, omfattas all utgående trafik fortfarande av NSG:er som tilldelats integrationsundernätet. När Route All inte är aktiverat tillämpas NSG:er endast på RFC1918 trafik.

Vägar

Du kan använda routningstabeller för att dirigera utgående trafik från din app till var du vill. Som standard påverkar routningstabeller bara din RFC1918 måltrafik. När Route All är aktiverat påverkas alla dina utgående anrop. När Route All är inaktiverat påverkas endast privat trafik (RFC1918) av routningstabellerna. Vägar som anges i integrationsundernätet påverkar inte svar på inkommande appbegäranden. Vanliga mål kan vara brandväggsenheter eller gatewayer.

Om du vill dirigera all utgående trafik lokalt kan du använda en routningstabell för att skicka all utgående trafik till din ExpressRoute-gateway. Om du dirigerar trafik till en gateway måste du ange vägar i det externa nätverket så att svar skickas tillbaka.

BGP-vägar (Border Gateway Protocol) påverkar även din apptrafik. Om du har BGP-vägar från något som liknar en ExpressRoute-gateway påverkas appens utgående trafik. Som standard påverkar BGP-vägar endast din RFC1918 måltrafik. När din funktionsapp är virtuellt nätverk integrerat med Route All aktiverat kan all utgående trafik påverkas av dina BGP-vägar.

Privata Azure DNS-zoner

När appen har integrerats med ditt virtuella nätverk använder den samma DNS-server som ditt virtuella nätverk har konfigurerats med och fungerar med de privata Azure DNS-zoner som är länkade till det virtuella nätverket.

Begränsa ett lagringskonto till ett virtuellt nätverk

Kommentar

Om du snabbt vill distribuera en funktionsapp med privata slutpunkter aktiverade på lagringskontot läser du följande mall: Funktionsapp med privata Slutpunkter i Azure Storage.

När du skapar en funktionsapp måste du skapa eller länka till ett allmänt Azure Storage-konto som stöder blob-, kö- och tabelllagring. Du kan ersätta det här lagringskontot med ett som skyddas med tjänstslutpunkter eller privata slutpunkter.

Den här funktionen stöds för alla virtuella Windows- och Linux-nätverksstödda SKU:er i den dedikerade planen (App Service) och för Premium-abonnemangen. Förbrukningsplanen stöds inte. Information om hur du konfigurerar en funktion med ett lagringskonto som är begränsat till ett privat nätverk finns i Begränsa ditt lagringskonto till ett virtuellt nätverk.

Använda Key Vault-referenser

Du kan använda Azure Key Vault-referenser för att använda hemligheter från Azure Key Vault i ditt Azure Functions-program utan att kräva några kodändringar. Azure Key Vault är en tjänst som tillhandahåller centraliserad hemlighetshantering med fullständig kontroll över åtkomstprinciper och granskningshistorik.

Om integrering av virtuella nätverk har konfigurerats för appen kan Key Vault-referenser användas för att hämta hemligheter från ett nätverksbegränsat valv.

Utlösare för virtuellt nätverk (icke-HTTP)

För närvarande kan du använda icke-HTTP-utlösarfunktioner inifrån ett virtuellt nätverk på något av två sätt:

  • Kör funktionsappen i en Premium-plan och aktivera stöd för utlösare för virtuella nätverk.
  • Kör funktionsappen i en App Service-plan eller App Service-miljön.

Premium-plan med utlösare för virtuellt nätverk

Med Premium-planen kan du skapa funktioner som utlöses av tjänster i ett virtuellt nätverk. Dessa icke-HTTP-utlösare kallas virtuella nätverksutlösare.

Som standard leder utlösare för virtuella nätverk inte till att funktionsappen skalas utöver antalet förvärmda instanser. Vissa tillägg stöder dock utlösare för virtuella nätverk som gör att funktionsappen skalas dynamiskt. Du kan aktivera den här dynamiska skalningsövervakningen i funktionsappen för tillägg som stöds på något av följande sätt:

  1. Gå till funktionsappen i Azure-portalen.

  2. Under Inställningar väljer du Konfiguration och på fliken Funktionskörningsinställningar anger du Körningsskalningsövervakning till .

  3. Välj Spara för att uppdatera funktionsappens konfiguration och starta om appen.

VNETToggle

Dricks

Aktivering av övervakning av utlösare för virtuella nätverk kan påverka programmets prestanda, även om den här effekten sannolikt är mycket liten.

Stöd för dynamisk skalningsövervakning av utlösare för virtuella nätverk är inte tillgängligt i version 1.x av Functions-körningen.

Tilläggen i den här tabellen stöder dynamisk skalningsövervakning av utlösare för virtuella nätverk. För att få bästa skalningsprestanda bör du uppgradera till versioner som också stöder målbaserad skalning.

Tillägg (lägsta version) Endast körningsskalningsövervakning Med målbaserad skalning
Microsoft.Azure.WebJobs.Extensions.CosmosDB > 3.0.5 > 4.1.0
Microsoft.Azure.WebJobs.Extensions.DurableTask > 2.0.0 saknas
Microsoft.Azure.WebJobs.Extensions.EventHubs > 4.1.0 > 5.2.0
Microsoft.Azure.WebJobs.Extensions.ServiceBus > 3.2.0 > 5.9.0
Microsoft.Azure.WebJobs.Extensions.Storage > 3.0.10 > 5.1.0*

* Endast kölagring.

Viktigt!

När du aktiverar övervakning av utlösare för virtuella nätverk kan endast utlösare för dessa tillägg göra att appen skalas dynamiskt. Du kan fortfarande använda utlösare från tillägg som inte finns i den här tabellen, men de orsakar inte skalning utöver antalet förvärmda instanser. En fullständig lista över alla utlösar- och bindningstillägg finns i Utlösare och bindningar.

App Service-plan och App Service-miljön med utlösare för virtuella nätverk

När din funktionsapp körs i antingen en App Service-plan eller en App Service-miljön kan du använda utlösarfunktioner som inte är HTTP-utlösare. För att dina funktioner ska utlösas korrekt måste du vara ansluten till ett virtuellt nätverk med åtkomst till den resurs som definierats i utlösaranslutningen.

Anta till exempel att du vill konfigurera Azure Cosmos DB att endast acceptera trafik från ett virtuellt nätverk. I det här fallet måste du distribuera funktionsappen i en App Service-plan som tillhandahåller integrering av virtuella nätverk med det virtuella nätverket. Integrering gör att en funktion kan utlösas av den Azure Cosmos DB-resursen.

Hybridanslutningar

Hybrid Anslut ions är en funktion i Azure Relay som du kan använda för att komma åt programresurser i andra nätverk. Den ger åtkomst från din app till en programslutpunkt. Du kan inte använda den för att komma åt ditt program. Hybrid-Anslut ioner är tillgängliga för funktioner som körs i Windows i alla utom förbrukningsplanen.

Som används i Azure Functions korrelerar varje hybridanslutning med en enda TCP-värd och portkombination. Det innebär att hybridanslutningens slutpunkt kan finnas på valfritt operativsystem och valfritt program så länge du har åtkomst till en TCP-lyssnarport. Funktionen Hybrid Anslut ions vet inte eller bryr sig inte om vad programprotokollet är eller vad du har åtkomst till. Det ger bara nätverksåtkomst.

Mer information finns i App Service-dokumentationen för Hybrid Anslut ions. Samma konfigurationssteg stöder Azure Functions.

Viktigt!

Hybrid-Anslut ions stöds endast i Windows-planer. Linux stöds inte.

Utgående IP-begränsningar

Utgående IP-begränsningar är tillgängliga i en Premium-plan, App Service-plan eller App Service-miljön. Du kan konfigurera utgående begränsningar för det virtuella nätverk där din App Service-miljön distribueras.

När du integrerar en funktionsapp i en Premium-plan eller en App Service-plan med ett virtuellt nätverk kan appen fortfarande göra utgående anrop till Internet som standard. Genom att integrera funktionsappen med ett virtuellt nätverk med Route All aktiverat tvingar du all utgående trafik att skickas till ditt virtuella nätverk, där regler för nätverkssäkerhetsgrupper kan användas för att begränsa trafiken.

Information om hur du styr den utgående IP-adressen med hjälp av ett virtuellt nätverk finns i Självstudie: Kontrollera utgående IP-adress för Azure Functions med en NAT-gateway för virtuella Azure-nätverk.

Automatisering

Med följande API:er kan du programmatiskt hantera regionala integreringar av virtuella nätverk:

  • Azure CLI: Använd kommandona az functionapp vnet-integration för att lägga till, lista eller ta bort en regional integrering av virtuella nätverk.
  • ARM-mallar: Regional integrering av virtuella nätverk kan aktiveras med hjälp av en Azure Resource Manager-mall. Ett fullständigt exempel finns i den här snabbstartsmallen för funktioner.

Testningsöverväganden

När du testar funktioner i en funktionsapp med privata slutpunkter måste du utföra dina tester från samma virtuella nätverk, till exempel på en virtuell dator (VM) i nätverket. Om du vill använda alternativet Kod + test i portalen från den virtuella datorn måste du lägga till följande CORS-ursprung i funktionsappen :

  • https://functions-next.azure.com
  • https://functions-staging.azure.com
  • https://functions.azure.com
  • https://portal.azure.com

Felsökning

Funktionen är enkel att konfigurera, men det betyder inte att din upplevelse blir problemfri. Om du får problem med att komma åt den önskade slutpunkten finns det några verktyg som du kan använda för att testa anslutningen från appkonsolen. Det finns två konsoler som du kan använda. Den ena är Kudu-konsolen och den andra är konsolen i Azure-portalen. Om du vill nå Kudu-konsolen från din app går du till Verktyg>Kudu. Du kan också nå Kudo-konsolen på [sitename].scm.azurewebsites.net. När webbplatsen har lästs in går du till fliken Felsökningskonsol. Gå till Verktygskonsolen> för att komma till azure-portalens värdbaserade konsol från din app.

Verktyg

I interna Windows-appar fungerar inte verktygen ping, nslookup och tracert via konsolen på grund av säkerhetsbegränsningar (de fungerar i anpassade Windows-containrar). För att fylla tomrummet läggs två separata verktyg till. För att testa DNS-funktioner har vi lagt till ett verktyg med namnet nameresolver.exe. Syntax:

nameresolver.exe hostname [optional: DNS Server]

Du kan använda nameresolver för att kontrollera de värdnamn som appen är beroende av. På så sätt kan du testa om du har något felkonfigurerat med din DNS eller kanske inte har åtkomst till DNS-servern. Du kan se den DNS-server som appen använder i konsolen genom att titta på miljövariablerna WEBSITE_DNS_SERVER och WEBSITE_DNS_ALT_SERVER.

Kommentar

Verktyget nameresolver.exe fungerar för närvarande inte i anpassade Windows-containrar.

Du kan använda nästa verktyg för att testa TCP-anslutningen till en värd- och portkombination. Det här verktyget kallas tcpping och syntaxen är:

tcpping.exe hostname [optional: port]

Tcpping-verktyget anger om du kan nå en specifik värd och port. Det kan bara visa framgång om det finns ett program som lyssnar på värd- och portkombinationen och det finns nätverksåtkomst från din app till den angivna värden och porten.

Felsöka åtkomst till virtuella nätverksbaserade resurser

Ett antal saker kan hindra din app från att nå en specifik värd och port. För det mesta är det en av dessa saker:

  • En brandvägg är i vägen. Om du har en brandvägg i vägen når du TCP-tidsgränsen. TCP-timeouten är 21 sekunder i det här fallet. Använd tcpping-verktyget för att testa anslutningen. TCP-timeouter kan orsakas av många saker utöver brandväggar, men börja där.
  • DNS är inte tillgängligt. DNS-tidsgränsen är 3 sekunder per DNS-server. Om du har två DNS-servrar är tidsgränsen 6 sekunder. Använd nameresolver för att se om DNS fungerar. Du kan inte använda nslookup eftersom det inte använder den DNS som ditt virtuella nätverk har konfigurerats med. Om det inte går att komma åt kan du ha en brandvägg eller NSG som blockerar åtkomsten till DNS eller så kan den vara nere.

Om dessa objekt inte svarar på dina problem kan du först titta efter saker som:

Integrering av regionala virtuella nätverk

  • Är målet en icke-RFC1918 adress och du har inte Route All aktiverat?
  • Finns det en NSG som blockerar utgående trafik från ditt integrationsundernät?
  • Är din lokala gateway konfigurerad för att dirigera trafik tillbaka till Azure om du använder Azure ExpressRoute eller ett VPN? Om du kan nå slutpunkter i ditt virtuella nätverk men inte lokalt kontrollerar du dina vägar.
  • Har du tillräckligt med behörighet för att ange delegering i integrationsundernätet? Under konfigurationen för integrering av regionala virtuella nätverk delegeras ditt integrationsundernät till Microsoft.Web/serverFarms. Användargränssnittet för VNet-integrering delegerar undernätet till Microsoft.Web/serverFarms automatiskt. Om ditt konto inte har tillräcklig nätverksbehörighet för att ange delegering behöver du någon som kan ange attribut i ditt integrationsundernät för att delegera undernätet. Om du vill delegera integreringsundernätet manuellt går du till undernätets användargränssnitt för Azure Virtual Network och anger delegeringen för Microsoft.Web/serverFarms.

Gateway-nödvändig integrering av virtuellt nätverk

  • Är punkt-till-plats-adressintervallet i RFC 1918-intervallen (10.0.0.0-10.255.255.255 /172.16.20.0-172.31.255.255 / 192.168.0.0-192.168.255.255)?
  • Visas gatewayen som upp i portalen? Om din gateway är nere tar du upp den igen.
  • Visas certifikaten som synkroniserade eller misstänker du att nätverkskonfigurationen har ändrats? Om dina certifikat inte är synkroniserade eller om du misstänker att en ändring har gjorts i konfigurationen av det virtuella nätverket som inte har synkroniserats med dina ASP:er väljer du Synkronisera nätverk.
  • Är den lokala gatewayen konfigurerad för att dirigera trafik tillbaka till Azure om du använder ett VPN? Om du kan nå slutpunkter i ditt virtuella nätverk men inte lokalt kontrollerar du dina vägar.
  • Försöker du använda en samexistensgateway som stöder både punkt-till-plats och ExpressRoute? Samexistensgatewayer stöds inte med integrering av virtuella nätverk.

Att felsöka nätverksproblem är en utmaning eftersom du inte kan se vad som blockerar åtkomsten till en specifik kombination av värd:port. Några orsaker är:

  • Du har en brandvägg på värden som förhindrar åtkomst till programporten från ditt punkt-till-plats-IP-intervall. Att korsa undernät kräver ofta offentlig åtkomst.
  • Målvärden är nere.
  • Programmet är nere.
  • Du hade fel IP-adress eller värdnamn.
  • Programmet lyssnar på en annan port än vad du förväntade dig. Du kan matcha ditt process-ID med lyssningsporten med hjälp av "netstat -aon" på slutpunktsvärden.
  • Dina nätverkssäkerhetsgrupper är konfigurerade på ett sådant sätt att de förhindrar åtkomst till programvärden och porten från ditt punkt-till-plats-IP-intervall.

Du vet inte vilken adress din app faktiskt använder. Det kan vara vilken adress som helst i integrationsundernätet eller adressintervallet punkt-till-plats, så du måste tillåta åtkomst från hela adressintervallet.

Fler felsökningssteg är:

  • Anslut till en virtuell dator i det virtuella nätverket och försök att nå resursvärden:porten därifrån. Om du vill testa för TCP-åtkomst använder du PowerShell-kommandot Test-Net Anslut ion. Syntax:
Test-NetConnection hostname [optional: -Port]
  • Ta upp ett program på en virtuell dator och testa åtkomsten till den värden och porten från konsolen från din app med hjälp av tcpping.

Lokala resurser

Om din app inte kan nå en lokal resurs kontrollerar du om du kan nå resursen från det virtuella nätverket. Använd PowerShell-kommandot Test-Net Anslut ion för att söka efter TCP-åtkomst. Om den virtuella datorn inte kan nå din lokala resurs kanske vpn- eller ExpressRoute-anslutningen inte är korrekt konfigurerad.

Om den virtuella nätverksvärdade virtuella datorn kan nå ditt lokala system, men appen inte kan det, är orsaken troligtvis en av följande orsaker:

  • Dina vägar är inte konfigurerade med ditt undernät eller adressintervall för punkt-till-plats i din lokala gateway.
  • Dina nätverkssäkerhetsgrupper blockerar åtkomsten för ditt punkt-till-plats-IP-intervall.
  • Dina lokala brandväggar blockerar trafik från ditt punkt-till-plats-IP-intervall.
  • Du försöker nå en icke-RFC 1918-adress med hjälp av integreringsfunktionen för regionala virtuella nätverk.

Ta bort App Service-planen eller webbappen innan du kopplar från VNet-integreringen

Om du har tagit bort webbappen eller App Service-planen utan att först koppla från VNet-integreringen kan du inte utföra några uppdaterings-/borttagningsåtgärder i det virtuella nätverket eller undernätet som användes för integreringen med den borttagna resursen. En undernätsdelegering "Microsoft.Web/serverFarms" förblir tilldelad till ditt undernät och förhindrar uppdaterings-/borttagningsåtgärderna.

För att kunna uppdatera/ta bort undernätet eller det virtuella nätverket igen måste du återskapa VNet-integreringen och sedan koppla från den:

  1. Återskapa App Service-planen och webbappen (det är obligatoriskt att använda exakt samma webbappnamn som tidigare).
  2. Gå till bladet Nätverk i webbappen och konfigurera VNet-integreringen.
  3. När VNet-integreringen har konfigurerats väljer du knappen Koppla från.
  4. Ta bort App Service-planen eller webbappen.
  5. Uppdatera/ta bort undernätet eller det virtuella nätverket.

Om du fortfarande stöter på problem med VNet-integreringen efter att ha följt stegen ovan kontaktar du Microsoft Support.

Nätverksfelsökning

Du kan också använda felsökaren för nätverk för att lösa anslutningsproblem. Öppna nätverksfelsökaren genom att gå till appen i Azure-portalen. Välj Diagnostik och lös problem och sök sedan efter nätverksfelsökare.

Anslut ionsproblem – Den kontrollerar statusen för integreringen av det virtuella nätverket, inklusive att kontrollera om den privata IP-adressen har tilldelats till alla instanser av planen och DNS-inställningarna. Om en anpassad DNS inte har konfigurerats tillämpas Standard azure DNS. Felsökaren söker också efter vanliga beroenden för funktionsappar, inklusive anslutning för Azure Storage och andra bindningsberoenden.

Screenshot that shows running troubleshooter for connection issues.

Konfigurationsproblem – Den här felsökaren kontrollerar om ditt undernät är giltigt för integrering av virtuella nätverk.

Screenshot that shows running troubleshooter for configuration issues.

Problem med borttagning av undernät/VNet – Den här felsökaren kontrollerar om ditt undernät har några lås och om det har några oanvända tjänstassociationslänkar som kan blockera borttagningen av det virtuella nätverket/undernätet.

Nästa steg

Om du vill veta mer om nätverk och Azure Functions: