Tutorial: Einrichten von privatem Websitezugriff für Azure Functions

In diesem Tutorial erfahren Sie, wie Sie den privaten Websitezugriff mit Azure Functions aktivieren. Mit dem privaten Websitezugriff können Sie sicherstellen, dass Ihr Funktionscode nur von einem bestimmten virtuellen Netzwerk aus ausgelöst wird.

Der private Websitezugriff ist hilfreich in Szenarien, in denen der Zugriff auf die Funktions-App auf ein bestimmtes virtuelles Netzwerk beschränkt werden muss. Dies kann beispielsweise der Fall sein, wenn die Funktions-App nur für Mitarbeiter einer bestimmten Organisation oder nur für Dienste innerhalb des angegebenen virtuellen Netzwerks vorgesehen ist (etwa für eine andere Azure-Funktion, einen virtuellen Azure-Computer oder einen AKS-Cluster).

Wenn eine Funktions-App auf Azure-Ressourcen innerhalb des virtuellen Netzwerks zugreifen oder über Dienstendpunkte verbunden werden muss, ist eine VNET-Integration erforderlich.

In diesem Tutorial erfahren Sie, wie Sie den privaten Websitezugriff für Ihre Funktions-App konfigurieren:

  • Erstellen eines virtuellen Computers
  • Erstellen eines Azure Bastion-Diensts
  • Erstellen einer Azure Functions-App
  • Konfigurieren eines VNET-Dienstendpunkts
  • Erstellen und Bereitstellen einer Azure-Funktion
  • Aufrufen der Funktion außerhalb und innerhalb des virtuellen Netzwerks

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

Topologie

Das folgende Diagramm zeigt die Architektur der zu erstellenden Lösung:

High-level architecture diagram for private site access solution

Voraussetzungen

Für dieses Tutorial ist es wichtig, dass Sie die Funktionsweise und Verwendung von IP-Adressen und Subnetzen verstehen. Beginnen Sie mit diesem Artikel zu den Grundlagen von Adressen und Subnetzen. Viele weitere Artikel und Videos finden Sie online.

Anmelden beim Azure-Portal

Melden Sie sich beim Azure-Portal an.

Erstellen eines virtuellen Computers

