Delen via


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

In deze zelfstudie ziet 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 de 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 De Service Bus
  • Vergrendel uw Service Bus achter een privé-eindpunt.
  • Implementeer een functie-app die gebruikmaakt van zowel de Service Bus- als HTTP-triggers.
  • Test om te zien of uw functie-app veilig is binnen het virtuele netwerk.
  • Resources opschonen.

Een functie-app maken in een Premium-abonnement

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

  1. Selecteer een resource makenin het menu Azure Portal of de startpagina.

  2. Selecteer op de pagina Nieuw de optieRekenfunctie-app>.

  3. Gebruik op de pagina Basisinformatie de volgende tabel om de instellingen voor 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 (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 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 Deze zelfstudie maakt gebruik van Windows, 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-abonnement 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 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 wordt 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 Aan Als u openbare netwerktoegang weigert, wordt al het binnenkomende verkeer geblokkeerd, 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 ingeschakeld op Aan.
    Virtual Network Create New 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 bij het maken worden weergegeven. U moet expliciet VNet-integratie inschakelen in het gedeelte Uitgaande toegang van het venster om de 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 vanuit de portal wilt blijven werken met uw functie-app, moet u uw lokale computer toevoegen aan het virtuele netwerk. Als u de binnenkomende toegang niet 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 aangeeft.
    Binnenkomend subnet Create New Met deze optie maakt u een nieuw subnet voor uw binnenkomende privé-eindpunt. Er kunnen meerdere privé-eindpunten worden toegevoegd aan een enkelvoudig subnet. Geef een subnetnaam op. Het subnetadresblok kan op de standaardwaarde worden gelaten. 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.

    Voer de volgende instellingen in voor de sectie Uitgaande toegang . Met deze stap wordt uw functie-app geïntegreerd met een virtueel netwerk bij het maken. Het biedt ook opties 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 het vnet, gaat al het uitgaande verkeer standaard via het vnet.

    Instelling Voorgestelde waarde Beschrijving
    VNet-integratie inschakelen Uit Hiermee wordt uw functie-app geïntegreerd met een VNet bij het maken en omleiden van al het uitgaande verkeer via het VNet.
    Uitgaand subnet Nieuwe maken 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 worden gelaten. Als u deze wilt configureren, vindt u hier meer informatie over subnetgrootte. 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. Hiermee wordt uw opslagaccount effectief geïntegreerd met het VNet.

    Instelling Voorgestelde waarde Beschrijving
    Privé-eindpunt voor opslag toevoegen Uit De mogelijkheid om uw toepassing bij het maken met VNet-integratie te configureren, wordt weergegeven in de portal nadat deze optie is ingeschakeld.
    Naam van privé-eindpunt myInboundPrivateEndpointName Naam die het privé-eindpunt van uw opslagaccount aangeeft.
    Subnet van privé-eindpunt Create New Hiermee maakt u een nieuw subnet voor uw binnenkomende privé-eindpunt in het opslagaccount. Er kunnen meerdere privé-eindpunten worden toegevoegd aan een enkelvoudig subnet. Geef een subnetnaam op. Het subnetadresblok kan op de standaardwaarde worden gelaten. Als u deze wilt configureren, vindt u hier meer informatie over subnetgrootte. 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 als u Handmatig voor aangepaste DNS-zones gebruikt.
  6. Selecteer Volgende: Bewaking. Voer op de pagina Bewaking de volgende instellingen in.

    Instelling Voorgestelde waarde Beschrijving
    Application Insights Standaard 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 pictogram Meldingen en watch voor het bericht Implementatie 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 soms de privé-eindpunten in het opslagaccount niet maken met de fout StorageAccountOperationInProgress. Deze fout treedt op, zelfs als de functie-app zelf wordt gemaakt. Wanneer u een dergelijke fout tegenkomt, verwijdert u de functie-app en voert u de bewerking opnieuw uit. In plaats daarvan kunt u de privé-eindpunten in het opslagaccount handmatig maken.

Een Service Bus maken

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

  1. Selecteer een resource makenin het menu Azure Portal of 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.
    Locatie myFunctionRegion De regio waar u de 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 op het tabblad Privé-eindpuntverbindingende optie Privé-eindpunt.

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

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

    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 het privé-eindpunt die in de volgende tabel worden weergegeven.

    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 Virtual Network voor de instelling Subnet de optie standaard.

  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 is 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 Functies De naam van het subnet waarmee uw functie-app verbinding maakt.
  11. Selecteer Ip-adres van uw client toevoegen om uw huidige client-IP-adres toegang te geven tot de naamruimte.

    Notitie

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

  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 Service Bus.

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

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

Een wachtrij maken

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

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

  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-connection string

  1. Selecteer in uw Service Bus in het menu aan de linkerkant De optie Beleid voor gedeelde toegang.

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

    Schermopname van het ophalen van een Service Bus-connection string.

De instellingen van uw functie-app configureren

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

  2. Als u uw functie-app wilt gebruiken met virtuele netwerken en Service Bus, werkt u de app-instellingen bij die in de volgende tabel worden weergegeven. 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 connection string van uw Service Bus. Deze opslag connection string vindt u in de sectie Een Service Bus-connection string ophalen.
    WEBSITE_CONTENTOVERVNET 1 Maak deze app-instelling. Met de waarde 1 kan uw functie-app worden geschaald wanneer uw opslagaccount is beperkt tot een virtueel netwerk.
  3. Omdat u een Elastic Premium-hostingabonnement gebruikt, selecteert u in de weergave Configuratie het tabblad Runtime-instellingen voor functie . 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

Schalen van runtime 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 niet openbaar toegankelijk. De volgende instructies geven instructies voor de implementatie 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 bovenaan de pagina Fork om een fork van deze opslagplaats te maken in uw eigen GitHub-account of organisatie.

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

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

    Instelling Voorgestelde waarde Beschrijving
    Bron GitHub U moet in stap 2 een GitHub-opslagplaats voor de voorbeeldcode hebben gemaakt.
    Organisatie myOrganization De organisatie waar uw opslagplaats is ingecheckt. Dit is meestal uw account.
    Opslagplaats functions-vnet-tutorial De opslagplaats is gevorkt 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 runtime-versie.
  5. Selecteer Opslaan.

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

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

Gefeliciteerd U hebt uw voorbeeldfunctie-app geïmplementeerd.

Uw vergrendelde functie-app testen

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

  2. Selecteer ServiceBusQueueTrigger.

  3. Selecteer Monitor in het menu aan de linkerkant.

U ziet dat u uw app niet kunt controleren. Uw browser heeft geen toegang tot het virtuele netwerk, waardoor deze niet rechtstreeks toegang heeft tot resources in het virtuele netwerk.

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

  1. Selecteer in uw functie-app in het menu aan de linkerkant Application Insights. 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 van uw Service Bus.

  4. Selecteer uw wachtrij.

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

  6. Selecteer Verzenden om het bericht te verzenden.

    Schermopname van het verzenden van Service Bus-berichten via de portal.

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

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

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

Privé-DNS-zones begrijpen

U hebt een privé-eindpunt gebruikt om verbinding te maken met Azure-resources. U maakt verbinding met een privé-IP-adres in plaats van met het openbare eindpunt. Bestaande Azure-services worden geconfigureerd om een bestaande DNS te gebruiken 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 Azure Functions netwerkopties en privé-eindpunten: