Delen via


Zelfstudie: Azure Functions integreren met een virtueel Azure-netwerk met behulp van privé-eindpunten

In deze zelfstudie leert u hoe u Azure Functions gebruikt om verbinding te maken met resources in een virtueel Azure-netwerk met behulp van privé-eindpunten. U maakt een nieuwe functie-app met behulp van een nieuw opslagaccount dat is vergrendeld achter een virtueel netwerk via Azure Portal. Het virtuele netwerk maakt gebruik van een Service Bus-wachtrijtrigger.

In deze zelfstudie gaat u:

  • Maak een functie-app in het Elastic Premium-abonnement met integratie van virtuele netwerken en privé-eindpunten.
  • Azure-resources maken, zoals Service Bus
  • Vergrendel uw Service Bus achter een privé-eindpunt.
  • Implementeer een functie-app die zowel de Service Bus- als HTTP-triggers gebruikt.
  • Test om te zien dat uw functie-app veilig is binnen het virtuele netwerk.
  • Schoon resources op.

Een functie-app maken in een Premium-abonnement

U maakt een C#-functie-app in een Elastic Premium-abonnement, dat netwerkmogelijkheden ondersteunt, zoals integratie van virtuele netwerken bij het maken, samen met serverloze schaal. In deze zelfstudie worden C# en Windows gebruikt. Andere talen en Linux worden ook ondersteund.

  1. Selecteer een resource maken in het menu van Azure Portal of op de startpagina.

  2. Selecteer op de pagina Nieuw de functie-app Compute>.

  3. Gebruik op de pagina Basisinformatie de volgende tabel om de instellingen van de functie-app te configureren.

    Instelling Voorgestelde waarde Beschrijving
    Abonnement Uw abonnement Abonnement waaronder deze nieuwe functie-app wordt gemaakt.
    Resourcegroep myResourceGroup Naam voor de nieuwe resourcegroep waarin u uw functie-app maakt.
    Naam van de functie-app Wereldwijd unieke naam Naam waarmee uw nieuwe functie-app wordt aangeduid. Geldige tekens zijn a-z (niet hoofdlettergevoelig), 0-9 en -.
    Publiceren Code Kies ervoor om codebestanden of een Docker-container te publiceren.
    Runtimestack .NET In deze zelfstudie wordt .NET gebruikt.
    Versie 6 (LTS) In deze zelfstudie wordt .NET 6.0 gebruikt die wordt uitgevoerd in hetzelfde proces als de Functions-host.
    Regio Voorkeursregio Kies een regio bij u in de buurt of in de buurt van andere services waartoe uw functies toegang hebben.
    Besturingssysteem Windows In deze zelfstudie wordt Windows gebruikt, maar werkt ook voor Linux.
    Plannen Functions-premium Hostingabonnement dat definieert hoe resources worden toegewezen aan uw functie-app. Wanneer u Premium selecteert, wordt standaard een nieuw App Service-plan gemaakt. De standaard-SKU en grootte is EP1, waarbij EP staat voor elastic Premium. Zie de lijst met Premium-SKU's voor meer informatie.

    Wanneer u JavaScript-functies uitvoert in een Premium-abonnement, kiest u een exemplaar met minder vCPU's. Zie voor meer informatie het artikel over Premium-abonnementen met één core kiezen.
  4. Selecteer Volgende: Opslag. Voer op de pagina Opslag de volgende instellingen in.

    Instelling Voorgestelde waarde Beschrijving
    Opslagaccount Wereldwijd unieke naam Maak een opslagaccount die wordt gebruikt door uw functie-app. Namen van opslagaccounts moeten tussen de 3 en 24 tekens lang zijn. Ze mogen alleen cijfers en kleine letters bevatten. U kunt ook een bestaand account gebruiken dat niet wordt beperkt door firewallregels en voldoet aan de vereisten voor het opslagaccount. Wanneer u Functions gebruikt met een vergrendeld opslagaccount, is een v2-opslagaccount nodig. Dit is de standaardopslagversie die is gemaakt bij het maken van een functie-app met netwerkmogelijkheden via de blade Maken.
  5. Selecteer Volgende: Netwerken. Voer op de pagina Netwerken de volgende instellingen in.

    Notitie

    Sommige van deze instellingen zijn pas zichtbaar als er andere opties zijn geselecteerd.

    Instelling Voorgestelde waarde Beschrijving
    Openbare toegang inschakelen Uit Openbare netwerktoegang weigeren blokkeert al het binnenkomende verkeer, behalve dat afkomstig is van privé-eindpunten.
    Netwerkinjectie inschakelen Uit De mogelijkheid om uw toepassing te configureren met VNet-integratie bij het maken, wordt weergegeven in het portalvenster nadat deze optie is overgeschakeld naar Aan.
    Virtueel netwerk Nieuwe maken Selecteer het veld Nieuwe maken. Geef in het pop-outscherm een naam op voor uw virtuele netwerk en selecteer OK. Opties voor het beperken van binnenkomende en uitgaande toegang tot uw functie-app tijdens het maken worden weergegeven. U moet VNet-integratie expliciet inschakelen in het gedeelte uitgaande toegang van het venster om uitgaande toegang te beperken.

    Voer de volgende instellingen in voor de sectie Binnenkomende toegang . Met deze stap maakt u een privé-eindpunt in uw functie-app.

    Tip

    Als u wilt blijven communiceren met uw functie-app vanuit de portal, moet u uw lokale computer toevoegen aan het virtuele netwerk. Als u geen binnenkomende toegang wilt beperken, slaat u deze stap over.

    Instelling Voorgestelde waarde Beschrijving
    Privé-eindpunten inschakelen Uit De mogelijkheid om uw toepassing te configureren met VNet-integratie bij het maken, wordt weergegeven in de portal nadat deze optie is ingeschakeld.
    Naam van privé-eindpunt myInboundPrivateEndpointName Naam die het privé-eindpunt van uw nieuwe functie-app identificeert.
    Inkomend subnet Nieuwe maken Met deze optie maakt u een nieuw subnet voor uw binnenkomende privé-eindpunt. Er kunnen meerdere privé-eindpunten worden toegevoegd aan een enkel subnet. Geef een subnetnaam op. Het subnetadresblok kan op de standaardwaarde blijven staan. Selecteer OK. Zie Subnetten voor meer informatie over de grootte van subnetten.
    DNS Azure Privé-DNS-zone Deze waarde geeft aan welke DNS-server uw privé-eindpunt gebruikt. In de meeste gevallen als u in Azure werkt, is Azure Privé-DNS Zone de DNS-zone die u moet gebruiken als handmatig voor aangepaste DNS-zones, is de complexiteit toegenomen.

    Voer de volgende instellingen in voor de sectie Uitgaande toegang . Met deze stap integreert u uw functie-app met een virtueel netwerk bij het maken. Er worden ook opties weergegeven voor het maken van privé-eindpunten in uw opslagaccount en het beperken van uw opslagaccount van netwerktoegang bij het maken. Wanneer de functie-app is geïntegreerd met vnet, gaat al het uitgaande verkeer standaard via het vnet.

    Instelling Voorgestelde waarde Beschrijving
    VNet-integratie inschakelen Uit Hiermee integreert u uw functie-app met een VNet bij het maken en omleiden van al het uitgaande verkeer via het VNet.
    Uitgaand subnet Nieuwe Hiermee maakt u een nieuw subnet voor de VNet-integratie van uw functie-app. Een functie-app kan alleen worden geïntegreerd met een leeg subnet. Geef een subnetnaam op. Het subnetadresblok kan op de standaardwaarde blijven staan. Als u deze wilt configureren, vindt u hier meer informatie over de grootte van subnetten. Selecteer OK. De optie voor het maken van privé-eindpunten voor Opslag wordt weergegeven. Als u uw functie-app wilt gebruiken met virtuele netwerken, moet u deze koppelen aan een subnet.

    Voer de volgende instellingen in voor de sectie Privé-eindpunt voor Opslag. Met deze stap maakt u privé-eindpunten voor de blob-, wachtrij-, bestands- en tabeleindpunten in uw opslagaccount bij het maken. Hierdoor wordt uw opslagaccount effectief geïntegreerd met het VNet.

    Instelling Voorgestelde waarde Beschrijving
    Privé-eindpunt voor opslag toevoegen Uit De mogelijkheid om uw toepassing te configureren met VNet-integratie bij het maken, wordt weergegeven in de portal nadat deze optie is ingeschakeld.
    Naam van privé-eindpunt myInboundPrivateEndpointName Naam die het privé-eindpunt van uw opslagaccount identificeert.
    Subnet van privé-eindpunt Nieuwe maken Hiermee maakt u een nieuw subnet voor uw binnenkomende privé-eindpunt in het opslagaccount. Er kunnen meerdere privé-eindpunten worden toegevoegd aan een enkel subnet. Geef een subnetnaam op. Het subnetadresblok kan op de standaardwaarde blijven staan. Als u deze wilt configureren, vindt u hier meer informatie over de grootte van subnetten. Selecteer OK.
    DNS Azure Privé-DNS-zone Deze waarde geeft aan welke DNS-server uw privé-eindpunt gebruikt. In de meeste gevallen als u in Azure werkt, is Azure Privé-DNS Zone de DNS-zone die u moet gebruiken, omdat het gebruik van handmatig voor aangepaste DNS-zones meer complexiteit heeft.
  6. Selecteer Volgende: Bewaking. Voer op de pagina Bewaking de volgende instellingen in.

    Instelling Voorgestelde waarde Beschrijving
    Application Insights Standaardinstelling Maak een Application Insights-resource met dezelfde app-naam in de dichtstbijzijnde ondersteunde regio. Vouw deze instelling uit als u de naam van de nieuwe resource wilt wijzigen of uw gegevens wilt opslaan op een andere locatie in een Azure-geografie.
  7. Selecteer Beoordelen + maken om de selecties van appconfiguratie te controleren.

  8. Controleer uw instellingen op de pagina Beoordelen en maken . Selecteer Vervolgens Maken om de functie-app te maken en te implementeren.

  9. Selecteer in de rechterbovenhoek van de portal het meldingenpictogram en kijk of het bericht Implementatie is voltooid .

  10. Selecteer Naar de resource gaan om uw nieuwe functie-app te bekijken. U kunt ook Vastmaken aan dashboard selecteren. Vastmaken maakt het gemakkelijker om terug te gaan naar deze functie-app-resource vanuit uw dashboard.

Gefeliciteerd. U hebt uw premium-functie-app gemaakt.

Notitie

Sommige implementaties kunnen af en toe de privé-eindpunten in het opslagaccount niet maken met de fout 'StorageAccountOperationInProgress'. Deze fout treedt op, ook al wordt de functie-app zelf gemaakt. Wanneer u een dergelijke fout tegenkomt, verwijdert u de functie-app en probeert u de bewerking opnieuw uit te voeren. U kunt in plaats daarvan handmatig de privé-eindpunten in het opslagaccount maken.

Een Service Bus maken

Vervolgens maakt u een Service Bus-exemplaar dat wordt gebruikt om de functionaliteit van de netwerkmogelijkheden van uw functie-app in deze zelfstudie te testen.

  1. Selecteer een resource maken in het menu van Azure Portal of op de startpagina.

  2. Zoek op de pagina Nieuw naar Service Bus. Selecteer vervolgens Maken.

  3. Gebruik op het tabblad Basisinformatie de volgende tabel om de Service Bus-instellingen te configureren. Alle andere instellingen kunnen de standaardwaarden gebruiken.

    Instelling Voorgestelde waarde Beschrijving
    Abonnement Uw abonnement Het abonnement waarin uw resources worden gemaakt.
    Resourcegroep myResourceGroup De resourcegroep die u hebt gemaakt met uw functie-app.
    Naam van naamruimte myServiceBus De naam van het Service Bus-exemplaar waarvoor het privé-eindpunt is ingeschakeld.
    Location myFunctionRegion De regio waar u uw functie-app hebt gemaakt.
    Prijscategorie Premium Kies deze laag om privé-eindpunten te gebruiken met Azure Service Bus.
  4. Selecteer Controleren + maken. Nadat de validatie is voltooid, selecteert u Maken.

Uw Service Bus vergrendelen

Maak het privé-eindpunt om uw Service Bus te vergrendelen:

  1. Selecteer Netwerken in uw nieuwe Service Bus in het menu aan de linkerkant.

  2. Selecteer Privé-eindpunt op het tabblad Privé-eindpuntverbindingen.

    Schermopname van hoe u naar privé-eindpunten voor De Service Bus gaat.

  3. Gebruik op het tabblad Basisinformatie de instellingen voor privé-eindpunten die worden weergegeven in de volgende tabel.

    Instelling Voorgestelde waarde Beschrijving
    Abonnement Uw abonnement Het abonnement waarin uw resources worden gemaakt.
    Resourcegroep myResourceGroup De resourcegroep die u hebt gemaakt met uw functie-app.
    Naam sb-eindpunt De naam van het privé-eindpunt voor de servicebus.
    Regio myFunctionRegion De regio waar u uw opslagaccount hebt gemaakt.
  4. Gebruik op het tabblad Resource de instellingen voor privé-eindpunten die worden weergegeven in de volgende tabel.

    Instelling Voorgestelde waarde Beschrijving
    Abonnement Uw abonnement Het abonnement waarmee deze nieuwe resources zijn gemaakt.
    Resourcetype Microsoft.ServiceBus/namespaces Het resourcetype voor de Service Bus.
    Resource myServiceBus De Service Bus die u eerder in de zelfstudie hebt gemaakt.
    Doelsubresource naamruimte Het privé-eindpunt dat wordt gebruikt voor de naamruimte van de Service Bus.
  5. Kies op het tabblad Virtueel netwerk voor de instelling Subnet de standaardinstelling.

  6. Selecteer Controleren + maken. Nadat de validatie is voltooid, selecteert u Maken.

  7. Nadat het privé-eindpunt is gemaakt, gaat u terug naar de sectie Netwerken van uw Service Bus-naamruimte en controleert u het tabblad Openbare toegang .

  8. Zorg ervoor dat geselecteerde netwerken zijn geselecteerd.

  9. Selecteer + Bestaand virtueel netwerk toevoegen om het onlangs gemaakte virtuele netwerk toe te voegen.

  10. Gebruik op het tabblad Netwerken toevoegen de netwerkinstellingen uit de volgende tabel:

    Instelling Voorgestelde waarde Beschrijving
    Abonnement Uw abonnement Het abonnement waarmee deze nieuwe resources zijn gemaakt.
    Virtuele netwerken myVirtualNet De naam van het virtuele netwerk waarmee uw functie-app verbinding maakt.
    Subnetten functions De naam van het subnet waarmee uw functie-app verbinding maakt.
  11. Selecteer Het IP-adres van de client toevoegen om uw huidige client-IP-toegang tot de naamruimte te geven.

    Notitie

    Het toestaan van uw client-IP-adres is nodig om Azure Portal in staat te stellen berichten verderop in deze zelfstudie te publiceren in de wachtrij.

  12. Selecteer Inschakelen om het service-eindpunt in te schakelen.

  13. Selecteer Toevoegen om het geselecteerde virtuele netwerk en subnet toe te voegen aan de firewallregels voor De Service Bus.

  14. Selecteer Opslaan om de bijgewerkte firewallregels op te slaan.

Resources in het virtuele netwerk kunnen nu communiceren met de Service Bus met behulp van het privé-eindpunt.

Een wachtrij maken

Maak de wachtrij waarin uw Azure Functions Service Bus-trigger gebeurtenissen ontvangt:

  1. Selecteer wachtrijen in het menu aan de linkerkant in uw Service Bus.

  2. Selecteer Wachtrij. Geef voor deze zelfstudie de naamwachtrij op als de naam van de nieuwe wachtrij.

    Schermopname van het maken van een Service Bus-wachtrij.

  3. Selecteer Maken.

Een Service Bus-verbindingsreeks ophalen

  1. Selecteer in uw Service Bus in het menu aan de linkerkant beleid voor gedeelde toegang.

  2. selecteer RootManageSharedAccessKey. Kopieer en sla de primaire verbindingsreeks op. U hebt deze verbindingsreeks nodig wanneer u de app-instellingen configureert.

    Schermopname van het verkrijgen van een Service Bus-verbindingsreeks.

De instellingen van uw functie-app configureren

  1. Selecteer Configuratie in het menu aan de linkerkant in uw functie-app.

  2. Als u uw functie-app wilt gebruiken met virtuele netwerken en Service Bus, werkt u de app-instellingen bij die worden weergegeven in de volgende tabel. Als u een instelling wilt toevoegen of bewerken, selecteert u + Nieuwe toepassingsinstelling of het pictogram Bewerken in de meest rechtse kolom van de tabel met app-instellingen. Selecteer Opslaan wanneer u klaar bent.

    Instelling Voorgestelde waarde Beschrijving
    SERVICEBUS_CONNECTION myServiceBusConnectionString Maak deze app-instelling voor de verbindingsreeks van uw Service Bus. Deze opslag verbindingsreeks is afkomstig uit de sectie Een Service Bus-verbindingsreeks ophalen.
    WEBSITE_CONTENTOVERVNET 1 Maak deze app-instelling. Met de waarde 1 kan uw functie-app worden geschaald wanneer uw opslagaccount wordt beperkt tot een virtueel netwerk.
  3. Omdat u een Elastic Premium-hostingabonnement gebruikt, selecteert u in de configuratieweergave het tabblad Runtime-instellingen voor functieruntime. Stel Bewaking van runtimeschaal in op Aan. Selecteer vervolgens Opslaan. Met runtimegestuurd schalen kunt u niet-HTTP-triggerfuncties verbinden met services die in uw virtuele netwerk worden uitgevoerd.

    Schermopname van het inschakelen van runtimegestuurd schalen voor Azure Functions.

Notitie

Runtime-schaalaanpassing is niet nodig voor functie-apps die worden gehost in een Dedicated App Service-plan.

Een Service Bus-trigger en HTTP-trigger implementeren

Notitie

Als u privé-eindpunten inschakelt voor een functie-app, is de SCM-site (Source Control Manager) ook openbaar niet toegankelijk. De volgende instructies geven implementatiebeschrijvingen met behulp van het Implementatiecentrum in de functie-app. U kunt ook zip-implementatie of zelf-hostende agents gebruiken die zijn geïmplementeerd in een subnet in het virtuele netwerk.

  1. Ga in GitHub naar de volgende voorbeeldopslagplaats. Het bevat een functie-app en twee functies, een HTTP-trigger en een Service Bus-wachtrijtrigger.

    https://github.com/Azure-Samples/functions-vnet-tutorial

  2. Selecteer boven aan de pagina Fork om een fork van deze opslagplaats te maken in uw eigen GitHub-account of -organisatie.

  3. Selecteer Implementatiecentrum in het menu aan de linkerkant in uw functie-app. Selecteer vervolgens Instellingen.

  4. Gebruik op het tabblad Instellingen de implementatie-instellingen die worden weergegeven in de volgende tabel.

    Instelling Voorgestelde waarde Beschrijving
    Bron GitHub U moet in stap 2 een GitHub-opslagplaats voor de voorbeeldcode hebben gemaakt.
    Organisatie myOrganization De organisatie waarnaar uw opslagplaats is ingecheckt. Dit is meestal uw account.
    Opslagplaats functions-vnet-tutorial De opslagplaats is geforkt van https://github.com/Azure-Samples/functions-vnet-tutorial.
    Vertakking main De hoofdbranch van de opslagplaats die u hebt gemaakt.
    Runtimestack .NET De voorbeeldcode bevindt zich in C#.
    Versie .NET Core 3.1 De runtimeversie.
  5. Selecteer Opslaan.

    Schermopname van het implementeren van Azure Functions-code via de portal.

  6. De eerste implementatie kan enkele minuten duren. Wanneer uw app is geïmplementeerd, ziet u op het tabblad Logboeken een statusbericht geslaagd (actief). Vernieuw de pagina indien nodig.