Im ersten Schritt dieses Tutorials wird ein neuer virtueller Computer in einem virtuellen Netzwerk erstellt. Der virtuelle Computer wird für den Zugriff auf Ihre Funktion verwendet, nachdem Sie den Zugriff so eingeschränkt haben, dass nur innerhalb des virtuellen Netzwerks darauf zugegriffen werden kann.

  1. Wählen Sie die Schaltfläche Ressource erstellen aus.

  2. Geben Sie in das Suchfeld Windows Server ein, und wählen Sie in den Suchergebnissen Windows Server aus.

  3. Wählen Sie in der Liste mit den Windows Server-Optionen Windows Server 2019 Datacenter und anschließend die Schaltfläche Erstellen aus.

  4. Verwenden Sie auf der Registerkarte Grundlagen die VM-Einstellungen, die Sie in der Tabelle unterhalb der Abbildung finden:

    Basics tab for a new Windows VM

    Einstellung Vorgeschlagener Wert BESCHREIBUNG
    Abonnement Ihr Abonnement Das Abonnement, in dem Ihre Ressourcen erstellt werden.
    Ressourcengruppe myResourceGroup Wählen Sie die Ressourcengruppe aus, die die Ressourcen für dieses Tutorial enthalten soll. Die Verwendung der gleichen Ressourcengruppe vereinfacht die Bereinigung der Ressourcen am Ende des Tutorials.
    Name des virtuellen Computers myVM Der VM-Name muss in der Ressourcengruppe eindeutig sein.
    Region (US) „USA, Norden-Mitte“ Wählen Sie eine Region in Ihrer Nähe oder in der Nähe der Funktionen aus, auf die zugegriffen werden soll.
    Öffentliche Eingangsports Keine Wählen Sie Keine aus, um sicherzustellen, dass keine eingehende Internetkonnektivität für den virtuellen Computer vorhanden ist. Der Remotezugriff auf den virtuellen Computer wird über den Azure Bastion-Dienst konfiguriert.
  5. Wählen Sie die Registerkarte Netzwerk und anschließend Neu erstellen aus, um ein neues virtuelles Netzwerk zu konfigurieren.

    Screenshot that shows the

  6. Verwenden Sie unter Virtuelles Netzwerk erstellen die Einstellungen in der Tabelle unterhalb der Abbildung:

    Create a new virtual network for the new VM

    Einstellung Vorgeschlagener Wert Beschreibung
    Name myResourceGroup-vnet Sie können den für Ihr virtuelles Netzwerk generierten Standardnamen verwenden.
    Adressbereich 10.10.0.0/16 Verwenden Sie einen einzelnen Adressbereich für das virtuelle Netzwerk.
    Subnetzname Lernprogramm Der Name des Subnetzes.
    Adressbereich (Subnetz) 10.10.1.0/24 Die Subnetzgröße definiert, wie viele Schnittstellen zum Subnetz hinzugefügt werden können. Dieses Subnetz wird von dem virtuellen Computer verwendet. Ein /24-Subnetz bietet 254 Hostadressen.
  7. Klicken Sie auf OK, um das virtuelle Netzwerk zu erstellen.

  8. Vergewissern Sie sich auf der Registerkarte Netzwerk, dass für Öffentliche IP die Option Keine ausgewählt ist.

  9. Wählen Sie die Registerkarte Verwaltung und anschließend unter Diagnosespeicherkonto die Option Neu erstellen aus, um ein neues Speicherkonto zu erstellen.

  10. Behalten Sie für Identität, Automatisch herunterfahren und Sicherung die Standardwerte bei.

  11. Klicken Sie auf Überprüfen + erstellen. Wenn die Überprüfung abgeschlossen ist, wählen Sie Erstellen aus. Der Vorgang der VM-Erstellung dauert einige Minuten.

Konfigurieren von Azure Bastion

Azure Bastion ist ein vollständig verwalteter Azure-Dienst für sicheren RDP- und SSH-Zugriff auf virtuelle Computer direkt über das Azure-Portal. Bei Verwendung des Azure Bastion-Diensts müssen keine Netzwerkeinstellungen für den RDP-Zugriff konfiguriert werden.

  1. Wählen Sie im Portal im oberen Bereich der Ressourcengruppenansicht die Option Hinzufügen aus.

  2. Geben Sie in das Suchfeld Bastion ein.

  3. Wählen Sie in den Suchergebnissen Bastion aus.

  4. Wählen Sie Erstellen aus, um mit der Erstellung einer neuen Azure Bastion-Ressource zu beginnen. Im Abschnitt Virtuelles Netzwerk wird eine Fehlermeldung angezeigt, da noch kein AzureBastionSubnet-Subnetz vorhanden ist. Das Subnetz wird in den folgenden Schritten erstellt. Verwenden Sie die Einstellungen aus der Tabelle unterhalb der Abbildung:

    Start of creating Azure Bastion

    Einstellung Vorgeschlagener Wert Beschreibung
    Name myBastion Der Name der neuen Bastion-Ressource.
    Region USA Nord Mitte Wählen Sie eine Region in Ihrer Nähe oder in der Nähe von anderen Diensten aus, auf die Ihre Funktionen zugreifen.
    Virtuelles Netzwerk myResourceGroup-vnet Das virtuelle Netzwerk, in dem die Bastion-Ressource erstellt wird.
    Subnetz AzureBastionSubnet Das Subnetz in Ihrem virtuellen Netzwerk, in dem die neue Bastion-Hostressource bereitgestellt wird. Sie müssen ein Subnetz mit dem Namen AzureBastionSubnet erstellen. Dadurch weiß Azure, in welchem Subnetz die Bastion-Ressourcen bereitgestellt werden sollen. Sie müssen ein Subnetz von mindestens /27 oder größer („/27“, „/26“ usw.) verwenden.

    Hinweis

    Eine ausführliche Schritt-für-Schritt-Anleitung zum Erstellen einer Azure Bastion-Ressource finden Sie im Tutorial Erstellen eines Azure Bastion-Hosts.

  5. Erstellen Sie ein Subnetz, in dem Azure den Azure Bastion-Host bereitstellen kann. Wenn Sie Subnetzkonfiguration verwalten auswählen, wird ein neuer Bereich geöffnet, in dem Sie ein neues Subnetz definieren können. Wählen Sie + Subnetz aus, um ein neues Subnetz zu erstellen.

  6. Das Subnetz muss den Namen AzureBastionSubnet haben, und das Subnetzpräfix muss mindestens /27 sein. Klicken Sie auf OK, um das Subnetz zu erstellen.

    Create subnet for Azure Bastion host

  7. Wählen Sie auf der Seite Bastion-Instanz erstellen in der Liste mit den verfügbaren Subnetzen das neu erstellte AzureBastionSubnet-Subnetz aus.

    Create an Azure Bastion host with specific subnet

  8. Wählen Sie Überprüfen + erstellen aus. Wählen Sie nach Abschluss der Überprüfung Erstellen aus. Die Erstellung der Azure Bastion-Ressource dauert einige Minuten.

Erstellen einer Azure Functions-App

Im nächsten Schritt wird in Azure eine Funktions-App mit Verbrauchsplan erstellt. Später in diesem Tutorial wird Ihr Funktionscode für diese Ressource bereitgestellt.

  1. Wählen Sie im Portal im oberen Bereich der Ressourcengruppenansicht die Option Hinzufügen aus.

  2. Wählen Sie Compute > Funktions-App aus.

  3. Verwenden Sie im Abschnitt Grundeinstellungen die Funktions-App-Einstellungen aus der folgenden Tabelle:

    Einstellung Vorgeschlagener Wert BESCHREIBUNG
    Ressourcengruppe myResourceGroup Wählen Sie die Ressourcengruppe aus, die die Ressourcen für dieses Tutorial enthalten soll. Die Verwendung der gleichen Ressourcengruppe für die Funktions-App und den virtuellen Computer vereinfacht die Bereinigung der Ressourcen am Ende des Tutorials.
    Name der Funktions-App Global eindeutiger Name Der Name, der Ihre neue Funktionen-App bezeichnet Gültige Zeichen sind a–z (unabhängig von der Groß-/Kleinschreibung), 0–9 und -.
    Veröffentlichen Code Option zum Veröffentlichen von Codedateien oder eines Docker-Containers.
    Laufzeitstapel Bevorzugte Sprache Wählen Sie eine Runtime aus, die Ihre bevorzugte Programmiersprache für Funktionen unterstützt.
    Region USA Nord Mitte Wählen Sie eine Region in Ihrer Nähe oder in der Nähe von anderen Diensten aus, auf die Ihre Funktionen zugreifen.

    Wählen Sie unten auf der Seite die Schaltfläche Weiter: Hosting > aus.

  4. Wählen Sie im Abschnitt Hosting die passenden Werte für Speicherkonto, Betriebssystem und Tarif aus. Orientieren Sie sich dabei an den Angaben in der folgenden Tabelle.

    Einstellung Vorgeschlagener Wert BESCHREIBUNG
    Speicherkonto Global eindeutiger Name Erstellen Sie ein Speicherkonto, das von Ihrer Funktions-App verwendet wird. Speicherkontonamen müssen zwischen 3 und 24 Zeichen lang sein und dürfen nur Zahlen und Kleinbuchstaben enthalten. Sie können auch ein vorhandenes Konto verwenden, das die Anforderungen an das Speicherkonto erfüllen muss.
    Betriebssystem Bevorzugtes Betriebssystem Ein Betriebssystem ist für Sie basierend auf Ihrer Runtimestapelauswahl vorab ausgewählt, aber Sie können die Einstellung ggf. ändern.
    Planen Nutzung Der Hostingplan bestimmt die Skalierung der Funktions-App und die Ressourcenverfügbarkeit für die jeweilige Instanz.
  5. Wählen Sie Überprüfen + erstellen aus, um die App-Konfigurationsauswahl zu überprüfen.

  6. Klicken Sie auf Erstellen, um die Funktionen-App bereitzustellen.

