Netwerkopties van Azure Functions

In dit artikel worden de netwerkfuncties beschreven die beschikbaar zijn in de hostingopties voor Azure Functions. Alle volgende netwerkopties bieden u de mogelijkheid om toegang te krijgen tot resources zonder internetrouteerbare adressen te gebruiken of om internettoegang tot een functie-app te beperken.

De hostingmodellen hebben verschillende niveaus van netwerkisolatie beschikbaar. Als u de juiste optie kiest, kunt u voldoen aan de vereisten voor netwerkisolatie.

U kunt functie-apps op verschillende manieren hosten:

  • U kunt kiezen uit abonnementsopties die worden uitgevoerd op een infrastructuur met meerdere tenants, met verschillende niveaus van connectiviteit van virtuele netwerken en schaalopties:
    • Het verbruiksplan wordt dynamisch geschaald als reactie op belasting en biedt minimale opties voor netwerkisolatie.
    • Het Premium-abonnement wordt ook dynamisch geschaald en biedt uitgebreidere netwerkisolatie.
    • Het Azure App Service-plan werkt op een vaste schaal en biedt netwerkisolatie die vergelijkbaar is met het Premium-abonnement.
  • U kunt functies uitvoeren in een App Service-omgeving. Deze methode implementeert uw functie in uw virtuele netwerk en biedt volledige netwerkbeheer en isolatie.

Matrix van netwerkfuncties

Functie Verbruiksabonnement Premium-abonnement Toegewezen abonnement ASE
Binnenkomende IP-beperkingen ✅Ja ✅Ja ✅Ja ✅Ja
Binnenkomende privé-eindpunten ❌No ✅Ja ✅Ja ✅Ja
Integratie van virtueel netwerk ❌No ✅Ja (regionaal) ✅Ja (regionaal en gateway) ✅Ja
Triggers voor virtuele netwerken (niet-HTTP) ❌No ✅Ja ✅Ja ✅Ja
Hybride verbindingen (alleen Windows) ❌No ✅Ja ✅Ja ✅Ja
Uitgaande IP-beperkingen ❌No ✅Ja ✅Ja ✅Ja

Quickstartbronnen

Gebruik de volgende resources om snel aan de slag te gaan met Azure Functions-netwerkscenario's. In het artikel wordt verwezen naar deze resources.

Functies voor inkomend netwerk

Met de volgende functies kunt u binnenkomende aanvragen filteren op uw functie-app.

Beperkingen voor binnenkomende toegang

U kunt toegangsbeperkingen gebruiken om een op prioriteit geordende lijst met IP-adressen te definiëren die toegang tot uw app hebben toegestaan of geweigerd. De lijst kan IPv4- en IPv6-adressen of specifieke subnetten voor virtuele netwerken bevatten met behulp van service-eindpunten. Wanneer er een of meer vermeldingen zijn, bestaat er een impliciete 'alles weigeren' aan het einde van de lijst. IP-beperkingen werken met alle opties voor functiehosting.

Toegangsbeperkingen zijn beschikbaar in Premium, Consumption en App Service.

Notitie

Als er netwerkbeperkingen zijn ingesteld, kunt u alleen implementeren vanuit uw virtuele netwerk of wanneer u het IP-adres van de computer hebt geplaatst die u gebruikt voor toegang tot Azure Portal in de lijst met veilige geadresseerden. U kunt de functie echter wel beheren met behulp van de portal.

Zie Azure-app Statische toegangsbeperkingen voor services voor meer informatie.

Privé-eindpunten

Azure Private Endpoint is een netwerkinterface die u privé en veilig verbindt met een service die wordt ondersteund door Azure Private Link. Private Endpoint maakt gebruik van een privé-IP-adres van uw virtuele netwerk, waarbij de service effectief in uw virtuele netwerk wordt geplaatst.

U kunt een privé-eindpunt gebruiken voor uw functies die worden gehost in de Premium- en App Service-abonnementen.

Als u privé-eindpunten wilt aanroepen, moet u ervoor zorgen dat uw DNS-zoekopdrachten worden omgezet in het privé-eindpunt. U kunt dit gedrag op een van de volgende manieren afdwingen:

  • Integreren met privézones van Azure DNS. Wanneer uw virtuele netwerk geen aangepaste DNS-server heeft, wordt dit automatisch gedaan.
  • Beheer het privé-eindpunt in de DNS-server die door uw app wordt gebruikt. Hiervoor moet u het adres van het privé-eindpunt weten en vervolgens het eindpunt aanwijzen dat u naar dat adres probeert te bereiken met behulp van een A-record.
  • Configureer uw eigen DNS-server om door te sturen naar privézones van Azure DNS.

Zie voor meer informatie het gebruik van privé-eindpunten voor web-apps.

Als u andere services wilt aanroepen die een privé-eindpuntverbinding hebben, zoals opslag of servicebus, moet u uw app configureren om uitgaande aanroepen naar privé-eindpunten te maken. Ga naar Uw opslagaccount beperken tot een virtueel netwerk voor meer informatie over het gebruik van privé-eindpunten met het opslagaccount voor uw functie-app.

Service-eindpunten

