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. Alla följande nätverksalternativ ger dig viss möjlighet att komma åt resurser utan att använda Internet-dirigerbara adresser eller begränsa Internetåtkomst till en funktionsapp.

Värdmodellerna har olika nivåer av nätverksisolering. Att välja rätt hjälper dig att uppfylla kraven för nätverksisolering.

Du kan vara värd för funktionsappar på ett par olika sätt:

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

Matris med nätverksfunktioner

Funktion Förbrukningsplan Premiumplan Dedikerad plan ASE Kubernetes
Inkommande IP-begränsningar och åtkomst till privata platser ✅Ja ✅Ja ✅Ja ✅Ja ✅Ja
Integrering av virtuella nätverk ❌Nej ✅Ja (regional) ✅Ja (regional och gateway) ✅Ja ✅Ja
Virtuella nätverks utlösare (icke-HTTP) ❌Nej ✅Ja ✅Ja ✅Ja ✅Ja
Hybrid anslutningar (endast Windows) ❌Nej ✅Ja ✅Ja ✅Ja ✅Ja
Utgående IP-begränsningar ❌Nej ✅Ja ✅Ja ✅Ja ✅Ja

Begränsningar för inkommande åtkomst

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

Åtkomstbegränsningar är tillgängliga i Premium, Förbrukningoch App Service.

Anteckning

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

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

Privata slutpunktsanslutningar

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 slut punkt för dina funktioner som finns i Premium -och App Service -planerna.

När du skapar en inkommande privat slut punkts anslutning för functions måste du också ha en DNS-post för att matcha den privata adressen. Som standard skapas en privat DNS-post åt dig när du skapar en privat slut punkt med hjälp av Azure Portal.

Mer information finns i använda privata slut punkter 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 så att den gör utgående anrop till privata slutpunkter.

Använda tjänstens slutpunkter

Genom att använda tjänstslutpunkter kan du begränsa åtkomsten till valda undernät för virtuella Azure-nätverk. Om du vill begränsa åtkomsten till ett visst undernät skapar du en begränsningsregel med en Virtual Network typ. Du kan sedan välja den prenumeration, det virtuella nätverk och det undernät 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 såvida 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 huvudsakligen 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. Din app kommer att konfigureras för tjänstslutpunkter för att de ska aktiveras senare i undernätet.

Skärmbild av fönstret "Lägg till IP-begränsning" med den Virtual Network valda typen.

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 ställer in tjänstslutpunkter finns i Azure Functions åtkomst till privata 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:

  • De dedikerade beräkningsprisnivåer som omfattar Basic, Standard, Premium, Premium v2 och Premium v3.
  • Den 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.

VNet-integreringsfunktionen används i Azure App Service dedikerade beräkningsprisnivåer. Om appen finns i en App Service-miljönfinns den redan i ett virtuellt nätverk och behöver inte använda 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 virtuella nätverk ger din app åtkomst till resurser i ditt virtuella nätverk, men ger inte inkommande privat åtkomst till din app från det virtuella nätverket. Åtkomst till privat webbplats syftar på att göra en app tillgänglig endast från ett privat nätverk, till exempel frå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. VNet-integrationsfunktionen fungerar annorlunda när den används med virtuella nätverk i samma region och med virtuella nätverk i andra regioner. VNet-integreringsfunktionen 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.
  • Integrering av virtuella nätverk som krävs av gateway: 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.

VNet-integrationsfunktionen:

  • Kräver prisnivån 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 integrering av virtuella nätverk inte stöder, till exempel:

  • Montera en enhet.
  • Windows Server Active Directory integrering.
  • 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 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 tillgänglig endast från ett privat nätverk, till exempel från ett virtuellt Azure-nätverk. Integrering av virtuella nätverk är endast 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 ställer in integrering av virtuella nätverk finns i Aktivera Vnet-integrering.

Aktivera VNet-integrering

  1. Gå till bladet Nätverk i funktionsappportalen. Under VNet-integrering väljer du Klicka här för att konfigurera.

  2. Välj Lägg till VNet.

    Välj VNet-integrering

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

    Välj det virtuella nätverket

    • Functions-Premium stöder endast regional VNet-integrering. 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 VNet i en annan region måste du ha en VNet-gateway som etablerats med punkt-till-plats aktiverad. VNet-integrering mellan regioner stöds endast för dedikerade planer.

Under integreringen startas din app 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 VNet.

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

Regional integrering av virtuella nätverk

Med regional VNet-integrering kan din app komma åt:

  • Resurser i ett VNet i samma region som din app.
  • Resurser i virtuella nätverk som är peer-integrerade till det virtuella nätverk som din app är integrerad med.
  • Tjänstslutpunkt för skyddade tjänster.
  • Resurser över Azure ExpressRoute anslutningar.
  • Resurser i det virtuella nätverk som du är integrerad med.
  • Resurser över peer-anslutningar, bland annat Azure ExpressRoute anslutningar.
  • Privata slutpunkter

När du använder VNet-integrering med virtuella nätverk i samma region 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 integreringsundernät. Reglerna för inkommande trafik gäller inte eftersom du inte kan använda VNet-integrering för att ge inkommande åtkomst till din app.
  • Vägtabeller (UDR: Du kan placera en vägtabell i integreringsundernätet för att skicka utgående trafik där du vill.

Anteckning

När du dirigerar all utgående trafik till ditt VNet omfattas den av de NSG:er och UDR:er som tillämpas på ditt integreringsundernät. När VNet ä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 VNet-integrering kan inte använda port 25.

Det finns vissa begränsningar med att använda VNet-integrering med virtuella nätverk i samma region:

  • Du kan inte nå resurser över flera global peering anslutningar.
  • Funktionen är tillgänglig från alla App Service skalningsenheter i Premium V2 och Premium V3. Den är också tillgänglig i Standard, men endast från nyare App Service skalningsenheter. Om du använder en äldre skalningsenhet kan du bara använda funktionen från en Premium V2 App Service plan. Om du vill kontrollera 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 endast på våra senaste skalningsenheter. Du kan skala ned om du vill efter det.
  • Integrationsundernätet kan bara 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 en /28 eller större i ett Azure Resource Manager VNet.
  • Appen och det virtuella nätverket måste finnas i samma region.
  • Du kan inte ta bort ett VNet med en integrerad app. Ta bort integreringen innan du tar bort det virtuella nätverket.
  • Du kan bara ha en regional VNet-integrering per App Service plan. Flera appar i samma App Service plan kan använda samma virtuella nätverk.
  • Du kan inte ändra prenumerationen på en app eller en plan när det finns en app som använder regional VNet-integrering.
  • Din app kan inte matcha adresser i Azure DNS Private Zones utan konfigurationsändringar.

Undernät

VNet-integrering ä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 integreringsundernä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 dubbleras det adressutrymme som krävs 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 det maximala antalet tillgängliga adresser per CIDR-block och hur detta påverkar horisontell skala:

CIDR-blockstorlek Maximalt antal tillgängliga adresser Maximal horisontell skalning (instanser)*
/28 11 5
/27 27 13
/26 59 29

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

Eftersom undernätsstorleken inte kan ändras efter tilldelningen kan du använda ett undernät som är tillräckligt stort för att hantera den skala som din app 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 vill att dina appar i en annan plan ska nå ett VNet 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 VNet-integreringen.

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 och Linux-appar.

Tjänstslutpunkter

Om du vill ge en högre säkerhetsnivå kan du begränsa ett antal Azure-tjänster till ett virtuellt nätverk med hjälp av tjänstslutpunkter. Regional VNet-integrering gör att funktionsappen kan nå Azure-tjänster som skyddas med tjänstslutpunkter. Den här konfigurationen stöds på alla planer som stöder integrering av virtuella nätverk. Du måste göra följande för att få åtkomst till en tjänst slutpunktssäkrad tjänst:

  1. Konfigurera regional VNet-integrering med funktionsappen för att ansluta till ett specifikt undernät.
  2. Gå till måltjänsten och konfigurera tjänstslutpunkter mot integreringsundernätet.

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

Nätverkssäkerhetsgrupper

Du kan använda nätverkssäkerhetsgrupper för att blockera inkommande och utgående trafik till resurser i ett VNet. En app som använder regional VNet-integrering kan använda en nätverkssäkerhetsgrupp för att blockera utgående trafik till resurser i ditt VNet eller Internet. Om du vill blockera trafik till offentliga adresser måste du ha VNet-integrering med Route All aktiverat. Reglerna för inkommande trafik i en NSG gäller inte för din app eftersom VNet-integrering 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 integreringsundernät gäller oavsett vilka vägar som tillämpas på ditt integreringsundernät. Om funktionsappen är VNet-integrerad med Route All aktiverad och du inte har några vägar som påverkar trafik med offentliga adresser i ditt integreringsundernät, kommer all utgående trafik fortfarande att omfattas av NSG:er som tilldelats till ditt integreringsundernät. När Route All inte är aktiverat tillämpas NSG:er endast på RFC1918-trafik.

Vägar

Du kan använda vägtabeller för att dirigera utgående trafik från din app till var du vill. Som standard påverkar vägtabeller endast 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 dina vägtabeller. Vägar som anges i ditt integreringsundernät 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 vägtabell 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.

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

Azure DNS privata zoner

När din app har integrerats med ditt VNet använder den samma DNS-server som ditt VNet är konfigurerat med. Som standard fungerar inte din app med Azure DNS privata zoner. Om du vill Azure DNS med privata zoner måste du lägga till följande appinställningar:

  • WEBSITE_VNET_ROUTE_ALL med värde 1

Den här inställningen skickar alla utgående anrop från din app till ditt VNet och gör att din app kan komma åt en Azure DNS privat zon. Med de här inställningarna kan din app använda Azure DNS genom att fråga den privata DNS-zonen på arbetsnivå.

Privata slutpunkter

Om du vill göra anrop till privata slutpunktermå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 Azure DNS zoner. När ditt VNet inte har någon anpassad DNS-server görs detta automatiskt.
  • Hantera den privata slutpunkten i DNS-servern som används av din app. Om du vill göra detta måste du känna till den privata slutpunktsadressen och sedan peka den slutpunkt 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 Azure DNS privata zoner.

Begränsa ditt lagringskonto till ett virtuellt nätverk

När du skapar en funktionsapp måste du skapa eller länka till ett allmänt Azure Storage som stöder blob-, kö- och tabellagring. 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 Windows SKU:er som stöds av virtuella nätverk i den dedikerade (App Service)-planen och för Premium-planer. Det stöds också med privat DNS för SKU:er som stöds av virtuella Linux-nätverk. Förbrukningsplanen och anpassad DNS på Linux-planer stöds inte. Information om hur du ställer in 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 användas för att hämta hemligheter från ett nätverksbegränsat valv.

Utlösare för virtuellt nätverk (inte 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 och aktivera stöd för utlösare för virtuellt nätverk.
  • Kör funktionsappen i en App Service plan eller App Service-miljön.

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

När du kör en Premium plan kan du ansluta icke-HTTP-utlösarfunktioner till tjänster som körs i ett virtuellt nätverk. Om du vill göra detta måste du aktivera stöd för utlösare för virtuellt nätverk för din funktionsapp. Inställningen Runtime Scale Monitoring (Skalövervakning av körningsmiljö) finns i Azure Portal under > Konfigurationsfunktionskörningsinställningar.

VNETToggle

Du kan också aktivera utlösare för virtuella nätverk med hjälp av följande Azure CLI-kommando:

az resource update -g <resource_group> -n <function_app_name>/config/web --set properties.functionsRuntimeScaleMonitoringEnabled=1 --resource-type Microsoft.Web/sites

Tips

Aktivering av virtuella nätverksutlösare kan påverka programmets prestanda eftersom dina App Service plan-instanser måste övervaka dina utlösare för att avgöra när de ska skalas. Den här effekten är förmodligen mycket liten.

Virtuella nätverksutlösare stöds i version 2.x och senare av Functions-körningen. Följande typer av icke-HTTP-utlösare stöds.

Anknytning Lägsta version
Microsoft.Azure.WebJobs.Extensions. Storage 3.0.10 eller högre
Microsoft.Azure.WebJobs.Extensions.EventHubs 4.1.0 eller högre
Microsoft.Azure.WebJobs.Extensions.ServiceBus 3.2.0 eller högre
Microsoft.Azure.WebJobs.Extensions.CosmosDB 3.0.5 eller högre
Microsoft.Azure.WebJobs.Extensions.DurableTask 2.0.0 eller högre

Viktigt

När du aktiverar stöd för utlösare för virtuellt nätverk skalas endast de utlösartyper som visas i föregående tabell dynamiskt med ditt program. Du kan fortfarande använda utlösare som inte finns i tabellen, men de skalas inte längre än antalet förinstallerade instanser. En fullständig lista över utlösare finns i Utlösare och bindningar.

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

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

Anta till exempel att du vill konfigurera Azure Cosmos DB 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

Hybridanslutningar ä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. Hybridanslutningar är tillgängliga för funktioner som körs på Windows i allt utom förbrukningsplanen.

Som används i Azure Functions korrelerar varje hybridanslutning med en enda kombination av TCP-värd och port. Det innebär att hybridanslutningens slutpunkt kan finnas på alla operativsystem och program så länge du använder en TCP-lyssningsport. Funktionen Hybridanslutningar känner inte till eller bryr sig om vad programprotokollet är eller vad du använder. Det ger bara nätverksåtkomst.

Mer information finns i App Service för hybridanslutningar. Samma konfigurationssteg stöder Azure Functions.

Viktigt

Hybridanslutningar 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ätverket där 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 VNet med Route All aktiverat tvingar du all utgående trafik att skickas till ditt virtuella nätverk, där regler för nätverkssäkerhetsgrupp 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 Azure Functions utgående IP-adress med en NAT-gateway för virtuellt Azure-nätverk.

Automation

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

  • Azure CLI: Använd az functionapp vnet-integration kommandona för att lägga till, visa 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 Functions.

Felsökning

Funktionen är enkel att konfigurera, men det innebär inte att din upplevelse blir problemfri. Om du får problem med att komma åt önskad slutpunkt 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 Portal. 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 laddats går du till fliken Felsökningskonsol. Om du vill Azure Portal den värdbaserade konsolen från din app går du till Verktygskonsol. >

Verktyg

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

nameresolver.exe hostname [optional: DNS Server]

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

Anteckning

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 kombination av värd och port. 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å kombinationen värd och port, och det finns nätverksåtkomst från din app till den angivna värden och porten.

Felsöka åtkomst till resurser i virtuella nätverk

Ett antal saker kan förhindra att appen når en specifik värd och port. I de flesta fall är det en av följande saker:

  • En brandvägg är i vägen. Om du har en brandvägg på vägen kommer tcp-tidsgränsen att gå ut. TCP-timeouten är i det här fallet 21 sekunder. 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-timeouten ä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 är konfigurerat med. Om det inte går att nå kan du ha en brandvägg eller NSG som blockerar åtkomsten till DNS eller så kan den vara ur drift.

Om de här objekten inte besvarar dina problem kan du leta efter saker som:

Regional integrering av virtuella nätverk

  • Är målet en icke-RFC1918-adress och du inte har Route All aktiverat?
  • Finns det en NSG som blockerar utgående från ditt integreringsundernät?
  • Är din lokala gateway konfigurerad för att dirigera trafik tillbaka till Azure om du använder en Azure ExpressRoute vpn- eller VPN-anslutning? Om du kan nå slutpunkter i ditt virtuella nätverk men inte lokalt kontrollerar du vägarna.
  • Har du tillräcklig behörighet för att ange delegering i integreringsundernätet? Under den regionala integreringskonfigurationen för virtuella nätverk delegeras ditt integreringsundernät till Microsoft.Web/serverFarms. VNet-integrationsgränssnittet 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 integreringsundernät för att delegera undernätet. Om du vill delegera integreringsundernätet manuellt går du till Azure Virtual Network-undernätsgränssnittet 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.0.0-172.31.255.255 / 192.168.0.0-192.168.255.255)?
  • Visas gatewayen som att den är upp i portalen? Om din gateway är nere kan du ta den tillbaka.
  • Visas certifikat som synkroniserade, eller misstänker du att nätverkskonfigurationen har ändrats? Om certifikaten inte är synkroniserade eller om du misstänker att en ändring har gjorts i konfigurationen för 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 vägarna.
  • Försöker du använda en gateway för samexistens som stöder både punkt-till-plats och ExpressRoute? Gatewayer för samexistens stöds inte med integrering av virtuella nätverk.

Felsökning av 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 punkt-till-plats-IP-intervallet. Att korsa undernät kräver ofta offentlig åtkomst.
  • Målvärden är nere.
  • Programmet är inte i drift.
  • 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 konfigureras på ett sådant sätt att de förhindrar åtkomst till programvärden och porten från punkt-till-plats-IP-intervallet.

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

Här är några fler felsökningssteg:

  • Anslut till en virtuell dator i ditt virtuella nätverk 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-netconnection. Syntax:

    test-netconnection hostname [optional: -Port]
    
  • Öppna ett program på en virtuell dator och testa åtkomsten till 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 resurs lokalt kontrollerar du om du kan nå resursen från det virtuella nätverket. Använd PowerShell-kommandot test-netconnection för att söka efter TCP-åtkomst. Om den virtuella datorn inte kan nå din lokala resurs kanske VPN- eller ExpressRoute-anslutningen inte har konfigurerats korrekt.

Om din virtuella nätverksvärdbaserade virtuella dator kan nå ditt lokala system, men appen inte kan det, är orsaken förmodligen en av följande orsaker:

  • Vägarna konfigureras inte med undernätet eller punkt-till-plats-adressintervallen 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 den regionala funktionen för integrering av virtuella nätverk.

Nästa steg

Mer information om nätverk och Azure Functions: