Udostępnij przez


Jak hostować obciążenie na platformie Azure

W tym artykule opisano, jak hostować obciążenie robocze zestawu narzędzi Fabric Extensibility Toolkit na platformie Azure, używając architektury wyłącznie frontendowej. Zestaw narzędzi extensibility korzysta z natywnego dla chmury podejścia do wdrażania z usługami platformy Azure zoptymalizowanymi pod kątem statycznych aplikacji internetowych.

Przegląd architektury

Zestaw narzędzi do rozszerzalności Fabric korzysta z architektury skoncentrowanej na wdrażaniu frontendu za pomocą usług Azure:

Diagram architektury wdrażania platformy Azure.

Architektura zestawu narzędzi rozszerzalności

Architektura zestawu narzędzi rozszerzalności obejmuje następujące cechy:

  • Frontend-only deployment: Aplikacja działa całkowicie w przeglądarce bez oddzielnego backendu
  • Hostowanie statycznej witryny internetowej: do hostowania używa statycznych witryn internetowych usługi Azure Storage
  • Azure Front Door: zapewnia globalną sieć CDN, terminację SSL i routing
  • Usługi zarządzane: korzysta z identyfikatora Entra, usługi Key Vault i tożsamości zarządzanej na potrzeby zabezpieczeń
  • Pojedynczy proces wdrażania: używa udostępnionych skryptów programu PowerShell do wdrożenia

Używane usługi platformy Azure

Azure Front Door

Usługa Azure Front Door pełni rolę globalnego punktu wejścia dla obciążenia roboczego. Zapewnia:

  • Globalne równoważenie obciążenia: kieruje użytkowników do najbliższej lokalizacji brzegowej
  • Kończenie żądań SSL: automatycznie obsługuje certyfikaty HTTPS
  • Zapora sieciowa aplikacji internetowej (WAF): chroni przed typowymi lukami w zabezpieczeniach sieci Web
  • Buforowanie: poprawia wydajność przez buforowanie statycznych zasobów w lokalizacjach brzegowych

W przypadku zestawu narzędzi rozszerzalności usługa Front Door kieruje ruch do statycznej witryny internetowej hostowanej w usłudze Azure Storage, zapewniając wysoką dostępność i małe opóźnienia na całym świecie.

Konto usługi Azure Storage (statyczna witryna internetowa)

Konto usługi Azure Storage ze statyczną witryną internetową hostuje utworzoną aplikację obciążenia. Zapewnia to:

  • Ekonomiczne hostowanie: płacisz tylko za użycie magazynu i przepustowości
  • Automatyczne skalowanie: obsługuje skoki ruchu bez konfiguracji
  • Dostępność globalna: zawartość jest obsługiwana z globalnej infrastruktury magazynu platformy Azure
  • Wdrażanie oparte na plikach: przekazywanie plików do wdrażania wersji

Zestaw narzędzi rozszerzalności skompiluje aplikację React w statyczne pliki HTML, JavaScript, CSS oraz zasoby, które są wdrażane bezpośrednio na koncie magazynu.

Azure Key Vault

Usługa Azure Key Vault zarządza poufnymi konfiguracjami i sekretami:

  • Sekrety klienta: Bezpieczne przechowywanie sekretów aplikacji Entra ID
  • Klucze interfejsu API: zarządza kluczami interfejsu API usługi zewnętrznej
  • Konfiguracja: przechowuje ustawienia specyficzne dla środowiska
  • Certyfikaty: zarządza certyfikatami SSL w razie potrzeby

Obciążenie uzyskuje dostęp do Key Vault za pomocą tożsamości zarządzanej, co umożliwia bezpieczne uwierzytelnianie bez użycia poświadczeń.

Azure Entra ID (Azure Active Directory)

Azure Entra ID zapewnia uwierzytelnianie i autoryzację:

  • Rejestracja aplikacji: rejestruje obciążenie jako aplikację Entra
  • Przepływy protokołu OAuth 2.0: obsługują uwierzytelnianie użytkowników za pomocą Fabric
  • Uprawnienia interfejsu API: zarządza dostępem do Fabric oraz interfejsów API Microsoft Graph
  • Zarządzanie tokenami: zapewnia bezpieczne tokeny dostępu dla wywołań interfejsu API

Zarządzana Tożsamość

Tożsamość zarządzana zapewnia bezpieczne uwierzytelnianie między usługami:

  • Brak zarządzania poświadczeniami: eliminuje konieczność przechowywania wpisów tajnych w kodzie
  • Obsługa tokenów: platforma Azure obsługuje pozyskiwanie i odnawianie tokenów
  • Bezpieczny dostęp: bezpiecznie łączy się z usługą Key Vault i innymi usługami platformy Azure
  • Cykl życia tożsamości: powiązany z zasobami platformy Azure dla ułatwienia uporządkowania danych

Proces wdrażania

Wymagania wstępne