Gefeliciteerd. U hebt de voorbeeldfunctie-app geïmplementeerd.

Uw vergrendelde functie-app testen

  1. Selecteer Functies in het menu aan de linkerkant in uw functie-app.

  2. Selecteer ServiceBusQueueTrigger.

  3. Selecteer Controleren in het menu aan de linkerkant.

U ziet dat u uw app niet kunt bewaken. Uw browser heeft geen toegang tot het virtuele netwerk, zodat deze geen rechtstreeks toegang heeft tot resources binnen het virtuele netwerk.

Hier volgt een alternatieve manier om uw functie te bewaken met behulp van Application Insights:

  1. Selecteer Application Insights in het menu aan de linkerkant in uw functie-app. Selecteer Vervolgens Application Insights-gegevens weergeven.

    Schermopname van het weergeven van Application Insights voor een functie-app.

  2. Selecteer live metrische gegevens in het menu aan de linkerkant.

  3. Open een nieuw tabblad. Selecteer wachtrijen in het menu aan de linkerkant in uw Service Bus.

  4. Selecteer uw wachtrij.

  5. Selecteer Service Bus Explorer in het menu aan de linkerkant. Kies onder Verzenden voor inhoudstype tekst/tekst zonder opmaak. Voer vervolgens een bericht in.

  6. Selecteer Verzenden om het bericht te verzenden.

    Schermopname van het verzenden van Service Bus-berichten met behulp van de portal.

  7. Op het tabblad Live metrische gegevens ziet u dat uw Service Bus-wachtrijtrigger is geactiveerd. Als dat niet het probleem is, verzendt u het bericht opnieuw vanuit Service Bus Explorer.

    Schermopname van het weergeven van berichten met behulp van live metrische gegevens voor functie-apps.

Gefeliciteerd. U hebt de installatie van uw functie-app getest met privé-eindpunten.

Inzicht in privé-DNS-zones

U hebt een privé-eindpunt gebruikt om verbinding te maken met Azure-resources. U maakt verbinding met een privé-IP-adres in plaats van het openbare eindpunt. Bestaande Azure-services zijn geconfigureerd voor het gebruik van een bestaande DNS om verbinding te maken met het openbare eindpunt. U moet de DNS-configuratie overschrijven om verbinding te maken met het privé-eindpunt.

Er wordt een privé-DNS-zone gemaakt voor elke Azure-resource die is geconfigureerd met een privé-eindpunt. Er wordt een DNS-record gemaakt voor elk privé-IP-adres dat is gekoppeld aan het privé-eindpunt.

In deze zelfstudie zijn de volgende DNS-zones gemaakt:

  • privatelink.file.core.windows.net
  • privatelink.blob.core.windows.net
  • privatelink.servicebus.windows.net
  • privatelink.azurewebsites.net

Resources opschonen

In de voorgaande stappen hebt u Azure-resources in een resourcegroep gemaakt. Als u deze resources in de toekomst waarschijnlijk niet nodig hebt, kunt u ze verwijderen door de resourcegroep te verwijderen.

Selecteer Resourcegroepen in het menu of op de beginpagina van de Azure-portal. Selecteer myResourceGroup op de pagina Resourcegroepen.

Controleer op de pagina myResourceGroup of de weergegeven resources de resources zijn die u wilt verwijderen.

Selecteer Resourcegroep verwijderen, typ myResourceGroup in het tekstvak om dit te bevestigen en selecteer Verwijderen.

Volgende stappen

In deze zelfstudie hebt u een Premium-functie-app, opslagaccount en Service Bus gemaakt. U hebt al deze resources beveiligd achter privé-eindpunten.

Gebruik de volgende koppelingen voor meer informatie over azure Functions-netwerkopties en privé-eindpunten: