Freigeben über


So hosten Sie Ihre Workload in Azure

In diesem Artikel wird beschrieben, wie Sie Ihre Fabric Extensibility Toolkit-Workload in Azure mithilfe einer reinen Front-End-Architektur hosten. Das Extensibility Toolkit verwendet einen cloudeigenen Bereitstellungsansatz mit Azure-Diensten, die für statische Webanwendungen optimiert sind.

Architekturübersicht

Das Fabric Extensibility Toolkit verwendet eine Architektur, die sich auf die Frontend-Bereitstellung mit Azure-Diensten konzentriert:

Diagramm einer Azure-Bereitstellungsarchitektur.

Architektur des Erweiterbarkeits-Toolkits

Die Architektur des Extensibility Toolkits umfasst die folgenden Merkmale:

  • Nur Frontend-Bereitstellung: Ihre Workload wird vollständig im Browser ohne separates Back-End ausgeführt
  • Statisches Websitehosting: Verwendet statische Azure Storage-Websites für das Hosting
  • Azure Front Door: Bietet globales CDN, SSL-Beendigung und Routing
  • Verwaltete Dienste: Nutzt Entra-ID, Key Vault und verwaltete Identität für Sicherheit
  • Einzelner Bereitstellungsprozess: Verwendet bereitgestellte PowerShell-Skripts für die Bereitstellung

Verwendete Azure-Dienste

Azure Front Door – der Dienst für Web-Traffic-Management

Azure Front Door dient als globaler Einstiegspunkt für Ihre Workload. Sie bietet:

  • Globaler Lastenausgleich: Leitet Benutzer zum nächstgelegenen Edge-Standort.
  • SSL-Beendigung: Verarbeitet HTTPS-Zertifikate automatisch
  • Webanwendungsfirewall (WAF):Schützt vor häufigen Web-Sicherheitsrisiken
  • Caching: Verbessert die Leistung, indem statische Ressourcen an Edge-Standorten zwischengespeichert werden.

Für das Extensibility Toolkit leitet Front Door Datenverkehr an Ihre statische Website weiter, die in Azure Storage gehostet wird, und stellt eine hohe Verfügbarkeit und niedrige Latenz weltweit sicher.

Azure Storage-Konto (statische Website)

Ein Azure Storage-Konto mit statischem Websitehosting hosten Ihre integrierte Workload-Anwendung. Folgendes wird damit bereitgestellt:

  • Kostengünstiges Hosting: Nur für Speicher und Verwendete Bandbreite bezahlen
  • Automatische Skalierung: Verarbeitet Verkehrsspitzen ohne Konfiguration
  • Globale Verfügbarkeit: Inhalte werden von der globalen Speicherinfrastruktur von Azure bereitgestellt.
  • Dateibasierte Bereitstellung: Hochladen von Dateien zur Bereitstellung von Versionen

Das Extensibility Toolkit erstellt Ihre React-Anwendung in statischem HTML, JavaScript, CSS und Ressourcen, die direkt für das Speicherkonto bereitgestellt werden.

Azure Key Vault (ein Dienst zur sicheren Verwaltung kryptografischer Schlüssel)

Azure Key Vault verwaltet vertrauliche Konfiguration und geheime Schlüssel:

  • Geheime Clientschlüssel: Speichert geheime Schlüssel der Entra-ID-Anwendung sicher
  • API-Schlüssel: Verwaltet externe Dienst-API-Schlüssel
  • Konfiguration: Speichert umgebungsspezifische Einstellungen
  • Zertifikate: Verwaltet BEI Bedarf SSL-Zertifikate

Ihre Workload greift über verwaltete Identität auf Key Vault zu, um die sichere, anmeldeinformationsfreie Authentifizierung zu erhalten.

Azure Entra ID (Azure Active Directory)

Azure Entra ID bietet Authentifizierung und Autorisierung:

  • App-Registrierung: Registriert Ihre Workload als Entra-Anwendung
  • OAuth 2.0-Abläufe: behandelt die Benutzerauthentifizierung mit Fabric
  • API-Berechtigungen: Verwaltet den Zugriff auf Fabric- und Microsoft Graph-APIs
  • Tokenverwaltung: Stellt sichere Zugriffstoken für API-Aufrufe bereit.

Verwaltete Identität

Verwaltete Identität bietet sichere Dienst-zu-Dienst-Authentifizierung:

  • Keine Anmeldeinformationsverwaltung: Es ist nicht erforderlich, geheime Schlüssel im Code zu speichern.
  • Tokenverarbeitung: Azure verarbeitet Tokenakquisition und -erneuerung
  • Sicherer Zugriff: Stellt sicher eine Verbindung mit Key Vault und anderen Azure-Diensten bereit.
  • Identitätslebenszyklus: Gebunden an Ihre Azure-Ressourcen für die Bereinigung

Bereitstellungsprozess

Voraussetzungen

Stellen Sie vor der Bereitstellung in Azure folgendes sicher:

  • Azure-Abonnement mit entsprechenden Berechtigungen
  • Azure CLI installiert und authentifiziert
  • Das Fabric Extensibility Toolkit-Repository wurde lokal geklont.
  • Ihre Workload erstellt mit .\scripts\Build\BuildRelease.ps1

Verwenden des Bereitstellungsskripts

Das Extensibility Toolkit enthält ein PowerShell-Bereitstellungsskript unter scripts\Deploy\DeployToAzureWebApp.ps1, das den Bereitstellungsprozess automatisiert.

Einfache Bereitstellung

# Deploy to an existing Azure Web App
.\scripts\Deploy\DeployToAzureWebApp.ps1 -WebAppName "my-fabric-workload" -ResourceGroupName "fabric-workload-rg"

Zusätzliche Bereitstellungsoptionen

# Deploy to staging slot with custom settings
.\scripts\Deploy\DeployToAzureWebApp.ps1 `
    -WebAppName "my-fabric-workload" `
    -ResourceGroupName "fabric-workload-rg" `
    -SlotName "staging" `
    -Force $true `
    -CreateBackup $true `
    -RestartAfterDeploy $true

Bereitstellungsskriptparameter

Parameter Description Erforderlich Standard
WebAppName Name der Azure Web App, für die bereitgestellt werden soll Yes -
ResourceGroupName Ressourcengruppe, die die Web App enthält Yes -
ReleasePath Pfad zu erstellten Anwendungsdateien Nein ..\..\release\app
DeploymentMethod Bereitstellungsmethode (ZipDeploy, FTP, LocalGit) Nein ZipDeploy
SlotName Bereitstellungsplatz für Staging Nein -
Force Bestätigungsaufforderungen überspringen Nein $false
CreateBackup Erstellen einer Sicherung vor der Bereitstellung Nein $true
RestartAfterDeploy App nach der Bereitstellung neu starten Nein $true

Features des Bereitstellungsskripts

Das Bereitstellungsskript bietet umfassende Bereitstellungsfunktionen:

Validierung und Sicherheit

  • Überprüfung der Voraussetzungen: Überprüft die Installation und Authentifizierung der Azure CLI
  • Ressourcenüberprüfung: Bestätigt, dass die Zielweb-App vorhanden ist und barrierefrei ist.
  • Buildüberprüfung: Stellt sicher, dass das Releaseverzeichnis erforderliche Dateien enthält.
  • Erstellen eines Backups: Erstellt ein Bereitstellungs-Backup für Rollback-Funktionen

Bereitstellungsworkflow

  • ZIP-Paketerstellung: Komprimiert die integrierte Anwendung in das Bereitstellungspaket
  • Größenberichterstattung: Zeigt die Größe des Bereitstellungspakets zur Überprüfung an.
  • Statusüberwachung: Stellt Aktualisierungen des Bereitstellungsstatus in Echtzeit bereit.
  • Fehlerbehandlung: Detaillierte Fehlermeldungen mit Anleitung zur Problembehandlung

Nach der Bereitstellung

  • Integritätsprüfung: Überprüft, ob die bereitgestellte Anwendung ordnungsgemäß reagiert.
  • URL-Berichterstellung: Stellt direkten Link zu bereitgestellter Anwendung bereit.
  • Manifestleitfaden: Zeigt die nächsten Schritte für den Manifestupload in Fabric an.
  • Zeitmesswerte: Berichtet die Gesamtbereitstellungsdauer.

Manuelle Bereitstellung

Sie können Ihre Frontend-Anwendung auch manuell mithilfe von Azure PowerShell-Befehlen bereitstellen:

Erstellen Ihrer Anwendung

Erstellen Sie zunächst Ihre Frontend-Anwendung für die Testumgebung:

npm run build:test

Bereitstellungspaket erstellen

  1. Navigieren Zum build\Frontend Ordner in Ihrem Projekt
  2. Wählen Sie alle Dateien und den assets Ordner unter dem Buildverzeichnis aus.
  3. Erstellen einer .zip Datei mit allen ausgewählten Dateien

Bereitstellen mithilfe von Azure PowerShell

# Connect to Azure
Connect-AzAccount

# Set your subscription context
Set-AzContext -Subscription "<subscription_id>"

# Deploy the zip file to your web app
Publish-AzWebApp -ResourceGroupName <resource_group_name> -Name <web_app_name> -ArchivePath <zip_file_path>

Manuelle Bereitstellungsparameter

Parameter Description Example
<subscription_id> Ihre Azure-Abonnement-ID 12345678-1234-1234-1234-123456789012
<resource_group_name> Ressourcengruppe, die Ihre Web-App enthält fabric-workload-rg
<web_app_name> Name Ihrer Azure Web App my-fabric-workload
<zip_file_path> Vollständiger Pfad zu Ihrer Bereitstellungs-ZIP-Datei C:\path\to\deployment.zip

Hinweis

Für die manuelle Bereitstellung müssen Sie über die entsprechenden Azure-Berechtigungen und das Azure PowerShell-Modul verfügen, das auf Ihrem Computer installiert ist.

Sicherheitsüberlegungen

Authentifizierungsfluss

Der Arbeitsprozess authentifiziert sich mit Fabric über den Standardablauf von OAuth 2.0.

  1. Der Benutzer greift über Fabric auf Ihre Workload zu
  2. Fabric leitet zu Ihrer von Azure gehosteten Anwendung um.
  3. Ihre App leitet zur Entra-ID für die Authentifizierung um.
  4. Entra-ID gibt das Authentifizierungstoken zurück.
  5. Ihre App verwendet Token für den Zugriff auf Fabric-APIs

Sichere Konfiguration

  • Umgebungsvariablen: Store-Konfiguration in den Azure-App-Einstellungen, nicht im Code
  • Key Vault-Integration: Zugriff auf geheime Schlüssel über verwaltete Identität
  • Nur HTTPS: Erzwingen von HTTPS für alle Kommunikationen
  • CORS-Konfiguration: Konfigurieren geeigneter CORS-Richtlinien für Fabric-Domänen

Bewährte Methoden

  • Prinzip der minimalen Rechte: Erteilen Sie die minimal erforderlichen Berechtigungen für verwaltete Identitäten
  • Geheimnisrotation: Regelmäßig Geheimnisse wechseln, die im Key Vault gespeichert sind
  • Netzwerksicherheit: Verwenden von privaten Endpunkten, sofern möglich
  • Überwachung: Aktivieren von Application Insights für die Sicherheitsüberwachung

Konfiguration nach der Bereitstellung

Azure App Service-Konfiguration

Konfigurieren Sie nach der Bereitstellung Ihren Azure App Service:

# Set environment variables for your workload
az webapp config appsettings set --name "my-fabric-workload" --resource-group "fabric-workload-rg" --settings \
    "FABRIC_CLIENT_ID=your-client-id" \
    "FABRIC_TENANT_ID=your-tenant-id" \
    "KEY_VAULT_URL=https://your-keyvault.vault.azure.net/"

Einrichten des Schlüsseltresors

Vertrauliche Konfiguration im Key Vault speichern:

# Store client secret
az keyvault secret set --vault-name "your-keyvault" --name "FabricClientSecret" --value "your-client-secret"

# Store API keys
az keyvault secret set --vault-name "your-keyvault" --name "ExternalApiKey" --value "your-api-key"

Verwaltete Identitätskonfiguration

Konfigurieren der verwalteten Identität für den Key Vault-Zugriff:

# Enable system-assigned managed identity
az webapp identity assign --name "my-fabric-workload" --resource-group "fabric-workload-rg"

# Grant access to Key Vault
az keyvault set-policy --name "your-keyvault" \
    --object-id "managed-identity-principal-id" \
    --secret-permissions get list

Manifestbereitstellung

Nachdem Sie Ihre Anwendung in Azure bereitgestellt haben, müssen Sie das Manifestpaket in Fabric hochladen:

Bau-Manifest-Paket

Erstellen Sie zunächst das Manifestpaket:

.\scripts\Build\BuildManifestPackage.ps1

Dadurch wird release\ManifestPackage.1.0.0.nupkg erstellt und enthält Ihr Workload-Manifest.

Hochladen in Fabric Admin Portal

  1. Öffnen des Microsoft Fabric-Verwaltungsportals
  2. Navigieren sie zu Workload Management>Upload Workload
  3. Hochladen der ManifestPackage.1.0.0.nupkg Datei
  4. Konfigurieren von Workloadeinstellungen und Berechtigungen
  5. Aktivieren Sie die Workload für Ihren Mandanten

Updatemanifest für die Azure-Bereitstellung

Stellen Sie vor dem Erstellen des Manifestpakets für die Azure-Bereitstellung sicher, dass die Werte in Ihrer .env-Datei (z. B. FRONTEND_URL, FRONTEND_APPID und andere erforderliche Variablen) für Ihre Azure-Umgebung ordnungsgemäß festgelegt sind. Diese Werte werden während des Build-Prozesses in Ihr WorkloadManifest.xml eingefügt.

Eine vollständige Liste der erforderlichen Umgebungsvariablen und Anleitungen zum Festlegen finden Sie in den allgemeinen Veröffentlichungsanforderungen.

Überwachung und Problembehandlung

Application Insights

Aktivieren von Application Insights für die Überwachung:

  • Leistungsüberwachung: Nachverfolgen von Seitenladezeiten und Benutzerinteraktionen
  • Fehlerverfolgung: Überwachen von JavaScript-Fehlern und fehlgeschlagenen Anforderungen
  • Nutzungsanalysen: Verstehen, wie Benutzer mit Ihrer Workload interagieren
  • Benutzerdefinierte Telemetrie: Hinzufügen benutzerdefinierter Metriken für Geschäftslogik

Häufige Probleme und Lösungen

Bereitstellungsfehler

  • Authentifizierungsfehler: Überprüfen der Azure CLI-Anmeldung mit az account show
  • Ressource nicht gefunden: Bestätigen Sie, dass web App-Name und Ressourcengruppe korrekt sind.
  • Berechtigung verweigert: Stellen Sie sicher, dass Ihr Konto über die Rolle "Mitwirkender" in der Ressourcengruppe verfügt.

Hinweis

Fehler: Der Front-End-URI befindet sich nicht in der Liste der Mandantendomänen: Dieser Fehler bedeutet, dass die benutzerdefinierte Domäne Ihrer Workload nicht in der Liste der akzeptierten Domänen ihres Entra-ID-Mandanten registriert ist. Um dies zu beheben, fügen Sie Ihre benutzerdefinierte Domäne zur Entra-ID hinzu. Weitere Informationen finden Sie unter "Benutzerdefinierte Domänenüberprüfung " in den allgemeinen Veröffentlichungsanforderungen.

Laufzeitprobleme

  • Weißer Bildschirm: Überprüfen der Browserkonsole auf JavaScript-Fehler
  • Authentifizierungsfehler: Überprüfen der Entra-ID-App-Registrierung und Umleitungs-URIs
  • API-Aufruffehler: Überprüfen der CORS-Konfiguration und API-Berechtigungen

Leistungsoptimierung

  • Langsames Laden: Komprimierung aktivieren und Paketgröße optimieren
  • Probleme beim Zwischenspeichern: Konfigurieren der richtigen Cacheheader in Front Door
  • Geografische Latenz: Sicherstellen, dass Front Door ordnungsgemäß für das globale Routing konfiguriert ist