Verwenden eines geschützten Speicherkontos mit Azure Functions
Azure Functions erfordert ein Azure Storage-Konto, wenn Sie eine Funktions-App-Instanz erstellen. Dieses Standardspeicherkonto wird von der Functions-Runtime verwendet, um die Integrität Ihrer Funktions-App aufrechtzuerhalten. Weitere Informationen finden Sie unter Speicheraspekte für Azure Functions. In diesem Artikel erfahren Sie, wie Sie ein geschütztes Speicherkonto als Standardspeicherkonto verwenden. Ein ausführliches Tutorial zum Erstellen Ihrer Funktions-App mit Einschränkungen für den ein- und ausgehenden Zugriff finden Sie im Tutorial Integrieren von Azure Functions in ein virtuelles Azure-Netzwerk mithilfe privater Endpunkte. Weitere Informationen zu Azure Functions und Netzwerken erhalten Sie unter Netzwerkoptionen von Azure Functions.
Einschränken Ihres Speicherkontos auf ein virtuelles Netzwerk
Wenn Sie eine Funktions-App erstellen, erstellen Sie entweder ein neues Speicherkonto oder stellen eine Verknüpfung mit einem vorhandenen Speicherkonto her. Beachten Sie Folgendes beim Arbeiten mit geschützten Speicherkonten.
- Um eine Funktions-App zu erstellen, die ein vorhandenes geschütztes Speicherkonto als Standardspeicherkonto verwendet, müssen Sie Ihre App entweder über das Azure-Portal oder mithilfe von ARM-Vorlagen oder Bicep-Bereitstellungen erstellen.
- Wenn Sie ein geschütztes Speicherkonto mit einem dynamischen Skalierungsplan verwenden, sollten Sie Ihre Funktionen im Tarif Flex-Verbrauch hosten. Dieser Tarif unterstützt sowohl geschützte Speicherkonten als auch verwaltete identitätsbasierte Verbindungen mit dem Speicher, die als die sicherste Verbindungsoption gelten.
- Alle Ebenen der Tarife Dedicated (App Service) und Elastic Premium unterstützen auch sichere Speicherkonten. Sie müssen jedoch Kompromisse eingehen, wenn Sie zum Herstellen einer Verbindung aus einer App im Premium-Tarif verwaltete Identitäten verwenden. Weitere Informationen finden Sie unter Erstellen einer App ohne Azure Files.
- Der Tarif Verbrauch bietet keine Unterstützung für virtuelle Netzwerke, sodass Sie keine Verbindung mit einem geschützten Speicherkonto herstellen können, das im Verbrauchstarif ausgeführt wird. Um das serverlose Funktionshosting nutzen zu können, sollten Sie Ihre App stattdessen neu erstellen, um sie im Tarif „Flex-Verbrauch“ auszuführen.
- In diesem Artikel wird gezeigt, wie Sie derzeit eine Funktions-App in einem Premium-Tarif erstellen, die mithilfe der Verbindungszeichenfolge des Speicherkontos eine Verbindung mit einem geschützten Speicherkonto herstellt. Für einen optimalen Schutz der Anmeldeinformationen von Speicherkonten sollten Sie stattdessen beim Herstellen einer Verbindung mit diesen verwaltete Identitäten verwenden. Erstellen Sie stattdessen mithilfe des Schnellstarts: Erstellen und Bereitstellen von Funktionen in Azure Functions mithilfe der Azure Developer CLI eine Funktions-App im Tarif „Flex-Verbrauch“, die eine Verbindung mit einem neuen geschützten Speicherkonto mithilfe von verwalteten Identitäten herstellt.
- Eine Liste aller Einschränkungen für Speicherkonten finden Sie unter Speicherkontoanforderungen.
Schützen des Speichers während der Erstellung von Funktions-Apps
Sie können eine Funktions-App zusammen mit einem neuen Speicherkonto erstellen, das hinter einem virtuellen Netzwerk geschützt ist. In den folgenden Abschnitten wird gezeigt, wie Sie diese Ressourcen entweder mithilfe des Azure-Portals oder mithilfe von Bereitstellungsvorlagen erstellen.
Führen Sie die Schritte unter Erstellen einer Funktions-App in einem Premium-Tarif aus. In diesem Abschnitt des Tutorials für virtuelle Netzwerke erfahren Sie, wie Sie eine Funktions-App erstellen, die über private Endpunkte eine Verbindung mit dem Speicher herstellt.
Hinweis
Wenn Sie Ihre Funktions-App im Azure-Portal erstellen, können Sie auch ein vorhandenes geschütztes Speicherkonto auf der Registerkarte Speicher auswählen. Sie müssen jedoch das entsprechende Netzwerk in der Funktions-App so konfigurieren, dass sie eine Verbindung über das virtuelle Netzwerk herstellen kann, das zum Schützen des Speicherkontos verwendet wird. Wenn Sie nicht über Berechtigungen zum Konfigurieren von Netzwerken verfügen oder Ihr Netzwerk noch nicht vollständig vorbereitet haben, wählen Sie auf der Registerkarte Netzwerk die Option Netzwerk nach der Erstellung konfigurieren aus. Sie können das Netzwerk für Ihre neue Funktions-App im Portal unter Einstellungen>Netzwerk konfigurieren.
Schützen des Speichers für eine vorhandene Funktions-App
Wenn Sie über eine vorhandene Funktions-App verfügen, können Sie das Netzwerk für das Speicherkonto, das von der App verwendet wird, direkt konfigurieren. Dieser Prozess führt jedoch dazu, dass die Funktions-App während der Konfiguration des Netzwerks und während des Neustarts der Funktions-App ausfällt.
Zum Minimieren der Downtime können Sie stattdessen ein vorhandenes Speicherkonto gegen ein neues, geschütztes Speicherkonto austauschen.
1. Aktivieren der Integration virtueller Netzwerke
Sie müssen als Voraussetzung die Integration virtueller Netzwerke für die Funktions-App aktivieren:
Wählen Sie eine Funktions-App mit einem Speicherkonto aus, für das keine Dienstendpunkte oder privaten Endpunkte aktiviert sind.
Aktivieren Sie die Integration virtueller Netzwerke für die Funktions-App.
2. Erstellen eines geschützten Speicherkontos
Richten Sie ein geschütztes Speicherkonto für Ihre Funktions-App ein:
Erstellen Sie ein zweites Speicherkonto. Dieses Speicherkonto ist das geschützte Speicherkonto für Ihre Funktions-App, das anstelle des ursprünglichen ungeschützten Speicherkontos verwendet werden soll. Sie können auch ein vorhandenes Speicherkonto verwenden, das noch nicht von Functions genutzt wird.
Speichern Sie die Verbindungszeichenfolge für dieses Speicherkonto für die spätere Verwendung.
Erstellen Sie eine Dateifreigabe im neuen Speicherkonto. Aus Gründen der Einfachheit können Sie denselben Dateifreigabenamen aus Ihrem ursprünglichen Speicherkonto verwenden. Wenn Sie einen neuen Dateifreigabenamen verwenden möchten, müssen Sie die App-Einstellung aktualisieren.
Sichern Sie das neue Speicherkonto auf eine der folgenden Arten:
Erstellen Sie einen privaten Endpunkt. Wenn Sie Verbindungen mit privaten Endpunkten einrichten, erstellen Sie private Endpunkte für die Unterressourcen
file
undblob
. Für Durable Functions müssen Sie auch die Unterressourcenqueue
undtable
über private Endpunkte zugänglich machen. Wenn Sie einen benutzerdefinierten oder lokalen DNS-Server (Domain Name System) verwenden, stellen Sie sicher, dass Sie Ihren DNS-Server so konfigurieren, dass er in die neuen privaten Endpunkte aufgelöst wird.Schränken Sie den Datenverkehr auf bestimmte Subnetze ein. Stellen Sie sicher, dass Ihre Funktions-App mit einem zulässigen Subnetz integriert ist und das Subnetz über einen Dienstendpunkt für
Microsoft.Storage
verfügt.
Kopieren Sie die Datei und den Blobinhalt aus dem aktuellen Speicherkonto, das von der Funktions-App verwendet wird, in das neu gesicherte Speicherkonto und die Dateifreigabe. AzCopy und Azure Storage-Explorer sind gängige Methoden. Wenn Sie den Azure Storage-Explorer verwenden, müssen Sie möglicherweise Ihrer Client-IP-Adresse in der Firewall Zugriff auf Ihr Speicherkonto gewähren.
Jetzt können Sie Ihre Funktions-App so konfigurieren, dass sie mit dem neu geschützten Speicherkonto kommuniziert.
3. Aktivieren des Anwendungs- und Konfigurationsroutings
Hinweis
Diese Konfigurationsschritte sind nur für die Hostingpläne Elastisch Premium und Dedicated (App Service) erforderlich. Der Flex-Verbrauchsplan erfordert keine Standorteinstellungen zum Konfigurieren des Netzwerks.
Sie können nun den Datenverkehr Ihrer Funktions-App über das virtuelle Netzwerk leiten:
Aktivieren Sie Anwendungsrouting, um den Datenverkehr Ihrer App an das virtuelle Netzwerk weiterzuleiten:
Erweitern Sie in Ihrer Funktions-App Einstellungen, und wählen Sie dann Netzwerk aus. Wählen Sie auf der Seite Netzwerk unter Konfiguration für ausgehenden Datenverkehr das Subnetz aus, das Ihrer VNet-Integration zugeordnet ist.
Wählen Sie auf der neuen Seite unter Anwendungsrouting die Option Ausgehender Internetdatenverkehr aus.
Aktivieren Sie Routing für die Inhaltsfreigabe, damit Ihre Funktions-App über das virtuelle Netzwerk mit Ihrem neuen Speicherkonto kommunizieren kann. Wählen Sie auf derselben Seite wie im vorherigen Schritt unter Konfigurationsrouting die Option Inhaltsspeicher aus.
Hinweis
Sie müssen beim Weiterleiten an die Inhaltsfreigabe in einem Speicherkonto, das von mehreren Funktions-Apps unter demselben Plan gemeinsam genutzt wird, besondere Sorgfalt anwenden. Weitere Informationen finden Sie im Artikel zu Speicherüberlegungen unter Konsistentes Routing über virtuelle Netzwerke.
4. Aktualisieren der Anwendungseinstellungen
Schließlich müssen Sie Ihre Anwendungseinstellungen aktualisieren, um auf das neue geschützte Speicherkonto zu verweisen:
Erweitern Sie in Ihrer Funktions-App Einstellungen, und wählen Sie dann Umgebungsvariablen aus.
Aktualisieren Sie auf der Registerkarte App-Einstellungen die folgenden Einstellungen, indem Sie jede Einstellung auswählen und bearbeiten und danach Übernehmen auswählen:
Einstellungsname Wert Comment AzureWebJobsStorage
Speicherverbindungszeichenfolge Verwenden Sie die Verbindungszeichenfolge für Ihr neues geschütztes Speicherkonto, das Sie zuvor gespeichert haben. WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
Speicherverbindungszeichenfolge Verwenden Sie die Verbindungszeichenfolge für Ihr neues geschütztes Speicherkonto, das Sie zuvor gespeichert haben. WEBSITE_CONTENTSHARE
Dateifreigabe Verwenden Sie den Namen der Dateifreigabe, die im geschützten Speicherkonto erstellt wurde und in der sich die Projektbereitstellungsdateien befinden. Wählen Sie Übernehmenund dann Bestätigen aus, um die neuen Anwendungseinstellungen in der Funktions-App zu speichern.
Die Funktions-App wird neu gestartet.
Nachdem der Neustart der Funktions-App abgeschlossen wurde, stellt sie eine Verbindung mit dem geschützten Speicherkonto her.