Met behulp van service-eindpunten kunt u veel Azure-services beperken tot geselecteerde subnetten voor virtuele netwerken om een hoger beveiligingsniveau te bieden. Dankzij regionale integratie van virtuele netwerken kan uw functie-app Azure-services bereiken die zijn beveiligd met service-eindpunten. Deze configuratie wordt ondersteund voor alle plannen die ondersteuning bieden voor integratie van virtuele netwerken. Als u toegang wilt krijgen tot een service met eindpuntbeveiliging, moet u het volgende doen:

  1. Configureer regionale integratie van virtueel netwerk met uw functie-app om verbinding te maken met een specifiek subnet.
  2. Ga naar de doelservice en configureer service-eindpunten op basis van het integratiesubnet.

Zie Service-eindpunten voor virtuele netwerken voor meer informatie.

Service-eindpunten gebruiken

Als u de toegang tot een specifiek subnet wilt beperken, maakt u een beperkingsregel met een type virtueel netwerk . Vervolgens kunt u het abonnement, het virtuele netwerk en het subnet selecteren waartoe u toegang wilt toestaan of weigeren.

Als service-eindpunten nog niet zijn ingeschakeld Microsoft.Web voor het geselecteerde subnet, worden deze automatisch ingeschakeld, tenzij u het selectievakje Ontbrekende Microsoft.Web-service-eindpunten negeren inschakelt. Het scenario waarin u service-eindpunten voor de app wilt inschakelen, maar niet het subnet, is voornamelijk afhankelijk van of u over de machtigingen beschikt om deze in te schakelen voor het subnet.

Als u iemand anders nodig hebt om service-eindpunten in te schakelen in het subnet, schakelt u het selectievakje Ontbrekende Microsoft.Web-service-eindpunten negeren in. Uw app is geconfigureerd voor service-eindpunten in afwachting dat ze later in het subnet zijn ingeschakeld.

Screenshot of the

U kunt service-eindpunten niet gebruiken om de toegang te beperken tot apps die worden uitgevoerd in een App Service-omgeving. Wanneer uw app zich in een App Service-omgeving bevindt, kunt u de toegang tot de app beheren door IP-toegangsregels toe te passen.

Zie Toegang tot privésites van Azure Functions tot stand brengen voor meer informatie over het instellen van service-eindpunten.

Integratie van virtueel netwerk

Dankzij de integratie van een virtueel netwerk heeft uw functie-app toegang tot resources in een virtueel netwerk. Azure Functions ondersteunt twee soorten integratie van virtuele netwerken:

  • De toegewezen prijscategorieën voor berekeningen, waaronder Basic, Standard, Premium, Premium v2 en Premium v3.
  • De App Service Environment, die rechtstreeks in uw virtuele netwerk wordt geïmplementeerd met toegewezen ondersteunende infrastructuur en gebruikmaakt van de prijscategorieën Isolated en Isolated v2.

De functie voor integratie van virtuele netwerken wordt gebruikt in Azure-app Service-prijscategorieën voor toegewezen rekenprocessen. Als uw app zich in een App Service-omgeving bevindt, bevindt deze zich al in een virtueel netwerk en hoeft u de VNet-integratiefunctie niet te gebruiken om resources in hetzelfde virtuele netwerk te bereiken. Zie App Service-netwerkfuncties voor meer informatie over alle netwerkfuncties.

Integratie van virtuele netwerken biedt uw app toegang tot resources in uw virtuele netwerk, maar verleent geen binnenkomende privétoegang tot uw app vanuit het virtuele netwerk. Toegang tot privésites verwijst naar het alleen toegankelijk maken van een app vanuit een particulier netwerk, zoals vanuit een virtueel Azure-netwerk. Integratie van virtuele netwerken wordt alleen gebruikt om uitgaande aanroepen vanuit uw app naar uw virtuele netwerk te maken. De functie voor integratie van virtuele netwerken gedraagt zich anders wanneer deze wordt gebruikt met virtuele netwerken in dezelfde regio en met virtuele netwerken in andere regio's. De functie voor integratie van virtuele netwerken heeft twee variaties:

  • Regionale integratie van virtuele netwerken: wanneer u verbinding maakt met virtuele netwerken in dezelfde regio, moet u een toegewezen subnet hebben in het virtuele netwerk waarmee u integreert.
  • Gateway-vereiste integratie van virtuele netwerken: wanneer u rechtstreeks verbinding maakt met virtuele netwerken in andere regio's of met een klassiek virtueel netwerk in dezelfde regio, hebt u een Virtuele Azure-netwerkgateway nodig die is gemaakt in het virtuele doelnetwerk.

De functie voor integratie van virtuele netwerken:

Er zijn enkele dingen die integratie van virtuele netwerken niet ondersteunt, zoals:

  • Een station koppelen.
  • Windows Server Active Directory-domeindeelname.
  • Netbios.

Gateway-vereiste integratie van virtuele netwerken biedt alleen toegang tot resources in het virtuele doelnetwerk of in netwerken die zijn verbonden met het virtuele doelnetwerk met peering of VPN's. Gateway-vereiste integratie van virtuele netwerken maakt geen toegang mogelijk tot resources die beschikbaar zijn in Azure ExpressRoute-verbindingen of werkt met service-eindpunten.

Ongeacht welke versie wordt gebruikt, biedt integratie van virtuele netwerken uw app toegang tot resources in uw virtuele netwerk, maar verleent deze geen binnenkomende privétoegang tot uw app vanuit het virtuele netwerk. Toegang tot privésites verwijst naar het alleen toegankelijk maken van uw app vanuit een particulier netwerk, zoals vanuit een virtueel Azure-netwerk. Integratie van virtuele netwerken is alleen bedoeld voor het maken van uitgaande aanroepen vanuit uw app in uw virtuele netwerk.

Integratie van virtuele netwerken in Azure Functions maakt gebruik van een gedeelde infrastructuur met App Service-web-apps. Zie voor meer informatie over de twee typen integratie van virtuele netwerken:

Zie Integratie van virtuele netwerken inschakelen voor meer informatie over het instellen van integratie van virtuele netwerken.

Integratie van virtuele netwerken inschakelen

  1. Selecteer Netwerken in uw functie-app in Azure Portal en selecteer vervolgens onder VNet-integratie klik hier om te configureren.

  2. Selecteer VNet toevoegen.

    Select VNet Integration

  3. De vervolgkeuzelijst bevat alle virtuele Netwerken van Azure Resource Manager in uw abonnement in dezelfde regio. Selecteer het virtuele netwerk waarmee u wilt integreren.

    Select the VNet

    • Het Functions Premium-abonnement ondersteunt alleen regionale integratie van virtuele netwerken. Als het virtuele netwerk zich in dezelfde regio bevindt, maakt u een nieuw subnet of selecteert u een leeg, bestaand subnet.

    • Als u een virtueel netwerk in een andere regio wilt selecteren, moet een gateway voor een virtueel netwerk zijn ingericht met punt-naar-site ingeschakeld. Integratie van virtuele netwerken tussen regio's wordt alleen ondersteund voor Toegewezen plannen, maar globale peerings werken met regionale virtuele netwerkintegratie.

Tijdens de integratie wordt uw app opnieuw opgestart. Wanneer de integratie is voltooid, ziet u details over het virtuele netwerk waarmee u bent geïntegreerd. Route All is standaard ingeschakeld en al het verkeer wordt doorgestuurd naar uw virtuele netwerk.

Als u alleen uw privéverkeer (RFC1918 verkeer) wilt routeren, volgt u de stappen in de documentatie van de App Service.

Integratie van regionaal virtueel netwerk

Door regionale integratie van virtuele netwerken te gebruiken, heeft uw app toegang tot:

  • Resources in hetzelfde virtuele netwerk als uw app.
  • Resources in virtuele netwerken die zijn gekoppeld aan het virtuele netwerk waarmee uw app is geïntegreerd.
  • Beveiligde services voor service-eindpunten.
  • Resources tussen Azure ExpressRoute-verbindingen.
  • Resources tussen gekoppelde verbindingen, waaronder Azure ExpressRoute-verbindingen.
  • Privé-eindpunten

Wanneer u regionale integratie van virtuele netwerken gebruikt, kunt u de volgende Azure-netwerkfuncties gebruiken:

  • Netwerkbeveiligingsgroepen (NSG's): u kunt uitgaand verkeer blokkeren met een NSG die in uw integratiesubnet wordt geplaatst. De regels voor inkomend verkeer zijn niet van toepassing omdat u geen integratie van virtuele netwerken kunt gebruiken om binnenkomende toegang tot uw app te bieden.
  • Routetabellen (UDR's): u kunt een routetabel in het integratiesubnet plaatsen om uitgaand verkeer naar wens te verzenden.

Notitie

Wanneer u al uw uitgaande verkeer naar uw virtuele netwerk routeert, is dit onderhevig aan de NSG's en UDR's die worden toegepast op uw integratiesubnet. Wanneer een virtueel netwerk is geïntegreerd, wordt het uitgaande verkeer van uw functie-app naar openbare IP-adressen nog steeds verzonden vanaf de adressen die worden vermeld in uw app-eigenschappen, tenzij u routes opgeeft die het verkeer ergens anders omleiden.

Integratie van regionaal virtueel netwerk kan poort 25 niet gebruiken.

Er zijn enkele beperkingen met het gebruik van een virtueel netwerk:

  • De functie is beschikbaar vanuit alle App Service-implementaties in Premium V2 en Premium V3. Het is ook beschikbaar in Standard, maar alleen van nieuwere App Service-implementaties. Als u een oudere implementatie gebruikt, kunt u de functie alleen gebruiken vanuit een Premium V2 App Service-plan. Als u zeker wilt weten dat u de functie in een Standard App Service-plan kunt gebruiken, maakt u uw app in een Premium V3 App Service-plan. Deze abonnementen worden alleen ondersteund voor onze nieuwste implementaties. U kunt desgewenst omlaag schalen.
  • Het integratiesubnet kan slechts door één App Service-plan worden gebruikt.
  • De functie kan niet worden gebruikt door geïsoleerde plan-apps die zich in een App Service-omgeving bevinden.
  • Voor de functie is een ongebruikt subnet vereist dat een /28 of groter is in een virtueel Azure Resource Manager-netwerk.
  • De app en het virtuele netwerk moeten zich in dezelfde regio bevinden.
  • U kunt een virtueel netwerk met een geïntegreerde app niet verwijderen. Verwijder de integratie voordat u het virtuele netwerk verwijdert.
  • U kunt slechts één regionale integratie van virtuele netwerken per App Service-plan hebben. Meerdere apps in hetzelfde App Service-plan kunnen gebruikmaken van hetzelfde integratiesubnet.
  • U kunt het abonnement van een app of een plan niet wijzigen terwijl er een app is die gebruikmaakt van regionale integratie van virtuele netwerken.

Subnetten

Integratie van virtuele netwerken is afhankelijk van een toegewezen subnet. Wanneer u een subnet inricht, verliest het Azure-subnet vanaf het begin vijf IP-adressen. Eén adres wordt gebruikt vanuit het integratiesubnet voor elk planexemplaren. Wanneer u uw app schaalt naar vier exemplaren, worden er vier adressen gebruikt.

Wanneer u de grootte omhoog of omlaag schaalt, wordt de vereiste adresruimte gedurende een korte periode verdubbeld. Dit is van invloed op de werkelijke, beschikbare ondersteunde exemplaren voor een bepaalde subnetgrootte. In de volgende tabel ziet u zowel de maximaal beschikbare adressen per CIDR-blok als het effect dat dit heeft op horizontale schaal:

CIDR-blokgrootte Maximaal beschikbare adressen Maximale horizontale schaal (exemplaren)*
/28 11 5
/27 27 13
/26 59 29

*Hierbij wordt ervan uitgegaan dat u op een bepaald moment omhoog of omlaag moet schalen in grootte of SKU.

Omdat de grootte van het subnet niet kan worden gewijzigd na de toewijzing, gebruikt u een subnet dat groot genoeg is om te voldoen aan de schaal die uw app kan bereiken. Als u problemen met subnetcapaciteit voor Functions Premium-abonnementen wilt voorkomen, moet u een /24 gebruiken met 256 adressen voor Windows en een /26 met 64 adressen voor Linux. Wanneer u subnetten maakt in Azure Portal als onderdeel van de integratie met het virtuele netwerk, is een minimale grootte van respectievelijk /24 en /26 vereist voor Windows en Linux.

Wanneer u wilt dat uw apps in een ander plan een virtueel netwerk bereiken dat al is verbonden met apps in een ander abonnement, selecteert u een ander subnet dan het subnet dat wordt gebruikt door de bestaande virtuele netwerkintegratie.

De functie wordt volledig ondersteund voor zowel Windows- als Linux-apps, inclusief aangepaste containers. Alle gedragingen werken hetzelfde tussen Windows-apps en Linux-apps.

Netwerkbeveiligingsgroepen

U kunt netwerkbeveiligingsgroepen gebruiken om inkomend en uitgaand verkeer naar resources in een virtueel netwerk te blokkeren. Een app die gebruikmaakt van regionale integratie van virtuele netwerken kan een netwerkbeveiligingsgroep gebruiken om uitgaand verkeer naar resources in uw virtuele netwerk of internet te blokkeren. Als u verkeer naar openbare adressen wilt blokkeren, moet u virtuele netwerkintegratie hebben met Route All ingeschakeld. De regels voor inkomend verkeer in een NSG zijn niet van toepassing op uw app, omdat de integratie van virtuele netwerken alleen van invloed is op uitgaand verkeer van uw app.

Gebruik de functie Toegangsbeperkingen om inkomend verkeer naar uw app te beheren. Een NSG die wordt toegepast op uw integratiesubnet is van kracht, ongeacht de routes die worden toegepast op uw integratiesubnet. Als uw functie-app is geïntegreerd met Route All ingeschakeld en u geen routes hebt die van invloed zijn op openbaar adresverkeer in uw integratiesubnet, is al uw uitgaande verkeer nog steeds onderworpen aan NSG's die zijn toegewezen aan uw integratiesubnet. Als Route All niet is ingeschakeld, worden NSG's alleen toegepast op RFC1918 verkeer.

Routes

U kunt routetabellen gebruiken om uitgaand verkeer van uw app naar de gewenste locatie te routeren. Routetabellen zijn standaard alleen van invloed op uw RFC1918 doelverkeer. Wanneer Route All is ingeschakeld, worden al uw uitgaande oproepen beïnvloed. Wanneer Route All is uitgeschakeld, wordt alleen privéverkeer (RFC1918) beïnvloed door uw routetabellen. Routes die zijn ingesteld op uw integratiesubnet, hebben geen invloed op antwoorden op binnenkomende app-aanvragen. Algemene bestemmingen kunnen firewallapparaten of gateways bevatten.

Als u al het uitgaande verkeer on-premises wilt routeren, kunt u een routetabel gebruiken om al het uitgaande verkeer naar uw ExpressRoute-gateway te verzenden. Als u verkeer naar een gateway routeert, moet u routes instellen in het externe netwerk om antwoorden terug te sturen.

BGP-routes (Border Gateway Protocol) zijn ook van invloed op uw app-verkeer. Als u BGP-routes hebt van een ExpressRoute-gateway, wordt het uitgaande verkeer van uw app beïnvloed. BGP-routes zijn standaard alleen van invloed op uw RFC1918 doelverkeer. Wanneer uw functie-app is geïntegreerd met Route All ingeschakeld, kan al het uitgaande verkeer worden beïnvloed door uw BGP-routes.

Azure DNS Private Zones

Nadat uw app is geïntegreerd met uw virtuele netwerk, wordt dezelfde DNS-server gebruikt waarmee uw virtuele netwerk is geconfigureerd en werkt deze met de privézones van Azure DNS die zijn gekoppeld aan het virtuele netwerk.

Uw opslagaccount beperken tot een virtueel netwerk

Notitie

Als u snel een functie-app wilt implementeren met privé-eindpunten die zijn ingeschakeld voor het opslagaccount, raadpleegt u de volgende sjabloon: Functie-app met privé-eindpunten van Azure Storage.

Wanneer u een functie-app maakt, moet u een Azure Storage-account voor algemeen gebruik maken of koppelen dat ondersteuning biedt voor Blob-, Queue- en Table-opslag. U kunt dit opslagaccount vervangen door een account dat is beveiligd met service-eindpunten of privé-eindpunten.

Deze functie wordt ondersteund voor alle virtuele Windows- en Linux-netwerk-ondersteunde SKU's in het Toegewezen (App Service)-abonnement en voor de Premium-abonnementen. Het verbruiksabonnement wordt niet ondersteund. Zie Uw opslagaccount beperken tot een virtueel netwerk voor meer informatie over het instellen van een functie met een opslagaccount dat is beperkt tot een privénetwerk.

Key Vault-referenties gebruiken

U kunt Azure Key Vault-verwijzingen gebruiken om geheimen uit Azure Key Vault te gebruiken in uw Azure Functions-toepassing zonder dat er codewijzigingen nodig zijn. Azure Key Vault is een service die gecentraliseerd geheimenbeheer biedt, met volledige controle over het toegangsbeleid en de auditgeschiedenis.

Als de integratie van virtuele netwerken is geconfigureerd voor de app, kunnen Key Vault-verwijzingen worden gebruikt om geheimen op te halen uit een kluis met netwerkbeperking.

Triggers voor virtuele netwerken (niet-HTTP)

Op dit moment kunt u niet-HTTP-triggerfuncties gebruiken vanuit een virtueel netwerk op twee manieren:

  • Voer uw functie-app uit in een Premium-abonnement en schakel ondersteuning voor virtuele netwerktriggers in.
  • Voer uw functie-app uit in een App Service-plan of App Service-omgeving.

Premium-abonnement met triggers voor virtuele netwerken

Met het Premium-abonnement kunt u functies maken die worden geactiveerd door services in een virtueel netwerk. Deze niet-HTTP-triggers worden virtuele netwerktriggers genoemd.

Standaard zorgen virtuele netwerktriggers ervoor dat uw functie-app niet groter wordt dan het aantal vooraf verwarmde exemplaren. Bepaalde extensies ondersteunen echter virtuele netwerktriggers die ervoor zorgen dat uw functie-app dynamisch wordt geschaald. U kunt deze dynamische schaalbewaking inschakelen in uw functie-app voor ondersteunde extensies op een van de volgende manieren:

  1. Navigeer in Azure Portal naar uw functie-app.

  2. Selecteer onder Instellingen Configuratie en stel vervolgens op het tabblad Runtime-runtime-instellingen Runtime-schaalbewakingin op Aan.

  3. Selecteer Opslaan om de configuratie van de functie-app bij te werken en start de app opnieuw op.

VNETToggle

Tip

Het inschakelen van de bewaking van triggers voor virtuele netwerken kan invloed hebben op de prestaties van uw toepassing, hoewel deze impact waarschijnlijk erg klein is.

Ondersteuning voor dynamische schaalbewaking van triggers voor virtuele netwerken is niet beschikbaar in versie 1.x van de Functions-runtime.

De extensies in deze tabel bieden ondersteuning voor dynamische schaalbewaking van triggers voor virtuele netwerken. Als u de beste schaalprestaties wilt verkrijgen, moet u upgraden naar versies die ook ondersteuning bieden voor schaalaanpassing op basis van doelen.

Extensie (minimale versie) Alleen bewaking van runtimeschaal Met schalen op basis van doel
Microsoft.Azure.WebJobs.Extensions.CosmosDB > 3.0.5 > 4.1.0
Microsoft.Azure.WebJobs.Extensions.DurableTask > 2.0.0 N.v.t.
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*

* Alleen wachtrijopslag.

Belangrijk

Wanneer u bewaking van virtuele netwerktriggers inschakelt, kunnen alleen triggers voor deze extensies ertoe leiden dat uw app dynamisch wordt geschaald. U kunt nog steeds triggers gebruiken van extensies die zich niet in deze tabel bevinden, maar ze veroorzaken geen schaalaanpassing buiten het vooraf opgewarmde aantal exemplaren. Zie Triggers en bindingen voor een volledige lijst met alle trigger- en bindingsextensies.

App Service-plan en App Service Environment met triggers voor virtuele netwerken

Wanneer uw functie-app wordt uitgevoerd in een App Service-plan of een App Service-omgeving, kunt u niet-HTTP-triggerfuncties gebruiken. Als u wilt dat uw functies correct worden geactiveerd, moet u zijn verbonden met een virtueel netwerk met toegang tot de resource die is gedefinieerd in de triggerverbinding.

Stel dat u Azure Cosmos DB wilt configureren om alleen verkeer van een virtueel netwerk te accepteren. In dit geval moet u uw functie-app implementeren in een App Service-plan dat integratie van virtuele netwerken met dat virtuele netwerk biedt. Dankzij integratie kan een functie worden geactiveerd door die Azure Cosmos DB-resource.

Hybride verbindingen

Hybride Verbinding maken ionen is een functie van Azure Relay die u kunt gebruiken voor toegang tot toepassingsbronnen in andere netwerken. Het biedt toegang vanuit uw app tot een toepassingseindpunt. U kunt deze niet gebruiken om toegang te krijgen tot uw toepassing. Hybride Verbinding maken ionen zijn beschikbaar voor functies die worden uitgevoerd in Windows in alle behalve het verbruiksabonnement.

Zoals in Azure Functions wordt gebruikt, correleert elke hybride verbinding met één TCP-host en -poortcombinatie. Dit betekent dat het eindpunt van de hybride verbinding zich op elk besturingssysteem en elke toepassing kan bevinden zolang u toegang hebt tot een TCP-luisterpoort. De functie Hybride Verbinding maken ions weet of geeft niet aan wat het toepassingsprotocol is of waartoe u toegang hebt. Het biedt alleen netwerktoegang.

Zie de App Service-documentatie voor hybride Verbinding maken ions voor meer informatie. Dezelfde configuratiestappen ondersteunen Azure Functions.

Belangrijk

Hybride Verbinding maken ionen worden alleen ondersteund in Windows-abonnementen. Linux wordt niet ondersteund.

Uitgaande IP-beperkingen

Uitgaande IP-beperkingen zijn beschikbaar in een Premium-abonnement, App Service-plan of App Service Environment. U kunt uitgaande beperkingen configureren voor het virtuele netwerk waar uw App Service-omgeving wordt geïmplementeerd.

Wanneer u een functie-app integreert in een Premium-abonnement of een App Service-plan met een virtueel netwerk, kan de app standaard uitgaande aanroepen naar internet maken. Door uw functie-app te integreren met een virtueel netwerk met Route All ingeschakeld, dwingt u af dat al het uitgaande verkeer wordt verzonden naar uw virtuele netwerk, waarbij regels voor netwerkbeveiligingsgroepen kunnen worden gebruikt om verkeer te beperken.

Voor meer informatie over het beheren van het uitgaande IP-adres met behulp van een virtueel netwerk, raadpleegt u de zelfstudie: Uitgaande IP-adressen van Azure Functions beheren met een NAT-gateway van een virtueel Azure-netwerk.

Automatisering

Met de volgende API's kunt u programmatisch regionale virtuele netwerkintegraties beheren:

  • Azure CLI: gebruik de az functionapp vnet-integration opdrachten om een regionale virtuele netwerkintegratie toe te voegen, weer te geven of te verwijderen.
  • ARM-sjablonen: Regionale integratie van virtueel netwerk kan worden ingeschakeld met behulp van een Azure Resource Manager-sjabloon. Zie deze QuickStart-sjabloon voor Functions voor een volledig voorbeeld.

Overwegingen voor testen

Wanneer u functies in een functie-app met privé-eindpunten test, moet u uw tests uitvoeren vanuit hetzelfde virtuele netwerk, zoals op een virtuele machine (VM) in dat netwerk. Als u de optie Code + Test in de portal van die VM wilt gebruiken, moet u de volgende CORS-origins toevoegen aan uw functie-app:

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

Problemen oplossen

De functie is eenvoudig in te stellen, maar dat betekent niet dat uw ervaring probleemloos is. Als u problemen ondervindt bij het openen van het gewenste eindpunt, zijn er enkele hulpprogramma's die u kunt gebruiken om de connectiviteit vanuit de app-console te testen. Er zijn twee consoles die u kunt gebruiken. De ene is de Kudu-console en de andere is de console in Azure Portal. Als u de Kudu-console vanuit uw app wilt bereiken, gaat u naar Tools>Kudu. U kunt ook de Kudo-console bereiken op [sitename].scm.azurewebsites.net. Nadat de website is geladen, gaat u naar het tabblad Foutopsporingsconsole. Als u vanuit uw app toegang wilt krijgen tot de door de Azure-portal gehoste console, gaat u naar Tools>Console.

Extra

In systeemeigen Windows-apps werken de hulpprogramma's ping, nslookup en tracert niet via de console vanwege beveiligingsbeperkingen (ze werken in aangepaste Windows-containers). Om de leegte te vullen, worden er twee afzonderlijke hulpmiddelen toegevoegd. Om de DNS-functionaliteit te testen, hebben we een hulpprogramma met de naam nameresolver.exe toegevoegd. De syntaxis is:

nameresolver.exe hostname [optional: DNS Server]

U kunt nameresolver gebruiken om de hostnamen te controleren waarop uw app afhankelijk is. Op deze manier kunt u testen of u iets verkeerd hebt geconfigureerd met uw DNS of mogelijk geen toegang hebt tot uw DNS-server. U kunt de DNS-server zien die uw app in de console gebruikt door de omgevingsvariabelen te bekijken WEBSITE_DNS_SERVER en WEBSITE_DNS_ALT_SERVER.

Notitie

Het hulpprogramma nameresolver.exe werkt momenteel niet in aangepaste Windows-containers.

U kunt het volgende hulpprogramma gebruiken om te testen op TCP-connectiviteit met een combinatie van host en poort. Dit hulpprogramma heet tcpping en de syntaxis is:

tcpping.exe hostname [optional: port]

Het tcpping-hulpprogramma geeft aan of u een specifieke host en poort kunt bereiken. Het kan alleen slagen als er een toepassing luistert op de combinatie van de host en poort en er is netwerktoegang van uw app naar de opgegeven host en poort.

Fouten opsporen in toegang tot door een virtueel netwerk gehoste resources

Een aantal dingen kan voorkomen dat uw app een specifieke host en poort bereikt. Meestal is het een van deze dingen:

  • Een firewall is in de weg. Als u een firewall hebt, raakt u de TCP-time-out. De TCP-time-out is in dit geval 21 seconden. Gebruik het tcpping-hulpprogramma om de connectiviteit te testen. TCP-time-outs kunnen worden veroorzaakt door veel dingen buiten firewalls, maar begin daar.
  • DNS is niet toegankelijk. De DNS-time-out is 3 seconden per DNS-server. Als u twee DNS-servers hebt, is de time-out 6 seconden. Gebruik nameresolver om te zien of DNS werkt. U kunt nslookup niet gebruiken, omdat hiermee niet de DNS wordt gebruikt waarmee uw virtuele netwerk is geconfigureerd. Als u niet toegankelijk bent, kunt u een firewall of NSG hebben die de toegang tot DNS blokkeert of de toegang tot DNS kan worden geblokkeerd.

Als deze items uw problemen niet beantwoorden, zoekt u eerst naar zaken zoals:

Integratie van regionaal virtueel netwerk

  • Is uw bestemming een niet-RFC1918 adres en hebt u Route All niet ingeschakeld?
  • Is er een NSG die uitgaand verkeer van uw integratiesubnet blokkeert?
  • Als u azure ExpressRoute of een VPN gebruikt, is uw on-premises gateway geconfigureerd voor het routeren van verkeer naar Azure? Als u eindpunten in uw virtuele netwerk kunt bereiken, maar niet on-premises, controleert u uw routes.
  • Hebt u voldoende machtigingen om delegatie in te stellen voor het integratiesubnet? Tijdens de configuratie van regionale virtuele netwerkintegratie wordt uw integratiesubnet gedelegeerd aan Microsoft.Web/serverFarms. De gebruikersinterface voor VNet-integratie delegeert het subnet automatisch naar Microsoft.Web/serverFarms. Als uw account niet over voldoende netwerkmachtigingen beschikt om delegatie in te stellen, hebt u iemand nodig die kenmerken in uw integratiesubnet kan instellen om het subnet te delegeren. Als u het integratiesubnet handmatig wilt delegeren, gaat u naar de gebruikersinterface van het azure Virtual Network-subnet en stelt u de delegatie in voor Microsoft.Web/serverFarms.

Gateway-vereiste integratie van virtueel netwerk

  • Is het punt-naar-site-adresbereik in de RFC 1918-bereiken (10.0.0.0-10.255.255.255 / 172.16.16.10.0-172.31.255.255 / 192.168.0.0-192.168.255.255)?
  • Wordt de gateway weergegeven als in de portal? Als uw gateway niet beschikbaar is, brengt u deze weer omhoog.
  • Worden certificaten gesynchroniseerd of vermoedt u dat de netwerkconfiguratie is gewijzigd? Als uw certificaten niet zijn gesynchroniseerd of als u vermoedt dat er een wijziging is aangebracht in de configuratie van uw virtuele netwerk die niet is gesynchroniseerd met uw ASP's, selecteert u Netwerk synchroniseren.
  • Als u een VPN gebruikt, is de on-premises gateway geconfigureerd voor het routeren van verkeer naar Azure? Als u eindpunten in uw virtuele netwerk kunt bereiken, maar niet on-premises, controleert u uw routes.
  • Wilt u een co-existentiegateway gebruiken die zowel punt-naar-site als ExpressRoute ondersteunt? Co-existentiegateways worden niet ondersteund met integratie van virtuele netwerken.

Netwerkproblemen opsporen is een uitdaging omdat u niet kunt zien wat de toegang tot een specifieke combinatie van host:poort blokkeert. Enkele oorzaken zijn:

  • U hebt een firewall op uw host die de toegang tot de toepassingspoort van uw punt-naar-site-IP-bereik voorkomt. Voor het kruisen van subnetten is vaak openbare toegang vereist.
  • Uw doelhost is offline.
  • Uw toepassing is niet beschikbaar.
  • U had het verkeerde IP- of hostnaam.
  • Uw toepassing luistert op een andere poort dan u had verwacht. U kunt uw proces-id vergelijken met de luisterpoort met behulp van 'netstat -aon' op de eindpunthost.
  • Uw netwerkbeveiligingsgroepen worden zodanig geconfigureerd dat ze de toegang tot uw toepassingshost en -poort van uw punt-naar-site-IP-bereik voorkomen.

U weet niet welk adres uw app daadwerkelijk gebruikt. Dit kan elk adres in het integratiesubnet of punt-naar-site-adresbereik zijn, dus u moet toegang vanuit het hele adresbereik toestaan.

Meer stappen voor foutopsporing zijn:

  • Verbinding maken naar een virtuele machine in uw virtuele netwerk en probeer uw resourcehost:poort daar te bereiken. Als u wilt testen op TCP-toegang, gebruikt u de PowerShell-opdracht Test-Net Verbinding maken ion. De syntaxis is:
Test-NetConnection hostname [optional: -Port]
  • Open een toepassing op een VIRTUELE machine en test de toegang tot die host en poort vanuit de console vanuit uw app met behulp van tcpping.

On-premises resources

Als uw app geen on-premises resource kan bereiken, controleert u of u de resource vanuit uw virtuele netwerk kunt bereiken. Gebruik de PowerShell-opdracht Test-Net Verbinding maken ion om te controleren op TCP-toegang. Als uw VM uw on-premises resource niet kan bereiken, is uw VPN- of ExpressRoute-verbinding mogelijk niet juist geconfigureerd.

Als uw virtuele netwerk-gehoste VM uw on-premises systeem kan bereiken, maar uw app dat niet kan, is de oorzaak waarschijnlijk een van de volgende redenen:

  • Uw routes zijn niet geconfigureerd met uw subnet of punt-naar-site-adresbereiken in uw on-premises gateway.
  • Uw netwerkbeveiligingsgroepen blokkeren de toegang voor uw punt-naar-site IP-bereik.
  • Uw on-premises firewalls blokkeren verkeer van uw punt-naar-site-IP-bereik.
  • U probeert een niet-RFC 1918-adres te bereiken met behulp van de functie voor regionale integratie van virtuele netwerken.

Het App Service-plan of de web-app verwijderen voordat de verbinding met de VNet-integratie wordt verbroken

Als u de web-app of het App Service-plan hebt verwijderd zonder eerst de VNet-integratie te verbreken, kunt u geen update-/verwijderbewerkingen uitvoeren op het virtuele netwerk of subnet dat is gebruikt voor de integratie met de verwijderde resource. Een subnetdelegering 'Microsoft.Web/serverFarms' blijft toegewezen aan uw subnet en voorkomt de update-/verwijderbewerkingen.

Als u het subnet of het virtuele netwerk opnieuw wilt bijwerken/verwijderen, moet u de VNet-integratie opnieuw maken en vervolgens de verbinding verbreken:

  1. Maak het App Service-plan en de web-app opnieuw (het is verplicht om exact dezelfde web-app-naam te gebruiken als voorheen).
  2. Navigeer naar de blade Netwerken in de web-app en configureer de VNet-integratie.
  3. Nadat de VNet-integratie is geconfigureerd, selecteert u de knop Verbinding verbreken.
  4. Verwijder het App Service-plan of de web-app.
  5. Het subnet of het virtuele netwerk bijwerken/verwijderen.

Als u nog steeds problemen ondervindt met de VNet-integratie nadat u de bovenstaande stappen hebt uitgevoerd, neemt u contact op met Microsoft Ondersteuning.

Probleemoplossing voor netwerken

U kunt ook de probleemoplosser voor netwerken gebruiken om verbindingsproblemen op te lossen. Als u de probleemoplosser voor netwerken wilt openen, gaat u naar de app in Azure Portal. Selecteer Diagnostische gegevens en los het probleem op en zoek vervolgens naar de probleemoplosser voor netwerken.

Verbinding maken ieproblemen: hiermee wordt de status van de integratie van het virtuele netwerk gecontroleerd, inclusief het controleren of het privé-IP-adres is toegewezen aan alle exemplaren van het plan en de DNS-instellingen. Als een aangepaste DNS niet is geconfigureerd, wordt standaard Azure DNS toegepast. De probleemoplosser controleert ook op algemene functie-app-afhankelijkheden, waaronder connectiviteit voor Azure Storage en andere bindingsafhankelijkheden.

Screenshot that shows running troubleshooter for connection issues.

Configuratieproblemen : deze probleemoplosser controleert of uw subnet geldig is voor integratie van virtuele netwerken.

Screenshot that shows running troubleshooter for configuration issues.

Probleem met verwijderen van subnet/VNet: deze probleemoplosser controleert of uw subnet vergrendelingen heeft en of er ongebruikte servicekoppelingen zijn die het verwijderen van het VNet/subnet mogelijk blokkeren.

Volgende stappen

Voor meer informatie over netwerken en Azure Functions: