Del via


Sådan hoster du din arbejdsbyrde i Azure

Denne artikel beskriver, hvordan du hoster din Fabric Extensibility Toolkit-arbejdsbelastning i Azure ved hjælp af en frontend-only arkitektur. Extensibility Toolkit bruger en cloud-native implementeringstilgang med Azure-tjenester optimeret til statiske webapplikationer.

Oversigt over arkitektur

Fabric Extensibility Toolkit bruger en arkitektur med fokus på frontend-udrulning med Azure-tjenester:

Diagram af en Azure deployment-arkitektur.

Arkitektur for værktøjssæt til udvidelsesmuligheder

Udvidelsesværktøjsværktøjsarkitekturen indeholder følgende egenskaber:

  • Frontend-only implementering: Din arbejdsbelastning kører udelukkende i browseren uden en separat backend
  • Statisk webhosting: Bruger Azure Storage statiske hjemmesider til hosting
  • Azure Front Door: Tilbyder global CDN, SSL-terminering og routing
  • Managed services: Udnytter Entra ID, Key Vault og Managed Identity til sikkerhed
  • Enkelt udrulningsproces: Bruger leverede PowerShell-scripts til udrulning

Azure-tjenester brugt

Azure Front Door

Azure Front Door fungerer som det globale indgangspunkt for din arbejdsbyrde. Den omfatter:

  • Global load balancing: Dirigerer brugere til den nærmeste edge-lokation
  • SSL-terminering: Håndterer HTTPS-certifikater automatisk
  • Web Application Firewall (WAF): Beskytter mod almindelige websårbarheder
  • Caching: Forbedrer ydeevnen ved at cache statiske assets ved kantplaceringer

For Extensibility Toolkit dirigerer Front Door trafikken til din statiske hjemmeside, der hostes på Azure Storage, hvilket sikrer høj tilgængelighed og lav latenstid verden over.

Azure Storage Account (statisk hjemmeside)

En Azure Storage-konto med statisk webhosting hoster din byggede arbejdsbelastningsapplikation. Dette giver:

  • Omkostningseffektiv hosting: Betal kun for lagring og båndbredde, der bruges
  • Automatisk skalering: Håndterer trafikspidser uden konfiguration
  • Global tilgængelighed: Indholdet leveres fra Azures globale lagringsinfrastruktur
  • Filbaseret udrulning: Upload filer til udrulningsversioner

Extensibility Toolkit bygger din React-applikation op til statisk HTML, JavaScript, CSS og assets, som implementeres direkte til lagringskontoen.

Azure Key Vault

Azure Key Vault håndterer følsom konfiguration og hemmeligheder:

  • Klienthemmeligheder: Gemmer Entra ID-applikationshemmeligheder sikkert
  • API-nøgler: Administrerer eksterne service API-nøgler
  • Konfiguration: Gemmer miljøspecifikke indstillinger
  • Certifikater: Administrerer SSL-certifikater om nødvendigt

Din arbejdsbyrde får adgang til Key Vault via Managed Identity for sikker, legitimationsfri autentificering.

Azure Entra ID (Azure Active Directory)

Azure Entra ID giver autentificering og autorisation:

  • App-registrering: Registrerer din arbejdsbyrde som en entra-applikation
  • OAuth 2.0-flows: Håndterer brugerautentificering med Fabric
  • API-tilladelser: Administrerer adgang til Fabric- og Microsoft Graph API'er
  • Tokenstyring: Giver sikre adgangstoks til API-kald

Administreret id

Managed Identity leverer sikker service-til-service autentificering:

  • Ingen legitimationsstyring: Eliminerer behovet for at gemme hemmeligheder i kode
  • Tokenhåndtering: Azure håndterer tokenanskaffelse og fornyelse
  • Sikker adgang: Forbinder sikkert til Key Vault og andre Azure-tjenester
  • Identitetslivscyklus: Knyttet til dine Azure-ressourcer til oprydning

Installationsproces

Forudsætninger

Før du deployer til Azure, skal du sikre dig, at du har:

  • Azure-abonnement med passende tilladelser
  • Azure CLI installeret og autentificeret
  • Fabric Extensibility Toolkit-repository klonet lokalt
  • Din arbejdsbyrde bygget op ved hjælp af .\scripts\Build\BuildRelease.ps1

Brug af deployment-scriptet

Udvidelsesværktøjspakken indeholder et PowerShell-implementeringsscript, der scripts\Deploy\DeployToAzureWebApp.ps1 automatiserer udrulningsprocessen.

Grundlæggende udrulning

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

Yderligere udrulningsmuligheder

# 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

Udrulningsskriptparametre

Parameter Beskrivelse Kræves Standard
WebAppName Navn på Azure Web App, der skal deployes til Ja -
ResourceGroupName Ressourcegruppe, der indeholder Webappen Ja -
ReleasePath Sti til byggede applikationsfiler Nej ..\..\release\app
DeploymentMethod Udrulningsmetode (ZipDeploy, FTP, LocalGit) Nej ZipDeploy
SlotName Udrulningsplads til staging Nej -
Force Spring bekræftelsesprompts over Nej $false
CreateBackup Opret backup før udrulning Nej $true
RestartAfterDeploy Genstart appen efter udrulning Nej $true

Funktioner i udrulningsskriptet

Udrulningsscriptet giver omfattende udrulningsmuligheder:

Validering og sikkerhed

  • Prerequisites check: Validates Azure CLI installation og authentication
  • Ressourcevalidering: Bekræfter at mål-webappen eksisterer og er tilgængelig
  • Buildvalidering: Sikrer at release-mappen indeholder de nødvendige filer
  • Oprettelse af backup: Opretter deployment backup til rollback-funktioner

Udrulningsarbejdsgang

  • ZIP-pakkeoprettelse: Komprimerer den indbyggede applikation til en deploymentspakke
  • Størrelsesrapportering: Viser størrelsen på udrulningspakken til verifikation
  • Statusovervågning: Giver opdateringer om status på udrulningen i realtid
  • Fejlhåndtering: Detaljerede fejlmeddelelser med fejlsøgningsvejledning

Efter udsendelse

  • Sundhedstjek: Validerer deployeret applikation reagerer korrekt
  • URL-rapportering: Giver direkte link til den deployerede applikation
  • Manifestvejledning: Viser næste skridt for manifest-upload til Fabric
  • Tidsmålinger: Rapporterer samlet implementeringsvarighed

Manuel udrulning

Du kan også manuelt udrulle din frontend-applikation ved hjælp af Azure PowerShell-kommandoer:

Byg din applikation

Først skal du bygge din frontend-applikation til testmiljøet:

npm run build:test

Opret udrulningspakke

  1. Navigér til build\Frontend mappen i dit projekt
  2. Vælg alle filer og assets mappen under build-mappen
  3. Opret en fil, .zip der indeholder alle de valgte filer

Deploy using 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 udrulningsparametre

Parameter Beskrivelse Eksempel
<subscription_id> Dit Azure-abonnements-ID 12345678-1234-1234-1234-123456789012
<resource_group_name> Ressourcegruppe, der indeholder din webapp fabric-workload-rg
<web_app_name> Navn på din Azure web app my-fabric-workload
<zip_file_path> Fuld sti til din deployment zip-fil C:\path\to\deployment.zip

Notat

Manuel udrulning kræver, at du har de relevante Azure-tilladelser og Azure PowerShell-modulet installeret på din maskine.

Sikkerhedsovervejelser

Godkendelsesflow

Din arbejdsbelastning autentificeres med Fabric ved hjælp af standard OAuth 2.0-flowet:

  1. Brugeren får adgang til din arbejdsbyrde via Fabric
  2. Fabric omdirigerer til din Azure-hostede applikation
  3. Din app omdirigerer til Entra-ID for autentificering
  4. Entra ID returnerer autentificeringstoken
  5. Din app bruger token til at få adgang til Fabric API'er

