Cree un portal para microinterfaces mediante Angular AWS Amplify y Module Federation - Recomendaciones de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cree un portal para microinterfaces mediante Angular AWS Amplify y Module Federation

Creada por Milena Godau (AWS) y Pedro Garcia () AWS

Repositorio de código: Angular Micro-frontend Portal

Entorno: PoC o piloto

Tecnologías: aplicaciones web y móviles; infraestructura; redes; modernización

Carga de trabajo: código abierto

AWSservicios: AWS Amplify; AWS CLI

Resumen

Una arquitectura de microinterfaz permite a varios equipos trabajar en diferentes partes de una aplicación de interfaz de forma independiente. Cada equipo puede desarrollar, crear e implementar un fragmento de la interfaz sin interferir con otras partes de la aplicación. Desde la perspectiva del usuario final, parece ser una aplicación única y cohesiva. Sin embargo, están interactuando con varias aplicaciones independientes publicadas por diferentes equipos.

Este documento describe cómo crear una arquitectura de microinterfaz mediante AWS Amplifyel uso del marco de interfaz Angular y la federación de módulos. En este patrón, las microinterfaces se combinan en el lado del cliente mediante una aplicación shell (o principal). La aplicación shell actúa como un contenedor que recupera, muestra e integra las microinterfaces. La aplicación shell gestiona el enrutamiento global, que carga diferentes microinterfaces. El complemento @angular -architects/module-federation integra Module Federation con Angular. Para implementar la aplicación shell y las microinterfaces, utilice. AWS Amplify Los usuarios finales acceden a la aplicación a través de un portal web.

El portal está dividido verticalmente. Esto significa que las microinterfaces son vistas completas o grupos de vistas, en lugar de partes de la misma vista. Por lo tanto, la aplicación shell carga solo una microinterfaz a la vez.

Las microinterfaces se implementan como módulos remotos. La aplicación shell carga estos módulos remotos de forma lenta, lo que aplaza la inicialización de la microinterfaz hasta que sea necesaria. Este enfoque optimiza el rendimiento de la aplicación al cargar solo los módulos necesarios. Esto reduce el tiempo de carga inicial y mejora la experiencia general del usuario. Además, compartes dependencias comunes entre los módulos a través del archivo de configuración del paquete web (webpack.config.js). Esta práctica promueve la reutilización del código, reduce la duplicación y agiliza el proceso de empaquetado.

Requisitos previos y limitaciones

Requisitos previos 

Versiones de producto

  • Angular, CLI versión 13.1.2 o posterior

  • @angular -architects/module-federation, versión 14.0.1 o posterior

  • webpack versión 5.4.0 o posterior

  • AWS Amplify Generación 1

Limitaciones

Una arquitectura de microinterfaz es un enfoque poderoso para crear aplicaciones web escalables y resilientes. Sin embargo, es fundamental comprender los siguientes desafíos potenciales antes de adoptar este enfoque:

  • Integración: uno de los principales desafíos es el posible aumento de la complejidad en comparación con las interfaces monolíticas. Organizar múltiples microinterfaces, gestionar la comunicación entre ellas y gestionar las dependencias compartidas puede resultar más complejo. Además, puede haber una sobrecarga de rendimiento asociada a la comunicación entre las microinterfaces. Esta comunicación puede aumentar la latencia y reducir el rendimiento. Esto debe abordarse mediante mecanismos de mensajería eficientes y estrategias de intercambio de datos.

  • Duplicación de código: dado que cada microinterfaz se desarrolla de forma independiente, existe el riesgo de duplicar el código para funciones comunes o bibliotecas compartidas. Esto puede aumentar el tamaño total de la aplicación e introducir problemas de mantenimiento.

  • Coordinación y administración: coordinar los procesos de desarrollo e implementación en múltiples microinterfaces puede ser un desafío. Garantizar un control de versiones uniforme, gestionar las dependencias y mantener la compatibilidad entre los componentes se vuelve más fundamental en una arquitectura distribuida. Establecer una gobernanza clara, directrices y procesos automatizados de pruebas e implementación es esencial para una colaboración y una entrega fluidas.

  • Pruebas: probar arquitecturas de microinterfaces puede ser más complejo que probar interfaces monolíticas. Se requieren esfuerzos adicionales y estrategias de prueba especializadas para realizar pruebas y ensayos de integración entre componentes y end-to-end para validar experiencias de usuario consistentes en múltiples microinterfaces.

Antes de decidirse por el enfoque de las microinterfaces, le recomendamos que consulte Cómo entender e implementar las microinterfaces en. AWS

Arquitectura

En una arquitectura de microinterfaz, cada equipo desarrolla e implementa las funciones de forma independiente. La siguiente imagen muestra cómo varios DevOps equipos trabajan juntos. El equipo del portal desarrolla la aplicación shell. La aplicación shell actúa como contenedor. Recupera, muestra e integra las aplicaciones de microinterfaz publicadas por otros equipos. DevOps Se utiliza AWS Amplify para publicar la aplicación shell y las aplicaciones de microinterfaz.

Publicar varias microinterfaces en una aplicación shell a la que el usuario accede a través de un portal web.

El diagrama de la arquitectura muestra el flujo de trabajo siguiente:

  1. El equipo del portal desarrolla y mantiene la aplicación shell. La aplicación shell organiza la integración y la renderización de las microinterfaces para componer todo el portal.

  2. Los equipos A y B desarrollan y mantienen una o más microinterfaces o funciones que están integradas en el portal. Cada equipo puede trabajar de forma independiente en sus respectivas microinterfaces.

  3. El usuario final se autentica mediante Amazon Cognito.

  4. El usuario final accede al portal y se carga la aplicación shell. A medida que el usuario navega, la aplicación shell se encarga del enrutamiento y recupera la microinterfaz solicitada y carga su paquete.

Herramientas

Servicios de AWS

  • AWS Amplifyes un conjunto de herramientas y funciones especialmente diseñadas que ayudan a los desarrolladores de frontend, web y móvil a crear rápidamente aplicaciones completas. AWS En este patrón, se utiliza Amplify CLI para implementar las aplicaciones de microinterfaz de Amplify.

  • AWS Command Line Interface (AWS CLI) es una herramienta de código abierto que le ayuda a interactuar Servicios de AWS mediante los comandos de su consola de línea de comandos.

Otras herramientas

  • @angular -architects/module-federation es un complemento que integra Angular con Module Federation.

  • Angular es un marco de aplicaciones web de código abierto para crear aplicaciones de una sola página modernas, escalables y probables. Sigue una arquitectura modular y basada en componentes que promueve la reutilización y el mantenimiento del código.

  • Node.js es un entorno de JavaScript ejecución basado en eventos diseñado para crear aplicaciones de red escalables.

  • npm es un registro de software que se ejecuta en un entorno Node.js y se utiliza para compartir o tomar prestados paquetes y administrar la implementación de paquetes privados.

  • Webpack Module Federation le ayuda a cargar código que se compila e implementa de forma independiente, como microinterfaces o complementos, en una aplicación.

Repositorio de código

El código de este patrón está disponible en el portal de microfrontend utilizando los repositorios Angular y Module Federation. GitHub Este repositorio contiene las dos carpetas siguientes:

  • shell-appcontiene el código de la aplicación shell.

  • feature1-appcontiene un ejemplo de microinterfaz. La aplicación shell busca esta microinterfaz y la muestra como una página dentro de la aplicación del portal.

Prácticas recomendadas

Las arquitecturas de microinterfaz ofrecen numerosas ventajas, pero también introducen complejidad. Las siguientes son algunas de las mejores prácticas para un desarrollo fluido, un código de alta calidad y una excelente experiencia de usuario:

  • Planificación y comunicación: para agilizar la colaboración, invierta en planificación, diseño y canales de comunicación claros desde el principio.

  • Coherencia en el diseño: aplique un estilo visual coherente en todas las microinterfaces mediante el uso de sistemas de diseño, guías de estilo y bibliotecas de componentes. Esto proporciona una experiencia de usuario coherente y acelera el desarrollo.

  • Gestión de las dependencias: dado que las microinterfaces evolucionan de forma independiente, adopta contratos y estrategias de control de versiones estandarizados para gestionar las dependencias de forma eficaz y evitar problemas de compatibilidad.

  • Arquitectura de microinterfaz: para permitir el desarrollo y la implementación independientes, cada microinterfaz debe tener una responsabilidad clara y bien definida en relación con una funcionalidad encapsulada.

  • Integración y comunicación: para facilitar una integración fluida y minimizar los conflictos, defina contratos y protocolos de comunicación claros entre las microinterfaces, incluidos APIs los eventos y los modelos de datos compartidos.

  • Pruebas y control de calidad: Implemente la automatización de las pruebas y los procesos de integración continua para las microinterfaces. Esto mejora la calidad general, reduce el esfuerzo de realizar pruebas manuales y valida la funcionalidad entre las interacciones entre las microinterfaces.

  • Optimización del rendimiento: supervise continuamente las métricas de rendimiento y realice un seguimiento de las dependencias entre las microinterfaces. Esto le ayuda a identificar los cuellos de botella y a mantener un rendimiento óptimo de las aplicaciones. Para ello, utilice herramientas de supervisión del rendimiento y análisis de dependencias.

  • Experiencia de desarrollador: céntrese en la experiencia del desarrollador proporcionando documentación, herramientas y ejemplos claros. Esto le ayuda a agilizar el desarrollo e incorporar nuevos miembros al equipo.