Konfigurieren der Zugriffseinschränkungen

Im nächsten Schritt werden Zugriffseinschränkungen konfiguriert, um sicherzustellen, dass die Funktion nur von Ressourcen im virtuellen Netzwerk aufgerufen werden kann.

Zur Ermöglichung von privatem Websitezugriff wird ein Azure Virtual Network-Dienstendpunkt zwischen der Funktions-App und dem angegebenen virtuellen Netzwerk erstellt. Zugriffseinschränkungen werden mithilfe von Dienstendpunkten implementiert. Dienstendpunkte sorgen dafür, dass nur von Datenverkehr aus dem angegebenen virtuellen Netzwerk auf die angegebene Ressource zugegriffen werden kann. In diesem Fall ist die Azure-Funktion die angegebene Ressource.

  1. Wählen Sie in der Funktions-App den Link Netzwerk unter der Abschnittsüberschrift Einstellungen aus.

  2. Die Seite Netzwerk ist der Ausgangspunkt für die Konfiguration von Azure Front Door, Azure CDN und Zugriffseinschränkungen.

  3. Wählen Sie Zugriffseinschränkungen konfigurieren aus, um den privaten Websitezugriff zu konfigurieren.

  4. Auf der Seite Zugriffseinschränkungen ist zunächst nur die Standardeinschränkung vorhanden. Die Standardeinschränkung bewirkt keinerlei Zugriffseinschränkungen für die Funktions-App. Wählen Sie Regel hinzufügen aus, um eine Einschränkungskonfiguration für den privaten Websitezugriff zu erstellen.

  5. Geben Sie im Bereich Zugriffsbeschränkung hinzufügen einen Namen, eine Priorität und eine Beschreibung für die neue Regel an.

  6. Wählen Sie im Dropdownfeld Typ die Option Virtuelles Netzwerk und anschließend das zuvor erstellte virtuelle Netzwerk und anschließend das Tutorial-Subnetz aus.

    Hinweis

    Es kann einige Minuten dauern, bis der Dienstendpunkt aktiviert wird.

  7. Auf der Seite Zugriffseinschränkungen wird nun angezeigt, dass eine neue Einschränkung vorhanden ist. Es kann einige Sekunden dauern, bis der Wert von Endpunktstatus von „Deaktiviert“ über „Bereitstellung“ zu „Aktiviert“ wechselt.

    Wichtig

    Jede Funktions-App verfügt über eine Kudu-Website mit erweiterten Tools zur Verwaltung von Funktions-App-Bereitstellungen. Auf diese Website wird über eine URL wie die folgende zugegriffen: <FUNCTION_APP_NAME>.scm.azurewebsites.net. Durch das Aktivieren von Zugriffsbeschränkungen auf der Kudu-Website wird verhindert, dass der Projektcode von einer lokalen Entwicklerarbeitsstation aus bereitgestellt wird. Anschließend wird ein Agent innerhalb des virtuellen Netzwerks benötigt, um die Bereitstellung auszuführen.