Sikker konfiguration

  • Miljøvariabler: Gem konfigurationen i Azure App Settings, ikke i koden
  • Key Vault-integration: Adgang til hemmeligheder via Managed Identity
  • Kun HTTPS: Håndhæv HTTPS for al kommunikation
  • CORS-konfiguration: Konfigurer passende CORS-politikker for Fabric-domæner

Bedste praksis

  • Mindst privilegium: Giv minimale nødvendige tilladelser til Managed Identity
  • Hemmelig rotation: Roterer regelmæssigt hemmeligheder, der er lagret i Key Vault
  • Netværkssikkerhed: Brug Private Endpoints, hvor det er muligt.
  • Overvågning: Aktiver Application Insights til sikkerhedsovervågning

Konfiguration efter udrulning

Azure App Service configuration

Efter udrulning konfigurerer du din 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/"

Key Vault-opsætning

Gem følsom konfiguration i 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"

Konfiguration af administreret identitet

Konfigurér Managed Identity til Key Vault-adgang:

# 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

Manifestudrulning

Efter at have udrullet din applikation til Azure, skal du uploade manifestpakken til Fabric:

Byg manifestpakke

Først skal du bygge manifestpakken:

.\scripts\Build\BuildManifestPackage.ps1

Dette skaber release\ManifestPackage.1.0.0.nupkg en begrænsning af din arbejdsbyrde.

Upload til Fabric Admin Portal

  1. Åbn Microsoft Fabric Admin Portal
  2. Naviger til Workload Management>Upload workload
  3. Upload din ManifestPackage.1.0.0.nupkg fil
  4. Konfigurer arbejdsbelastningsindstillinger og tilladelser
  5. Aktiver arbejdsbyrden for din lejer

Update manifest for Azure deployment

Før du bygger din manifestpakke til Azure-udrulning, skal du sikre dig, at værdierne i din .env fil (såsom FRONTEND_URL, FRONTEND_APPID, og andre nødvendige variabler) er korrekt sat til dit Azure-miljø. Disse værdier vil blive indsat i din WorkloadManifest.xml under byggeprocessen.

For en komplet liste over nødvendige miljøvariabler og vejledning til at sætte dem, se Generelle publiceringskrav.

Overvågning og fejlfinding

Application Insights

Aktiver Application Insights til overvågning:

  • Ydelsesovervågning: Spor sideindlæsningstider og brugerinteraktioner
  • Fejlsporing: Overvåg JavaScript-fejl og mislykkede forespørgsler
  • Brugsanalyse: Forstå, hvordan brugere interagerer med din arbejdsbyrde
  • Tilpasset telemetri: Tilføj brugerdefinerede metrikker til forretningslogik

Almindelige problemer og løsninger

Udrulningsfejl

  • Autentificeringsfejl: Verificér Azure CLI-login med az account show
  • Ressource ikke fundet: Bekræft webapp-navn og ressourcegruppe er korrekte
  • Tilladelse nægtet: Sørg for, at din konto har bidragyder-rollen i ressourcegruppen

Notat

Fejl: Frontend-uri er ikke på listen over lejerdomæner: Denne fejl betyder, at din workloads brugerdomæne ikke er registreret i din Entra ID-lejers liste over accepterede domæner. For at løse det, tilføj dit brugerdefinerede domæne til Entra ID. For mere information, se Custom Domain Verification i de generelle publiceringskrav.

Kørselstidsproblemer

  • Hvid skærm: Tjek browserens konsol for JavaScript-fejl
  • Autentificeringsfejl: Bekræft Entra ID-appregistrering og omdiriger URI'er
  • API-kaldsfejl: Tjek CORS-konfiguration og API-tilladelser

Optimering af ydeevnen

  • Langsom indlæsning: Aktivér komprimering og optimer bundle-størrelsen
  • Caching-problemer: Konfigurer korrekte cache-headere i Front Door
  • Geografisk latens: Sørg for, at Front Door er korrekt konfigureret til global routing