Epics

TareaDescripciónHabilidades requeridas

Cree la aplicación shell.

  1. En AngularCLI, ingresa el siguiente comando:

    ng new shell --routing
  2. Ingresa el siguiente comando para navegar a la carpeta del proyecto:

    cd shell

    Nota: La estructura de carpetas y proyectos de las aplicaciones de consola y microinterfaz puede ser totalmente independiente. Se pueden gestionar como aplicaciones angulares independientes.

Desarrollador de aplicaciones

Instale el complemento.

En AngularCLI, ingresa el siguiente comando para instalar el complemento @angular -architects/module-federation:

ng add @angular-architects/module-federation --project shell --port 4200
Desarrollador de aplicaciones

Añada la microinterfaz como variable de entorno. URL

  1. Abra el archivo environment.ts.

  2. Añada mfe1URL: 'http://localhost:5000' al objeto: environment

    export const environment = { production: false, mfe1URL: 'http://localhost:5000', };
  3. Guarde y cierre el archivo environment.ts.

Desarrollador de aplicaciones

Defina el enrutamiento.

  1. Abra el archivo app-routing.module.ts.

  2. En AngularCLI, ingresa el siguiente comando para importar el módulo desde el complemento @angular -architects/module-federation: loadRemoteModule

    import { loadRemoteModule } from '@angular-architects/module-federation';
  3. Establezca la ruta predeterminada de la siguiente manera:

    { path: '', pathMatch: 'full', redirectTo: 'mfe1' },
  4. Establezca la ruta para la microinterfaz:

    { path: 'mfe1', loadChildren: () => loadRemoteModule({ type: 'module', remoteEntry: `${environment.mfe1URL}/remoteEntry.js`, exposedModule: './Module' }) .then(m => m.Mfe1Module) },
  5. Guarde y cierre el archivo app-routing.module.ts.

Desarrollador de aplicaciones

mfe1Declare el módulo.

  1. En la src carpeta, cree un archivo nuevo llamado decl.d.ts.

  2. Abra el archivo decl.d.ts.

  3. Añada lo siguiente al archivo:

    declare module 'mfe1/Module';
  4. Guarde y cierre el archivo decl.d.ts.

Desarrollador de aplicaciones

Prepare la precarga para la microinterfaz.

La precarga de la microinterfaz ayuda al paquete web a negociar adecuadamente las bibliotecas y paquetes compartidos.

  1. Abre el archivo main.ts.

  2. Sustituya el contenido por lo siguiente:

    import { loadRemoteEntry } from '@angular-architects/module-federation'; Promise.all([ loadRemoteEntry(`${environment.mfe1URL}/remoteEntry.js`, 'mfe1'), ]) .catch(err => console.error('Error loading remote entries', err)) .then(() => import('./bootstrap')) .catch(err => console.error(err));
  3. Guarde y cierre el archivo main.ts.

Desarrollador de aplicaciones

Ajusta el contenidoHTML.

  1. Abre el archivo app.component.html.

  2. Sustituya el contenido por lo siguiente:

    <h1>Shell application is running!</h1> <router-outlet></router-outlet>
  3. Guarde y cierre el archivo app.component.html.

Desarrollador de aplicaciones
TareaDescripciónHabilidades requeridas

Crea la microinterfaz.

  1. En AngularCLI, ingresa el siguiente comando:

    ng new mfe1 --routing
  2. Ingresa el siguiente comando para navegar a la carpeta del proyecto:

    cd mfe1
Desarrollador de aplicaciones

Instale el complemento.

Introduzca el siguiente comando para instalar el complemento @angular -architects/module-federation:

ng add @angular-architects/module-federation --project mfe1 --port 5000
Desarrollador de aplicaciones

Cree un módulo y un componente.

Introduzca los siguientes comandos para crear un módulo y un componente y exportarlos como módulo de entrada remota:

ng g module mfe1 --routing ng g c mfe1
Desarrollador de aplicaciones

Defina la ruta de enrutamiento predeterminada.

  1. Abra el archivo mfe-routing.module.ts.

  2. Defina la ruta predeterminada de la siguiente manera:

    { path: '', component: Mfe1Component },
  3. Guarde y cierre el archivo mfe-routing.module.ts.

Desarrollador de aplicaciones

mfe1Añada la ruta.

  1. Abre el archivo app-routing.module.ts.

  2. Defina la ruta predeterminada de la siguiente manera:

    { path: '', pathMatch: 'full', redirectTo: 'mfe1' },
  3. Añada la siguiente mfe1 ruta:

    { path: 'mfe1', loadChildren: () => import('./mfe1/mfe1.module').then((m) => m.Mfe1Module), },
  4. Guarde y cierre el archivo app-routing.module.ts.

Desarrollador de aplicaciones

Edite el archivo webpack.config.js.

  1. Abra el archivo webpack.config.js.

  2. Edite la For remotes sección para que coincida con lo siguiente:

    // For remotes (please adjust) name: "mfe1", filename: "remoteEntry.js", exposes: { './Module': './src/app/mfe1/mfe1.module.ts', },
  3. En la shared sección, añada las dependencias que la mfe1 aplicación comparta con la aplicación shell:

    shared: share({ "@angular/core": { singleton: true, strictVersion: true, requiredVersion: 'auto' }, "@angular/common": { singleton: true, strictVersion: true, requiredVersion: 'auto' }, "@angular/common/http": { singleton: true, strictVersion: true, requiredVersion: 'auto' }, "@angular/router": { singleton: true, strictVersion: true, requiredVersion: 'auto' }, ...sharedMappings.getDescriptors() })
  4. Guarde y cierre el archivo webpack.config.js.

Desarrollador de aplicaciones

HTMLAjusta el contenido.

  1. Abre el archivo app.component.html.

  2. Sustituya el contenido por lo siguiente:

    <router-outlet></router-outlet>
  3. Guarde y cierre el archivo app.component.html.

Desarrollador de aplicaciones
TareaDescripciónHabilidades requeridas

Ejecute la mfe1 aplicación.

  1. Introduzca el siguiente comando para iniciar la mfe1 aplicación:

    npm start
  2. En un navegador web, accedahttp://localhost:5000.

  3. Compruebe que la microinterfaz se puede ejecutar de forma independiente. La mfe1 aplicación debería renderizarse correctamente y sin errores.

Desarrollador de aplicaciones

Ejecute la aplicación shell.

  1. Introduzca el siguiente comando para iniciar la aplicación de shell:

    npm start
  2. En un navegador web, accedahttp://localhost:4200/mfe1.

  3. Compruebe que la mfe1 microinterfaz esté integrada en la aplicación shell. La aplicación del portal debe renderizarse correctamente sin errores y debe estar integrada en ella. mfe1

Desarrollador de aplicaciones
TareaDescripciónHabilidades requeridas

Cree un módulo y un componente.

En la carpeta raíz de la aplicación shell, introduzca los siguientes comandos para crear un módulo y un componente para una página de errores:

ng g module error-page --routing ng g c error-page
Desarrollador de aplicaciones

Ajusta el HTML contenido.

  1. Abra el archivo error-page.component.html.

  2. Sustituya el contenido por lo siguiente:

    <p>Sorry, this page is not available.</p>
  3. Guarde y cierre el archivo error-page.component.html.

Desarrollador de aplicaciones

Establezca la ruta de enrutamiento predeterminada.

  1. Abra el archivo error-page-routing.module.ts.

  2. Defina la ruta predeterminada de la siguiente manera:

    { path: '', component: ErrorPageComponent },
  3. Guarde y cierre el archivo error-page-routing.module.ts.

Desarrollador de aplicaciones

Cree una función para cargar microinterfaces.

  1. Abre el archivo app-routing.module.ts.

  2. Cree la siguiente función:

    function loadMFE(url: string) { return loadRemoteModule({ type: 'module', remoteEntry: `${url}/remoteEntry.js`, exposedModule: './Module' }) .then(m => m.Mfe1Module) .catch( () => import('./error-page/error-page.module').then(m => m.ErrorPageModule) ); }
  3. Modifique la mfe1 ruta para que sea la siguiente:

    { path: 'mfe1', loadChildren: () => loadMFE(environment.mfe1URL) },
  4. Guarde y cierre el archivo app-routing.module.ts.

Desarrollador de aplicaciones

Pruebe la gestión de errores.

  1. Si aún no se está ejecutando, introduzca el siguiente comando para iniciar la aplicación shell:

    npm start
  2. En un navegador web, accedahttp://localhost:4200/mfe1.

  3. Compruebe que se muestre la página de error. Debería ver el siguiente texto:

    Sorry, this page is not available.
Desarrollador de aplicaciones
TareaDescripciónHabilidades requeridas

Implemente la microinterfaz.

  1. En AmplifyCLI, navegue hasta la carpeta raíz de la aplicación de microinterfaz.

  2. Ingresa el siguiente comando para inicializar Amplify:

    amplify init
  3. Cuando se le pida que introduzca un nombre para su proyecto de Amplify, pulse Entrar. Esto reutiliza el nombre del archivo package.json.

  4. Cuando se le pida que inicialice el proyecto con la configuración anterior, introduzca. Yes

  5. Cuando se le pida que seleccione un método de autenticación, elijaAWS Profile.

  6. Seleccione el perfil que desee usar.

  7. Espera a que Amplify inicialice el proyecto. Cuando se complete este proceso, recibirá un mensaje de confirmación en la terminal.

  8. Introduce el siguiente comando para añadir una categoría de alojamiento de Amplify a la microinterfaz:

    amplify add hosting
  9. Cuando se le pida que seleccione el módulo de complemento, elija. Hosting with Amplify Console

  10. Cuando se le pida que elija un tipo, elijaManual deployment.

  11. Instale las dependencias npm del proyecto introduciendo el siguiente comando:

    npm install
  12. Publique la aplicación en la consola Amplify introduciendo el siguiente comando:

    amplify publish -y

    Cuando se completa la publicación, Amplify devuelve URL la microinterfaz.

  13. Copia el. URL Necesita este valor para actualizar la aplicación shell.

Desarrollador de aplicaciones, AWS DevOps

Implemente la aplicación shell.

  1. En la carpeta src/app/environments, abra el archivo environments.prod.ts.

  2. Sustituya el valor por el de la microinterfaz implementadamfe1URL: URL

    export const environment = { production: true, mfe1URL: 'https://<env>.<Amplify-app-ID>.amplifyapp.com' };
  3. Guarde y cierre el archivo environments.prod.ts.

  4. En AmplifyCLI, navegue hasta la carpeta raíz de la aplicación shell.

  5. Ingresa el siguiente comando para inicializar Amplify:

    amplify init
  6. Cuando se le pida que introduzca un nombre para su proyecto de Amplify, pulse Entrar. Esto reutiliza el nombre del archivo package.json.

  7. Cuando se le pida que inicialice el proyecto con la configuración anterior, introduzca. Yes

  8. Cuando se le pida que seleccione un método de autenticación, elijaAWS Profile.

  9. Seleccione el perfil que desee usar.

  10. Espera a que Amplify inicialice el proyecto. Cuando se complete este proceso, recibirá un mensaje de confirmación en la terminal.

  11. Añada una categoría de alojamiento Amplify a la aplicación shell:

    amplify add hosting
  12. Cuando se le pida que seleccione el módulo de complemento, elijaHosting with Amplify Console.

  13. Cuando se le pida que elija un tipo, elijaManual deployment.

  14. Instale las dependencias de npm del proyecto introduciendo el siguiente comando:

    npm install
  15. Publique la aplicación shell en la consola Amplify introduciendo el siguiente comando:

    amplify publish -y

    Cuando se completa la publicación, Amplify devuelve URL la aplicación shell desplegada.

  16. Anote la aplicación URL para la shell.

Desarrollador de aplicaciones, propietario de la aplicación

HabilitarCORS.

Como las aplicaciones shell y microfrontend se alojan de forma independiente en dominios diferentes, debe habilitar el intercambio de recursos entre orígenes (CORS) en la microinterfaz. Esto permite que la aplicación shell cargue el contenido desde un origen diferente. Para activarloCORS, añada encabezados personalizados.

  1. En AmplifyCLI, navegue hasta la carpeta raíz de la microinterfaz.

  2. Escriba el siguiente comando:

    amplify configure hosting
  3. Cuando se le pida que configure ajustes personalizados, introduzca. Y

  4. Inicie sesión en la consola Amplify y AWS Management Console, a continuación, ábrala.

  5. Elige la microinterfaz.

  6. En el panel de navegación, selecciona Alojamiento y, a continuación, selecciona Encabezados personalizados.

  7. Elija Editar.

  8. En la ventana Editar encabezados personalizados, introduce lo siguiente:

    customHeaders: - pattern: '*.js' headers: - key: Access-Control-Allow-Origin value: '*' - key: Access-Control-Allow-Methods value: 'GET, OPTIONS' - key: Access-Control-Allow-Headers value: '*'
  9. Seleccione Guardar.

  10. Vuelva a implementar la microinterfaz para aplicar los nuevos encabezados personalizados.

Desarrollador de aplicaciones, AWS DevOps

Cree una regla de reescritura en la aplicación shell.

La aplicación Angular shell está configurada para usar el HTML5 enrutamiento. Si el usuario realiza una actualización exhaustiva, Amplify intenta cargar una página desde la actual. URL Esto genera un error 403. Para evitarlo, añada una regla de reescritura en la consola Amplify.

Para crear la regla de reescritura, siga estos pasos:

  1. En AmplifyCLI, navegue hasta la carpeta raíz de la aplicación shell.

  2. Escriba el siguiente comando:

    amplify configure hosting
  3. Cuando se le pida que configure ajustes personalizados, introduzcaY.

  4. Abra la consola de Amplify.

  5. Elija la aplicación shell.

  6. En el panel de navegación, selecciona Alojamiento y, a continuación, selecciona Reescrituras y redirecciones.

  7. En la página Reescrituras y redireccionamientos, selecciona Administrar redireccionamientos.

  8. Selecciona Abrir editor de texto.

  9. En el JSON editor, introduce la siguiente redirección:

    [ { "source": "/<*>", "target": "/index.html", "status": "404-200", "condition": null } ]
  10. Seleccione Guardar.

Desarrollador de aplicaciones, AWS DevOps

Pruebe el portal web.

  1. En un navegador web, introduzca URL la aplicación shell desplegada.

  2. Compruebe que la aplicación shell y la microinterfaz se cargan correctamente.

Desarrollador de aplicaciones
TareaDescripciónHabilidades requeridas

Elimine las aplicaciones.

Si ya no necesita las aplicaciones shell y microfrontend, elimínelas. Esto ayuda a evitar que se te cobre por los recursos que no utilizas.

  1. Inicie sesión en la consola Amplify y AWS Management Console, a continuación, ábrala.

  2. Elige la microinterfaz.

  3. En el panel de navegación, selecciona Configuración de la aplicación y, a continuación, selecciona Configuración general.

  4. Selecciona Eliminar aplicación.

  5. En la ventana de confirmación, ingresa ydelete, a continuación, selecciona Eliminar aplicación.

  6. Repita estos pasos para eliminar la aplicación shell.

General AWS

Resolución de problemas

ProblemaSolución

No hay ningún AWS perfil disponible al ejecutar el amplify init comando

Si no tiene un AWS perfil configurado, puede continuar con el amplify init comando. Sin embargo, debe seleccionar la AWS access keys opción cuando se le pida el método de autenticación. Ten AWS a mano tu clave de acceso y tu clave secreta.

Como alternativa, puede configurar un perfil con nombre para AWS CLI. Para obtener instrucciones, consulte los ajustes de configuración y del archivo de credenciales en la AWS CLI documentación.

Error al cargar las entradas remotas

Si se produce un error al cargar las entradas remotas en el archivo main.ts de la aplicación shell, asegúrese de que la environment.mfe1URL variable esté configurada correctamente. El valor de esta variable debe ser el URL de la microinterfaz.

Error 404 al acceder a la microinterfaz

Si recibes un error 404 al intentar acceder a la microinterfaz local, por ejemplo, athttp://localhost:4200/mfe1, comprueba lo siguiente:

  • Para la aplicación shell, asegúrate de que la configuración de enrutamiento del archivo app-routing.module.ts esté configurada correctamente y de que la función llame correctamente a la microinterfaz. loadRemoteModule

  • Para la microinterfaz, compruebe que el archivo webpack.config.js tenga la configuración correcta y asegúrese de que el archivo.js se esté generando correctamente. exposes remoteEntry

Información adicional

AWS documentación

Otras referencias