Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se describe cómo hospedar la carga de trabajo de Fabric Extensibility Toolkit en Azure mediante una arquitectura de solo front-end. El Kit de herramientas de extensibilidad usa un enfoque de implementación nativa de la nube con servicios de Azure optimizados para aplicaciones web estáticas.
Introducción a la arquitectura
Fabric Extensibility Toolkit usa una arquitectura centrada en la implementación de front-end con los servicios de Azure:
Arquitectura del kit de herramientas de extensibilidad
La arquitectura del Kit de herramientas de extensibilidad incluye las siguientes características:
- Implementación solo de front-end: la carga de trabajo se ejecuta completamente en el explorador sin un back-end independiente
- Hospedaje de sitios web estáticos: usa sitios web estáticos de Azure Storage para hospedar
- Azure Front Door: proporciona red CDN global, terminación SSL y enrutamiento
- Servicios administrados: aprovecha el identificador de Entra, Key Vault y la identidad administrada para la seguridad
- Proceso de implementación único: usa scripts de PowerShell proporcionados para la implementación
Servicios de Azure usados
Azure Front Door (portal de entrada de Azure)
Azure Front Door actúa como punto de entrada global para la carga de trabajo. Proporciona:
- Equilibrio de carga global: enruta a los usuarios a la ubicación perimetral más cercana.
- Terminación SSL: controla automáticamente los certificados HTTPS.
- Firewall de aplicaciones web (WAF): protege contra vulnerabilidades web comunes
- Almacenamiento en caché: mejora el rendimiento mediante el almacenamiento en caché de recursos estáticos en ubicaciones perimetrales
Para Extensibility Toolkit, Front Door enruta el tráfico al sitio web estático hospedado en Azure Storage, lo que garantiza una alta disponibilidad y una baja latencia en todo el mundo.
Cuenta de Azure Storage (sitio web estático)
Una cuenta de Azure Storage, que hospeda un sitio web estático, aloja su aplicación de carga de trabajo construida. y ofrece:
- Hospedaje rentable: pago solo por almacenamiento y ancho de banda usado
- Escalado automático: controla los picos de tráfico sin configuración
- Disponibilidad global: el contenido se sirve desde la infraestructura de almacenamiento global de Azure.
- Implementación basada en archivos: carga de archivos para implementar versiones
El kit de herramientas de extensibilidad compila la aplicación React en recursos HTML estáticos, JavaScript, CSS y que se implementan directamente en la cuenta de almacenamiento.
Azure Key Vault
Azure Key Vault administra la configuración confidencial y los secretos:
- Secretos de cliente: almacena los secretos de aplicación de Entra ID de forma segura
- Claves de API: administra claves de API de servicio externo
- Configuración: almacena valores específicos del entorno
- Certificados: administra los certificados SSL si es necesario.
La carga de trabajo accede a Key Vault a través de una identidad administrada para la autenticación segura y sin credenciales.
Azure Entra ID (Directorio Activo de Azure)
Azure Entra ID proporciona autenticación y autorización:
- Registro de aplicaciones: registra su carga de trabajo como una aplicación Entra.
- Flujos de OAuth 2.0: controla la autenticación de usuario con Fabric
- Permisos de API: administra el acceso a las API de Fabric y Microsoft Graph.
- Administración de tokens: proporciona tokens de acceso seguros para llamadas a la API
Identidad administrada
Managed Identity proporciona autenticación segura de servicio a servicio:
- Sin administración de credenciales: elimina la necesidad de almacenar secretos en el código.
- Gestión de tokens: Azure se encarga de la adquisición y renovación de tokens.
- Acceso seguro: se conecta a Key Vault y a otros servicios de Azure de forma segura
- Ciclo de vida de la identidad: vinculado a los recursos de Azure para la depuración
Proceso de implementación
Prerrequisitos
Antes de realizar la implementación en Azure, asegúrese de que tiene:
- Suscripción de Azure con los permisos adecuados
- CLI de Azure instalada y autenticada
- Repositorio de Fabric Extensibility Toolkit clonado localmente
- Tu carga de trabajo creada con
.\scripts\Build\BuildRelease.ps1
Uso del script de implementación
Extensibility Toolkit incluye un script de implementación de PowerShell en scripts\Deploy\DeployToAzureWebApp.ps1 que automatiza el proceso de implementación.
Implementación básica
# Deploy to an existing Azure Web App
.\scripts\Deploy\DeployToAzureWebApp.ps1 -WebAppName "my-fabric-workload" -ResourceGroupName "fabric-workload-rg"
Opciones de implementación adicionales
# 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
Parámetros de script de implementación
| Parámetro | Description | Obligatorio | Predeterminado |
|---|---|---|---|
WebAppName |
Nombre de la aplicación web de Azure en la que se va a implementar | Sí | - |
ResourceGroupName |
Grupo de recursos que contiene la aplicación web | Sí | - |
ReleasePath |
Ruta de acceso a los archivos de aplicación compilados | No | ..\..\release\app |
DeploymentMethod |
Método deployment (ZipDeploy, FTP, LocalGit) | No | ZipDeploy |
SlotName |
Ranura de implementación para almacenamiento provisional | No | - |
Force |
Omitir avisos de confirmación | No | $false |
CreateBackup |
Creación de una copia de seguridad antes de la implementación | No | $true |
RestartAfterDeploy |
Reinicio de la aplicación después de la implementación | No | $true |
Características del script de implementación
El script de implementación proporciona funcionalidades de implementación completas:
Validación y seguridad
- Comprobación de requisitos previos: valida la instalación y la autenticación de la CLI de Azure
- Validación de recursos: confirma que existe la aplicación web de destino y es accesible
- Validación de compilación: garantiza que el directorio de entrega contiene los archivos necesarios.
- Creación de copias de seguridad: crea una copia de seguridad de implementación para las funcionalidades de reversión.
Flujo de trabajo de implementación
- Creación de paquetes ZIP: comprime la aplicación integrada en el paquete de implementación.
- Informes de tamaño: muestra el tamaño del paquete de implementación para la comprobación
- Supervisión del progreso: proporciona actualizaciones de estado de implementación en tiempo real
- Control de errores: mensajes de error detallados con instrucciones para la solución de problemas
Posterior a la implementación
- Comprobación de estado: valida que la aplicación implementada responde correctamente.
- Informes de direcciones URL: proporciona un vínculo directo a la aplicación implementada.
- Guía del manifiesto: muestra los pasos siguientes para la carga de manifiestos en Fabric
- Métricas de tiempo: notifica la duración total de la implementación
Implementación manual
También puede implementar la aplicación de front-end manualmente mediante comandos de Azure PowerShell:
Compilación de la aplicación
En primer lugar, compile la aplicación de front-end para el entorno de prueba:
npm run build:test
Creación de un paquete de implementación
- Vaya a la
build\Frontendcarpeta del proyecto. - Seleccione todos los archivos y la
assetscarpeta en el directorio de compilación. - Crear un
.ziparchivo que contenga todos los archivos seleccionados
Implementación mediante 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>
Parámetros de implementación manual
| Parámetro | Description | Example |
|---|---|---|
<subscription_id> |
Identificador de suscripción de Azure | 12345678-1234-1234-1234-123456789012 |
<resource_group_name> |
Grupo de recursos que contiene la aplicación web | fabric-workload-rg |
<web_app_name> |
Nombre de la aplicación web de Azure | my-fabric-workload |
<zip_file_path> |
Ruta de acceso completa al archivo ZIP de implementación | C:\path\to\deployment.zip |
Nota:
La implementación manual requiere que tenga los permisos de Azure adecuados y el módulo de Azure PowerShell instalado en la máquina.
Consideraciones de seguridad
Flujo de autenticación
La carga de trabajo se autentica con Fabric mediante el flujo estándar de OAuth 2.0:
- El usuario accede a la carga de trabajo a través de Fabric
- Fabric redirige a la aplicación hospedada en Azure.
- La aplicación redirige a Entra ID para la autenticación.
- Entra ID devuelve el token de autenticación.
- La aplicación usa el token para acceder a las API de Fabric.
Configuración segura
- Variables de entorno: almacenar la configuración en Azure App Settings, no en el código
- Integración de Key Vault: acceso a secretos mediante identidad administrada
- Solo HTTPS: exigir HTTPS para toda la comunicación
- Configuración de CORS: Configuración de directivas de CORS adecuadas para dominios de Fabric
procedimientos recomendados
- Privilegios mínimos: conceda permisos mínimos necesarios a la identidad administrada.
- Rotación de secretos: Cambio regular de secretos almacenados del Key Vault
- Seguridad de red: use puntos de conexión privados siempre que sea posible.
- Supervisión: Habilitación de Application Insights para la supervisión de seguridad
Configuración después de la implementación
Configuración de Azure App Service
Después de la implementación, configure 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/"
Configuración de Key Vault
Almacenamiento de la configuración confidencial en 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"
Configuración de identidad administrada
Configuración de la identidad administrada para el acceso a 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
Implementación del manifiesto
Después de implementar la aplicación en Azure, debe cargar el paquete de manifiesto en Fabric:
Generar paquete de manifiesto
En primer lugar, compile el paquete de manifiesto:
.\scripts\Build\BuildManifestPackage.ps1
Esto crea release\ManifestPackage.1.0.0.nupkg que contiene el manifiesto de tareas.
Cargar en el Portal de administración de Fabric
- Abrir el Portal de administración de Microsoft Fabric
- Vaya a Administración de cargas de trabajo>Cargar carga de trabajo
- Carga del
ManifestPackage.1.0.0.nupkgarchivo - Configurar los ajustes y permisos de la carga de trabajo
- Activación de la carga de trabajo para el inquilino
Actualización del manifiesto para la implementación de Azure
Antes de compilar el paquete de manifiesto para la implementación de Azure, asegúrese de que los valores del .env archivo (como FRONTEND_URL, FRONTEND_APPIDy cualquier otra variable necesaria) se establecen correctamente para el entorno de Azure. Estos valores se sustituirán en el WorkloadManifest.xml durante el proceso de compilación.
Para obtener una lista completa de las variables de entorno necesarias e instrucciones sobre cómo establecerlas, consulte Los requisitos generales de publicación.
Supervisión y solución de problemas
Application Insights
Habilite Application Insights para la supervisión:
- Supervisión del rendimiento: seguimiento de los tiempos de carga de páginas y las interacciones del usuario
- Seguimiento de errores: Monitorización de errores de JavaScript y solicitudes fallidas
- Análisis de uso: comprender cómo interactúan los usuarios con la carga de trabajo
- Telemetría personalizada: adición de métricas personalizadas para la lógica de negocios
Problemas comunes y soluciones
Errores de implementación
-
Errores de autenticación: Verificar el inicio de sesión de la CLI de Azure con
az account show - Recurso no encontrado: confirme que el nombre de la aplicación web y el grupo de recursos son correctos.
- Permiso denegado: asegúrese de que la cuenta tiene el rol de colaborador en el grupo de recursos.
Nota:
Error: el URI de front-end no está en la lista de dominios de inquilino: este error significa que el dominio personalizado de la carga de trabajo no está registrado en la lista de dominios aceptados del inquilino de Entra ID. Para resolverlo, agregue el dominio personalizado a Entra ID. Para obtener más información, vea Comprobación de dominio personalizado en los requisitos generales de publicación.
Problemas en tiempo de ejecución
- Pantalla blanca: comprobar si hay errores de JavaScript en la consola del explorador
- Errores de autenticación: verificar el registro de la aplicación Entra ID y los URI de redirección
- Fallos de llamada de API: Verifique la configuración de CORS y los permisos de API
Optimización del rendimiento
- Carga lenta: habilite la compresión y optimice el tamaño del lote.
- Problemas de almacenamiento en caché: configuración de encabezados de caché adecuados en Front Door
- Latencia geográfica: asegúrese de que Front Door está configurado correctamente para el enrutamiento global.
Guías relacionadas
- Cómo publicar y gestionar una carga de trabajo - Subiendo el manifiesto a Fabric
- Guía de configuración: configuración inicial del entorno de desarrollo
- Tutorial: Introducción: Introducción al kit de herramientas de extensibilidad