Freigeben über


Zuverlässiger Dateiupload in Azure Storage Blob über Azure Front Door

Die Verwendung von Azure Front Door zum Hochladen von Dateien in Azure Storage bietet viele Vorteile, darunter verbesserte Resilienz, Skalierbarkeit und zusätzliche Sicherheitsmaßnahmen. Zu diesen Maßnahmen gehören das Scannen von hochgeladenen Inhalten mit der Webanwendungsfirewall (WAF) und die Verwendung von benutzerdefinierten TLS-Zertifikaten (Transport Layer Security) für Speicherkonten.

Aufbau

Architekturdiagramm mit Datenverkehr, der beim Hochladen von Blobs durch die Front Door zu den Speicherkonten fließt.

In dieser Referenzarchitektur werden mehrere Azure-Speicherkonten und ein Azure Front Door-Profil mit verschiedenen Ursprüngen bereitgestellt. Die Verwendung mehrerer Speicherkonten für den Upload von Inhalten verbessert die Leistung und Zuverlässigkeit und erleichtert die Lastverteilung, indem unterschiedliche Clients Speicherkonten in unterschiedlichen Bestellungen verwenden. Sie stellen Azure App Service für die Host-API und die Azure Service Bus-Warteschlange bereit.

Datenfluss

Der Datenfluss in diesem Szenario lautet wie folgt:

  1. Die Client-App initiiert eine webbasierte API, wobei eine Liste mit mehreren Uploadspeicherorten abgerufen wird. Für jede Datei, die der Client hochlädt, generiert die API eine Liste möglicher Uploadspeicherorte mit jeweils einem der vorhandenen Speicherkonten. Jede URL enthält eine Freigegebene Zugriffssignatur (SHARED Access Signature, SAS), die die ausschließliche Verwendung der URL für das Hochladen in die angegebene BLOB-URL sicherstellt.
  2. Die Clientanwendung versucht, ein Blob mithilfe der ersten URL aus der von der API zurückgegebenen Liste hochzuladen. Der Client stellt mithilfe eines benutzerdefinierten Domänennamens und eines benutzerdefinierten TLS-Zertifikats eine sichere Verbindung mit Azure Front Door her.
  3. Die Azure Front Door WAF überprüft die Anforderung. Wenn die WAF feststellt, dass die Risikostufe der Anforderung zu hoch ist, blockiert sie die Anforderung, und Azure Front Door gibt als Antwort einen Fehler vom Typ „HTTP 403“ zurück. Wenn nicht, wird die Anforderung an das gewünschte Speicherkonto weitergeleitet.
  4. Die Datei wird in das Azure Storage-Konto hochgeladen. Wenn diese Anforderung fehlschlägt, versucht die Clientanwendung, mithilfe der nächsten URL in der von der API zurückgegebenen Liste in ein alternatives Speicherkonto hochzuladen.
  5. Die Clientanwendung benachrichtigt die API, dass der Dateiupload abgeschlossen ist.
  6. Die API platziert ein Element in der Azure Service Bus-Warteschlange für die weitere Verarbeitung der hochgeladenen Datei.

Komponenten

  • Azure App Service ist für das Generieren der Upload-URLs und SAS für Blobs verantwortlich.
  • Azure Front Door verarbeitet Clientverbindungen, scannt sie mit dem WAF und leitet die Uploadanforderung an das Azure Storage-Konto weiter.
  • Azure Storage wird zum Speichern hochgeladener Dateien in Blobs verwendet.
  • Azure Service Bus dient als Warteschlange, um die weitere Verarbeitung hochgeladener Inhalte auszulösen.

Szenariodetails

Häufig wird die Verantwortung des Dateiuploads den API- oder Back-End-Systemen zugewiesen. Durch die Aktivierung der Clientanwendung zum direkten Hochladen von JSON-Dateien in Blob Storage stellen wir jedoch sicher, dass die Computeressource (die API-Ebene, die die Uploads vom Client verarbeitet) nicht der Engpass ist. Durch diesen Ansatz wird auch die Gesamtkosten reduziert, da die API keine Zeit mehr für Dateiuploads ausgibt.

Die API ist dafür verantwortlich, eine gleichmäßige Verteilung von Dateien über Speicherkonten hinweg sicherzustellen. Dies bedeutet, dass Sie eine Logik definieren müssen, um das Standardspeicherkonto für die zu verwendende Clientanwendung zu bestimmen.

Die Kombination aus Azure Front Door- und Azure Storage-Konten bietet einen einzigen Einstiegspunkt (eine einzelne Domäne) für den Inhaltsupload.

Azure Front Door-Konfiguration mit mehreren Speicherkonto-Ursprüngen