Przed wdrożeniem na platformie Azure upewnij się, że masz:

  • Subskrypcja platformy Azure z odpowiednimi uprawnieniami
  • Zainstalowany i uwierzytelniony interfejs wiersza polecenia platformy Azure
  • Repozytorium zestawu narzędzi Fabric Extensibility sklonowane lokalnie
  • Obciążenie utworzone przy użyciu .\scripts\Build\BuildRelease.ps1

Korzystanie ze skryptu wdrażania

Zestaw narzędzi rozszerzalności zawiera skrypt wdrażania programu PowerShell, który scripts\Deploy\DeployToAzureWebApp.ps1 automatyzuje proces wdrażania.

Wdrożenie podstawowe

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

Dodatkowe opcje wdrażania

# 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

Parametry skryptu wdrożenia

Parameter Description Wymagane Default
WebAppName Nazwa aplikacji internetowej platformy Azure do wdrożenia Tak -
ResourceGroupName Grupa zasobów zawierająca aplikację internetową Tak -
ReleasePath Ścieżka do skompilowanych plików aplikacji Nie. ..\..\release\app
DeploymentMethod Metoda wdrażania (ZipDeploy, FTP, LocalGit) Nie. ZipDeploy
SlotName Slot wdrożeniowy dla środowiska testowego Nie. -
Force Pomijaj komunikaty o potwierdzeniu Nie. $false
CreateBackup Tworzenie kopii zapasowej przed wdrożeniem Nie. $true
RestartAfterDeploy Uruchom ponownie aplikację po wdrożeniu Nie. $true

Funkcje skryptu wdrażania

Skrypt wdrażania zapewnia kompleksowe możliwości wdrażania:

Walidacja i bezpieczeństwo

  • Sprawdzanie wymagań wstępnych: weryfikuje instalację i uwierzytelnianie interfejsu wiersza polecenia platformy Azure
  • Walidacja zasobów: potwierdza, że docelowa aplikacja internetowa istnieje i jest dostępna
  • Weryfikacja kompilacji: zapewnia, że katalog wydania zawiera wymagane pliki
  • Tworzenie kopii zapasowej: tworzy kopię zapasową wdrożenia na potrzeby możliwości wycofywania

Przepływ pracy wdrażania

  • Tworzenie pakietu ZIP: kompresuje wbudowaną aplikację do pakietu wdrożeniowego
  • Raportowanie rozmiarów: pokazuje rozmiar pakietu wdrożenia na potrzeby weryfikacji
  • Monitorowanie postępu: zapewnia aktualizacje stanu wdrożenia w czasie rzeczywistym
  • Obsługa błędów: Szczegółowe komunikaty o błędach ze wskazówkami dotyczącymi rozwiązywania problemów

Po wdrożeniu

  • Sprawdzanie kondycji: Sprawdza poprawność wdrożonej aplikacji
  • Raportowanie adresów URL: udostępnia bezpośredni link do wdrożonej aplikacji
  • Wskazówki dotyczące manifestu: Pokazuje następne kroki przekazywania manifestu do Fabric
  • Metryki czasowe: Raportuje całkowity czas trwania wdrożenia

Wdrażanie ręczne

Aplikację frontonu można również wdrożyć ręcznie przy użyciu poleceń programu Azure PowerShell:

Kompilowanie aplikacji

Najpierw skompiluj aplikację frontonu dla środowiska testowego:

npm run build:test

Tworzenie pakietu wdrożeniowego

  1. Przejdź do build\Frontend folderu w projekcie
  2. Zaznacz wszystkie pliki i assets folder w katalogu kompilacji
  3. Tworzenie pliku zawierającego .zip wszystkie wybrane pliki

Wdrażanie przy użyciu programu 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>

Parametry wdrażania ręcznego

Parameter Description Example
<subscription_id> Identyfikator subskrypcji platformy Azure 12345678-1234-1234-1234-123456789012
<resource_group_name> Grupa zasobów zawierająca aplikację internetową fabric-workload-rg
<web_app_name> Nazwa aplikacji internetowej platformy Azure my-fabric-workload
<zip_file_path> Pełna ścieżka do pliku wdrożenia zip C:\path\to\deployment.zip

Uwaga / Notatka

Wdrożenie ręczne wymaga posiadania odpowiednich uprawnień platformy Azure i modułu Azure PowerShell zainstalowanego na maszynie.

Zagadnienia dotyczące zabezpieczeń

Przepływ uwierzytelniania

Twój proces roboczy jest uwierzytelniany w systemie Fabric z użyciem standardowego przepływu OAuth 2.0.

  1. Użytkownik uzyskuje dostęp do obciążenia roboczego za pośrednictwem Fabric
  2. Fabric przekierowuje do aplikacji hostowanej na platformie Azure
  3. Aplikacja przekierowuje do identyfikatora Entra na potrzeby uwierzytelniania
  4. Entra ID zwraca token uwierzytelniania
  5. Aplikacja używa tokenu do uzyskiwania dostępu do interfejsów API Fabric

Bezpieczna konfiguracja

  • Zmienne środowiskowe: konfiguracja sklepu w ustawieniach aplikacji platformy Azure, a nie w kodzie
  • Integracja z usługą Key Vault: uzyskiwanie dostępu do tajemnic z tożsamością zarządzaną
  • Tylko protokół HTTPS: wymuszanie protokołu HTTPS dla całej komunikacji
  • Konfiguracja mechanizmu CORS: Konfigurowanie odpowiednich zasad CORS dla domen Fabric

Najlepsze rozwiązania

  • Najmniejsze uprawnienia: przyznaj minimalnie wymagane uprawnienia do tożsamości zarządzanej
  • Rotacja wpisów tajnych: Regularnie obracaj wpisy tajne przechowywane w usłudze Key Vault
  • Zabezpieczenia sieci: używaj prywatnych punktów końcowych, jeśli to możliwe
  • Monitorowanie: włączanie usługi Application Insights na potrzeby monitorowania zabezpieczeń

Konfiguracja po wdrożeniu

Konfiguracja usługi Azure App Service

Po wdrożeniu skonfiguruj usługę 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/"

Konfiguracja usługi Key Vault

Przechowywanie poufnej konfiguracji w usłudze Key Vault:

# 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"

Konfiguracja tożsamości zarządzanej

Konfigurowanie tożsamości zarządzanej na potrzeby dostępu do usługi Key Vault:

# 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

Wdrażanie manifestu

Po wdrożeniu aplikacji na platformie Azure należy przesłać pakiet manifestu do Fabric.

Kompilowanie pakietu manifestu

Najpierw skompiluj pakiet manifestu:

.\scripts\Build\BuildManifestPackage.ps1

Utworzy to release\ManifestPackage.1.0.0.nupkg, który zawiera manifest obciążenia.

Przesyłanie do portalu administracyjnego Fabric

  1. Otwieranie portalu administracyjnego usługi Microsoft Fabric
  2. Przejdź do obszaru Zarządzanie obciążeniami>Przekaż obciążenie
  3. Prześlij swój plik ManifestPackage.1.0.0.nupkg
  4. Konfigurowanie ustawień i uprawnień obciążenia
  5. Aktywowanie obciążenia dla dzierżawy

Aktualizacja manifestu wdrożenia platformy Azure

Przed utworzeniem pakietu manifestu dla wdrożenia platformy Azure upewnij się, że wartości w .env pliku (takie jak FRONTEND_URL, FRONTEND_APPIDi wszelkie inne wymagane zmienne) są poprawnie ustawiane dla środowiska platformy Azure. Podczas procesu kompilacji wartości te zostaną wstawione do elementu WorkloadManifest.xml.

Aby uzyskać pełną listę wymaganych zmiennych środowiskowych i wskazówki dotyczące ich ustawiania, zobacz Ogólne wymagania dotyczące publikowania.

Monitorowanie i rozwiązywanie problemów

Application Insights

Włącz usługę Application Insights na potrzeby monitorowania:

  • Monitorowanie wydajności: śledzenie czasów ładowania stron i interakcji użytkownika
  • Śledzenie błędów: Monitorowanie błędów języka JavaScript i żądań, które zakończyły się niepowodzeniem
  • Analiza użycia: Zrozumienie, jak użytkownicy wchodzą w interakcję z obciążeniem systemu
  • Telemetria niestandardowa: dodawanie metryk niestandardowych dla logiki biznesowej

Typowe problemy i rozwiązania

Błędy wdrażania

  • Błędy uwierzytelniania: Weryfikowanie logowania za pomocą Azure CLI z az account show
  • Nie znaleziono zasobu: Upewnij się, że nazwa aplikacji internetowej i grupa zasobów są poprawne
  • Odmowa dostępu: Upewnij się, że twoje konto ma rolę Kontrybutora w grupie zasobów

Uwaga / Notatka

Błąd: Identyfikator URI frontend nie znajduje się na liście domen dzierżawy: ten błąd oznacza, że domena niestandardowa twojego obciążenia roboczego nie jest zarejestrowana na liście zaakceptowanych domen w dzierżawie Entra ID. Aby rozwiązać ten problem, dodaj domenę niestandardową do identyfikatora Entra. Aby uzyskać więcej informacji, zobacz Custom Domain Verification (Weryfikacja domeny niestandardowej ) w ogólnych wymaganiach dotyczących publikowania.

Problemy ze środowiskiem uruchomieniowym

  • Biały ekran: Sprawdzanie konsoli przeglądarki pod kątem błędów języka JavaScript
  • Błędy uwierzytelniania: Zweryfikuj rejestrację aplikacji Entra ID i identyfikatory URI przekierowania
  • Błędy wywołań interfejsu API: Sprawdź konfigurację mechanizmu CORS i uprawnienia interfejsu API

Optymalizacja wydajności

  • Powolne ładowanie: włączanie kompresji i optymalizowanie rozmiaru pakietu
  • Problemy z pamięcią podręczną: Skonfiguruj odpowiednie nagłówki pamięci podręcznej w usłudze Front Door
  • Opóźnienie geograficzne: upewnij się, że usługa Front Door jest prawidłowo skonfigurowana na potrzeby routingu globalnego