Implementar una aplicación de Fabric en Fabric

Implemente una aplicación de Fabric en Fabric iniciando sesión, ejecutando el flujo de implementación de la CLI y revisando qué npx rayfin up configura para la aplicación. En este artículo se explica el concepto de lo que sucede durante la implementación.

Prerequisites

  • Un proyecto de Fabric Apps con un archivo de configuración de rayfin/rayfin.yml. Si aún no tiene un proyecto, consulte Crear el primer proyecto de Fabric Apps.
  • Una cuenta de Microsoft Entra ID con acceso a un área de trabajo de Fabric.

Despliega tu aplicación

Ejecute el siguiente comando desde la raíz del proyecto:

npx rayfin up

Si no ha iniciado sesión, la CLI inicia automáticamente un flujo de inicio de sesión interactivo.

Qué hace el despliegue

El rayfin up comando realiza estos pasos en orden:

  1. Crea un elemento Fabric Apps en el área de trabajo de Fabric (o reutiliza el existente en las implementaciones posteriores).
  2. Recupera la clave que se puede publicar del servicio remoto.
  3. Sincroniza la configuración en tiempo de ejecución desde rayfin.yml al servicio remoto, incluida la configuración de autenticación y los indicadores del servicio.
  4. Aplica el esquema de base de datos generado por los decoradores del modelo de datos de TypeScript.
  5. Compila e implementa contenido estático si staticHosting está habilitado en rayfin.yml, ejecuta el comando de compilación, empaqueta la carpeta de salida en un ARCHIVO ZIP y lo carga.
  6. Guarda los detalles del despliegue en los archivos rayfin.yml y .env.fabric-* para despliegues posteriores.

Después de la implementación, la CLI imprime:

  • La dirección URL de hospedaje en la que está activa la aplicación
  • Vínculo de Fabric portal para administrar la implementación
  • El identificador de implementación como referencia

Configurar la autenticación

Solo se admite la autenticación intermediada de Fabric (Entra SSO) en las aplicaciones desplegadas. La autenticación de correo electrónico y contraseña está disponible durante el desarrollo local, pero no funciona después de realizar la implementación en Fabric.

Asegúrese de que rayfin.yml tiene habilitada la autenticación Fabric antes de ejecutar rayfin up:

services:
  auth:
    enabled: true
    fabric:
      enabled: true

Vista previa de la implementación sin cambios

Use --dry-run para ver lo que haría la CLI sin crear o modificar ningún recurso:

npx rayfin up --dry-run

Aplicación de cambios en la base de datos

Después de actualizar los modelos de datos, inserte los cambios de esquema en la base de datos remota sin volver a implementar la pila completa:

npx rayfin up db apply

Si el cambio de esquema implica operaciones potencialmente destructivas (quitar columnas, cambiar el nombre de las tablas), la CLI le advierte y se niega a continuar. Use --force para invalidar la comprobación de seguridad:

npx rayfin up db apply --force

Caution

El uso --force de puede provocar la pérdida de datos. Revise detenidamente las operaciones enumeradas y confirme que acepta las consecuencias antes de continuar.

Reimplementación de contenido estático

Cuando solo se cambia el código de front-end, vuelva a implementar contenido estático de forma independiente para un ciclo de iteración más rápido:

npx rayfin up staticapp deploy

Este comando ejecuta tu buildCommand configurado, empaqueta la salida y la sube al servicio remoto.

Para omitir el paso de compilación e implementar la salida existente:

npx rayfin up staticapp deploy --skip-build

Comprobación del estado de implementación

Vea el estado actual de la implementación de Fabric:

npx rayfin up status

Agregue --json para la salida legible por la máquina:

npx rayfin up status --json

Actualización de implementaciones existentes

Después de la primera implementación, rayfin.yml almacena los detalles de implementación (rayfinItemId, fabricWorkspaceIdy el punto de conexión del elemento). La ejecución npx rayfin up de nuevo actualiza la misma implementación en lugar de crear una nueva.

Para las actualizaciones dirigidas, use los subcomandos:

Comando Qué actualiza
npx rayfin up Todo: configuración, base de datos y contenido estático.
npx rayfin up db apply Solo esquema de base de datos.
npx rayfin up staticapp deploy Solo contenido estático.

Solución de problemas de implementación

El despliegue falla con el error 401 o 403

Es posible que la sesión haya expirado. Ejecute npx rayfin login para volver a autenticar y vuelva a intentar npx rayfin up.

La base de datos informa de cambios destructivos

La CLI de Rayfin bloquea los cambios de esquema que podrían provocar la pérdida de datos. Revise las operaciones enumeradas y use npx rayfin up db apply --force solo después de confirmar que acepta la pérdida de datos.

La implementación estática supera el límite de tamaño

El archivo comprimido no debe superar los 100 MB. Optimice la salida de la compilación excluyendo los mapas de origen y los recursos de desarrollo grandes, o mueva archivos binarios al almacenamiento de Fabric Apps.

Administración de la aplicación en el portal de Fabric

Después de la implementación, puede administrar la aplicación de Fabric directamente en el portal Fabric.

Ver las propiedades del elemento

Abra la aplicación Fabric en el portal de Fabric para ver:

  • Dirección URL de la aplicación : dirección URL pública donde se hospeda el contenido estático.
  • Dirección URL del back-end de la aplicación: la dirección URL base de todos los servicios de back-end.

Administrar servicios secundarios

Seleccione la aplicación Fabric para ver sus servicios secundarios:

  • SQL Database: abre el editor de consultas sql de Fabric. Puede ejecutar consultas de lectura en sus datos. Los cambios de esquema realizados directamente en el portal de Fabric se sobrescriben en la siguiente implementación de rayfin up.
  • Autenticación : vea y administre usuarios autenticados en la tabla Usuarios de la base de datos SQL secundaria.

Permisos de aplicación

Para cualquier colaborador de la aplicación de Fabric, para poder implementar una aplicación de Fabric, necesita como mínimo el permiso Edit en el elemento.