Die Konfiguration von Azure Front Door umfasst die folgenden Schritte für jedes Speicherkonto:

  • Ursprungskonfiguration
  • Routenkonfiguration
  • Regelsatzkonfiguration
  1. In der Ursprungskonfiguration müssen Sie den Ursprungstyp als BLOB-Speicherkonto definieren und das entsprechende Speicherkonto auswählen, das in Ihrem Abonnement verfügbar ist.

    Screenshot der Ursprungskonfiguration.

  2. In der Ursprungsgruppenroute müssen Sie einen Pfad für die Verarbeitung in der Ursprungsgruppe definieren. Stellen Sie sicher, dass Sie die neu erstellte Ursprungsgruppe auswählen und den Pfad zum Container innerhalb des Speicherkontos angeben.

    Screenshot der Routingkonfiguration.

  3. Schließlich müssen Sie eine neue Regelsatzkonfiguration erstellen. Es ist wichtig, die Einstellung Nicht übereinstimmenden Pfad beibehalten zu konfigurieren, wodurch das Anfügen des verbleibenden Pfads nach dem Quellmuster an den neuen Pfad ermöglicht wird.

    Screenshot: Regelsatz-Konfiguration.

Überlegungen

Skalierbarkeit und Leistung

Mit der vorgeschlagenen Architektur können Sie horizontale Skalierbarkeit erreichen, indem Sie mehrere Speicherkonten für den Inhaltsupload verwenden.

Resilienz

Azure Front Door ist mit seiner global verteilten Architektur ein hoch verfügbarer Dienst, der ausfallsicher für Fehler einer einzelnen Azure-Region und eines Point of Presence (PoPs) ist. Diese Architektur, die mehrere Speicherkonten in verschiedenen Regionen bereitstellt, erhöht die Resilienz und trägt dazu bei, die Lastverteilung zu erzielen, indem unterschiedliche Clients Speicherkonten in unterschiedlichen Bestellungen verwenden.

Kostenoptimierung

Die Kostenstruktur von Azure Storage ermöglicht die Erstellung eines beliebigen Speicherkontos nach Bedarf, ohne die Kosten der Lösung zu erhöhen. Der Betrag und die Größe der gespeicherten Dateien wirken sich auf die Kosten aus.

Sicherheit

Durch die Verwendung von Azure Front Door profitieren Sie von Sicherheitsfeatures wie DDoS-Schutz. Der standardmäßige DDoS-Schutz der Azure-Infrastruktur, der Netzwerkschichtangriffe in Echtzeit überwacht und verringert, indem die globale Skalierung und Kapazität des Azure Front Door-Netzwerks verwendet wird. Die Nutzung einer Web Application Firewall WAF schützt Ihre Webdienste von gängigen Exploits und Sicherheitsrisiken. Sie können Azure Front Door WAF auch verwenden, um Geschwindigkeitsbeschränkungen und Geofilterung durchzuführen, wenn Ihre Anwendung diese Funktionen erfordert.

Es ist auch möglich, Azure Storage-Konten mithilfe von privatem Link zu sichern. Das Speicherkonto kann so konfiguriert werden, dass es den direkten Zugriff aus dem Internet verweigert und nur Anforderungen über die von Azure Front Door verwendete private Endpunktverbindung zulässt. Diese Konfiguration stellt sicher, dass jede Anforderung von Front Door verarbeitet wird, und verhindert, dass die Inhalte Ihres Speicherkontos direkt im Internet verfügbar gemacht werden. Für diese Konfiguration ist jedoch die Premium-Ebene von Azure Front Door erforderlich. Wenn Sie die Standard-Ebene verwenden, muss Ihr Speicherkonto öffentlich zugänglich sein.

Benutzerdefinierte Domänennamen

Azure Front Door unterstützt benutzerdefinierte Domänennamen und kann TLS-Zertifikate für diese Domänen ausstellen und verwalten. Mithilfe benutzerdefinierter Domänen können Sie sicherstellen, dass Ihre Clients Dateien von einem vertrauenswürdigen und vertrauten Domänennamen erhalten und dass TLS jede Verbindung mit Front Door verschlüsselt. Wenn Front Door Ihre TLS-Zertifikate verwaltet, vermeiden Sie Ausfälle und Sicherheitsprobleme aufgrund ungültiger oder veralteter TLS-Zertifikate.

Azure Storage unterstützt bei Verwendung einer benutzerdefinierten Domäne auch benutzerdefinierte Domänennamen, aber nicht HTTPS. Front Door ist der beste Ansatz, um einen benutzerdefinierten Domänennamen mit einem Speicherkonto zu verwenden.

Bereitstellen dieses Szenarios

Informationen zum Bereitstellen dieses Szenarios mithilfe von Bicep finden Sie unter Bereitstellen von Azure Front Door Premium mit BLOB-Ursprung und privatem Link.

Nächste Schritte

Informationen zum Erstellen eines Front Door-Profils