Zugreifen auf die Funktions-App

  1. Kehren Sie zu der zuvor erstellten Funktions-App zurück. Kopieren Sie im Abschnitt Übersicht die URL.

    Get the Function app URL

    Wenn Sie nun auf Ihrem Computer außerhalb des virtuellen Netzwerks versuchen, auf die Funktions-App zuzugreifen, wird eine HTTP 403-Seite mit dem Hinweis angezeigt, dass der Zugriff unzulässig ist.

  2. Wechseln Sie zurück zur Ressourcengruppe, und wählen Sie den zuvor erstellten virtuellen Computer aus. Um von dem virtuellen Computer aus auf die Website zugreifen zu können, müssen Sie über den Azure Bastion-Dienst eine Verbindung mit dem virtuellen Computer herstellen.

  3. Wählen Sie Verbinden und dann Bastion aus.

  4. Geben Sie den erforderlichen Benutzernamen und das entsprechende Kennwort an, um sich bei dem virtuellen Computer anzumelden.

  5. Wählen Sie Verbinden. Daraufhin wird ein neues Browserfenster angezeigt, in dem Sie mit dem virtuellen Computer interagieren können. Es ist möglich, über den Webbrowser des virtuellen Computers auf die Website zuzugreifen, weil der virtuelle Computer über das virtuelle Netzwerk auf die Website zugreift. Zwar kann nur innerhalb des angegebenen virtuellen Netzwerks zugegriffen werden, doch bleibt weiterhin ein öffentlicher DNS-Eintrag vorhanden.

Erstellen einer Funktion

Im nächsten Schritt dieses Tutorials wird eine Azure-Funktion mit HTTP-Trigger erstellt. Wenn diese Funktion über eine HTTP GET- oder POST-Anforderung aufgerufen wird, sollte „Hello {name}“ zurückgegeben werden.

  1. Verwenden Sie eine der folgenden Schnellstartanleitungen, um Ihre Azure Functions-App zu erstellen und bereitzustellen:

  2. Wählen Sie beim Veröffentlichen Ihres Azure Functions-Projekts die Funktions-App-Ressource aus, die Sie weiter oben in diesem Tutorial erstellt haben.

  3. Vergewissern Sie sich, dass die Funktion bereitgestellt wurde.

    Deployed function in list of functions

Direktes Aufrufen der Funktion

  1. Um den Zugriff auf die Funktion zu testen, müssen Sie die URL der Funktion kopieren. Wählen Sie die bereitgestellte Funktion und anschließend Funktions-URL abrufen aus. Klicken Sie auf die Schaltfläche Kopieren, um die URL in die Zwischenablage zu kopieren.

    Copy the function URL

  2. Fügen Sie die URL in den Webbrowser ein. Wenn Sie nun auf einem Computer außerhalb Ihres virtuellen Netzwerks versuchen, auf die Funktions-App zuzugreifen, wird eine HTTP 403-Antwort mit dem Hinweis angezeigt, dass der Zugriff auf die App unzulässig ist.

Aufrufen der Funktion innerhalb des virtuellen Netzwerks

Wenn Sie auf dem konfigurierten virtuellen Computer innerhalb des virtuellen Netzwerks über einen Webbrowser (unter Verwendung des Azure Bastion-Diensts) auf die Funktion zugreifen, ist der Zugriff erfolgreich.

Access the Azure Function via Azure Bastion

Bereinigen von Ressourcen

In den vorherigen Schritten haben Sie Azure-Ressourcen in einer Ressourcengruppe erstellt. Wenn Sie diese Ressourcen in Zukunft nicht mehr benötigen, können Sie sie löschen, indem Sie die Ressourcengruppe löschen.

Wählen Sie im Azure-Portalmenü oder auf der Startseite die Option Ressourcengruppen aus. Wählen Sie auf der Seite Ressourcengruppen die Option myResourceGroup aus.

Stellen Sie auf der Seite myResourceGroup sicher, dass die Ressourcen aufgelistet sind, die Sie löschen möchten.

Wählen Sie die Option Löschen aus, geben Sie zur Bestätigung im Textfeld myResourceGroup ein, und wählen Sie anschließend Löschen aus.

Nächste Schritte