Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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:
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
- Przejdź do
build\Frontendfolderu w projekcie - Zaznacz wszystkie pliki i
assetsfolder w katalogu kompilacji - Tworzenie pliku zawierającego
.zipwszystkie 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.
- Użytkownik uzyskuje dostęp do obciążenia roboczego za pośrednictwem Fabric
- Fabric przekierowuje do aplikacji hostowanej na platformie Azure
- Aplikacja przekierowuje do identyfikatora Entra na potrzeby uwierzytelniania
- Entra ID zwraca token uwierzytelniania
- 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
- Otwieranie portalu administracyjnego usługi Microsoft Fabric
- Przejdź do obszaru Zarządzanie obciążeniami>Przekaż obciążenie
- Prześlij swój plik
ManifestPackage.1.0.0.nupkg - Konfigurowanie ustawień i uprawnień obciążenia
- 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
Powiązane przewodniki
- Jak opublikować i zarządzać obciążeniem — przekazywanie manifestu do Fabric
- Przewodnik konfiguracji — początkowa konfiguracja środowiska programistycznego
- Samouczek: Wprowadzenie — pierwsze kroki z pakietem narzędzi do rozszerzalności