Configuración de ajustes de compilación - AWS Amplify Hospedaje

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.

Configuración de ajustes de compilación

Al implementar una aplicación con Amplify Hosting, esta detecta automáticamente el marco de frontend y la configuración de compilación asociada al inspeccionar el archivo package.json en el repositorio. Tiene las siguientes opciones de almacenamiento de configuración de compilación de la aplicación:

  • Guarde la configuración de compilación en la consola de Amplify: la consola de Amplify detecta automáticamente la configuración de la compilación y la guarda de forma que se pueda acceder a través de la consola de Amplify. Amplify aplica esta configuración en todas las ramificaciones a menos que exista un archivo amplify.yml guardado en el repositorio.

  • Guarde la configuración de compilación en el repositorio: descargue el archivo amplify.yml y añádalo a la raíz de su repositorio.

Para editar la configuración de compilación de una aplicación en la consola de Amplify, selecciona Hosting y, a continuación, Configuración de compilación en el panel de navegación. La configuración de compilación se aplica a todas las ramificaciones de la aplicación, excepto a las ramificaciones que tienen un archivo amplify.yml guardado en el repositorio.

nota

La configuración de compilación está visible en el menú Hosting de la consola Amplify solo cuando una aplicación está configurada para un despliegue continuo y conectada a un repositorio de git. Para obtener instrucciones sobre este tipo de implementación, consulta Cómo empezar.

Compilación de comandos y ajustes de especificación

El archivo YAML de especificación de compilación contiene un conjunto de comandos de compilación y ajustes relacionados que Amplify utiliza para ejecutar la compilación. En la siguiente lista se describen estas configuraciones y cómo se utilizan.

versión

El número de versión del archivo YAML de Amplify.

AppRoot

La ruta dentro del repositorio en el que reside esta aplicación. Se omite a menos que se definan varias aplicaciones.

env

Añada variables de entorno a esta sección. También puede añadir variables de entorno a través de la consola.

backend

Ejecute comandos de Amplify CLI para suministrar un backend, actualizar las funciones de Lambda, o los esquemas de GraphQL en el marco de una implementación continua.

frontend

Ejecute los comandos de compilación de frontend.

prueba

Ejecute comandos durante una fase de prueba. Aprenda a añadir pruebas a su aplicación.

fases de compilación

Tanto el frontend como el backend tienen tres fases que representan la ejecución de comandos durante cada secuencia de la compilación.

  • preBuild: el script preBuild se ejecuta antes de que se inicie la compilación real, pero después de que Amplify instale dependencias.

  • build: los comandos de compilación.

  • postBuild: el script postBuild se ejecuta una vez que ha finalizado la compilación y Amplify ha copiado todos los artefactos necesarios en el directorio de salida.

buildpath

La ruta que se utilizará para ejecutar la compilación. Amplify utiliza esta ruta para localizar sus artefactos de compilación. Si no especifica una ruta, Amplify utiliza la raíz de la aplicación monorepo, por ejemplo. apps/app

artifacts>base-directory

El directorio en el que están los artefactos de compilación.

artifacts>files

Especifique los archivos de los artefactos que desee implementar. Introduzca **/* para incluir todos los archivos.

memoria caché

El campo de memoria caché de buildspec se utiliza para almacenar en la memoria caché las dependencias en tiempo de compilación, como la carpeta node_modules, y se sugiere automáticamente en función del administrador de paquetes y el marco en el que se integra la aplicación del cliente. Durante la primera compilación, todas las rutas se almacenan en la memoria caché y, en las compilaciones posteriores, volvemos a inflar la caché y utilizamos esas dependencias almacenadas en la memoria caché siempre que es posible para acelerar el tiempo de compilación.

En el siguiente ejemplo de especificación de compilación se muestra la sintaxis básica de YAML:

version: 1 env: variables: key: value backend: phases: preBuild: commands: - *enter command* build: commands: - *enter command* postBuild: commands: - *enter command* frontend: buildpath: phases: preBuild: commands: - cd react-app - npm ci build: commands: - npm run build artifacts: files: - location - location discard-paths: yes baseDirectory: location cache: paths: - path - path test: phases: preTest: commands: - *enter command* test: commands: - *enter command* postTest: commands: - *enter command* artifacts: files: - location - location configFilePath: *location* baseDirectory: *location*

Configuración de compilación específica de ramificación

Puede utilizar scripts del intérprete de comandos Bash para establecer la configuración de compilación específica de ramificación. Por ejemplo, el siguiente script usa la variable de entorno del sistema $AWS_BRANCH para ejecutar un conjunto de comandos si el nombre de la rama es main y un conjunto de comandos diferente si el nombre de la rama es dev.

frontend: phases: build: commands: - if [ "${AWS_BRANCH}" = "main" ]; then echo "main branch"; fi - if [ "${AWS_BRANCH}" = "dev" ]; then echo "dev branch"; fi

Para monorepos, los usuarios quieren poder utilizar cd en una carpeta para ejecutar la compilación. Después de ejecutar el comando cd, se aplica a todas las etapas de la compilación para que no sea necesario repetir el comando en fases independientes.

version: 1 env: variables: key: value frontend: phases: preBuild: commands: - cd react-app - npm ci build: commands: - npm run build

Implementar el backend con el front-end para una aplicación de primera generación

nota

Esta sección se aplica únicamente a las aplicaciones Amplify Gen 1. Se crea un backend de primera generación mediante Amplify Studio y la interfaz de línea de comandos (CLI) de Amplify.

El comando amplifyPush es un script auxiliar que le ayuda con las implementaciones del backend. La configuración de compilación siguiente determina automáticamente el entorno de backend correcto que se va a implementar para la ramificación actual.

version: 1 env: variables: key: value backend: phases: build: commands: - amplifyPush --simple

Configuración de la carpeta de salida

La siguiente configuración de compilación establece el directorio de salida en la carpeta pública.

frontend: phases: commands: build: - yarn run build artifacts: baseDirectory: public

Instalación de paquetes como parte de una compilación

Puede utilizar los comandos npm o yarn para instalar paquetes durante la compilación.

frontend: phases: build: commands: - npm install -g <package> - <package> deploy - yarn run build artifacts: baseDirectory: public

Uso de un registro npm privado

Puede añadir referencias a un registro privado en la configuración de compilación o añadirlo como variable de entorno.

build: phases: preBuild: commands: - npm config set <key> <value> - npm config set registry https://registry.npmjs.org - npm config set always-auth true - npm config set email hello@amplifyapp.com - yarn install

Instalación de paquetes de SO

La imagen AL2023 de Amplify ejecuta el código con un nombre de usuario sin privilegios. amplify Amplify otorga a este usuario privilegios para ejecutar comandos del sistema operativo mediante el comando de Linux. sudo Si desea instalar paquetes de sistema operativo para las dependencias que faltan, puede utilizar comandos como yum y rpm with. sudo

En la siguiente sección de compilación de ejemplos se muestra la sintaxis para instalar un paquete de sistema operativo mediante el sudo comando.

build: phases: preBuild: commands: - sudo yum install -y <package>

Almacenamiento clave-valor para todas las compilaciones

El envCache ofrece almacenamiento de un valor clave en el momento de la compilación. Los valores almacenados en envCache solo se pueden modificar durante una compilación y se pueden volver a utilizar durante la siguiente compilación. Mediante envCache, podemos almacenar información en el entorno implementado y hacer que esté disponible para el contenedor de compilación en compilaciones sucesivas. A diferencia de los valores almacenados en envCache, los cambios en las variables de entorno durante una compilación no se almacenan de forma persistente en futuras compilaciones.

Ejemplo de uso:

envCache --set <key> <value> envCache --get <key>

Omitir la compilación de una confirmación

Para omitir la compilación automática de una confirmación concreta, incluya el texto [skip-cd] al final del mensaje de confirmación.

Deshabilitación de las compilaciones automáticas

Puede configurar Amplify para deshabilitar las compilaciones automáticas en todas las confirmaciones de código. Para configurarlo, selecciona Configuración de la aplicación, Configuración de sucursal y, a continuación, busca la sección Sucursales en la que se muestran las sucursales conectadas. Seleccione una rama y, a continuación, elija Acciones, Desactivar la creación automática. Las nuevas confirmaciones en esa rama ya no iniciarán una nueva compilación.

Habilitar o deshabilitar la compilación e implementación de frontend basadas en diferencias

Puede configurar Amplify para utilizar compilaciones de frontend basadas en diferencias. Si está habilitada, Amplify intentará ejecutar una diferencia en su appRoot, o en la carpeta /src/ de forma predeterminada al inicio de cada compilación. Si Amplify no encuentra ninguna diferencia, omite la compilación de frontend, prueba (si se configura) e implementa los pasos y no actualiza la aplicación alojada.

Para configurar la compilación e implementación de frontend basada en diferencias
  1. Inicia sesión en la consola de Amplify AWS Management Console y ábrela.

  2. Elija la aplicación para la que desea configurar la creación e implementación de frontend basada en diferencias.

  3. En el panel de navegación, selecciona Alojamiento y variables de entorno.

  4. En la sección Variables de entorno, elija Administrar variables.

  5. El procedimiento de configuración de la variable de entorno varía en función de si se habilita o deshabilita la creación e implementación de frontend basada en diferencias.

    • Para habilitar la creación e implementación de frontend basada en diferencias

      1. En la sección Administrar variables de Variable, introduzca AMPLIFY_DIFF_DEPLOY.

      2. En Valor, introduzca true.

    • Para deshabilitar la creación e implementación de frontend basada en diferencias

      1. Lleve a cabo una de las siguientes acciones:

        • En la sección Administrar variables, busque AMPLIFY_DIFF_DEPLOY. En Valor, introduzca false.

        • Elimine la variable de entorno AMPLIFY_DIFF_DEPLOY.

  6. Elija Guardar.

Opcionalmente, puede configurar la variable de entorno AMPLIFY_DIFF_DEPLOY_ROOT para anular la ruta predeterminada con una ruta relativa a la raíz de su repositorio, como dist.

Habilita o deshabilita las compilaciones de backend basadas en diferencias para una aplicación de primera generación

nota

Esta sección se aplica únicamente a las aplicaciones Amplify Gen 1. Se crea un backend de primera generación mediante Amplify Studio y la interfaz de línea de comandos (CLI) de Amplify.

Puede configurar Amplify Hosting para utilizar compilaciones de backend basadas en diferencias mediante la variable de entorno AMPLIFY_DIFF_BACKEND. Al habilitar las compilaciones de backend basadas en diferencias, al comienzo de cada compilación, Amplify intenta ejecutar una diferencia en la carpeta amplify de su repositorio. Si Amplify no encuentra ninguna diferencia, omitirá el paso de compilación del backend y no actualizará los recursos del backend. Si su proyecto no tiene la carpeta amplify en el repositorio, Amplify ignorará el valor AMPLIFY_DIFF_BACKEND de la variable de entorno.

Si actualmente tiene comandos personalizados especificados en la configuración de compilación de la fase de backend, las compilaciones de backend condicionales no funcionarán. Si desea que esos comandos personalizados se ejecuten, deberá moverlos a la fase de frontend de la configuración de compilación en el archivo amplify.yml de su aplicación.

Para configurar compilaciones de backend basadas en diferencias
  1. Inicia sesión en la consola de Amplify AWS Management Console y ábrela.

  2. Elija la aplicación para la que desea configurar las compilaciones de backend basadas en diferencias.

  3. En el panel de navegación, selecciona Alojamiento y variables de entorno.

  4. En la sección Variables de entorno, elija Administrar variables.

  5. El procedimiento de configuración de la variable de entorno varía en función de si se habilitan o deshabilitan las compilaciones de backend basadas en diferencias.

    • Para habilitar las compilaciones de backend basadas en diferencias

      1. En la sección Administrar variables de Variable, introduzca AMPLIFY_DIFF_BACKEND.

      2. En Valor, introduzca true.

    • Para deshabilitar las compilaciones de backend basadas en diferencias

      1. Lleve a cabo una de las siguientes acciones:

        • En la sección Administrar variables, busque AMPLIFY_DIFF_BACKEND. En Valor, introduzca false.

        • Elimine la variable de entorno AMPLIFY_DIFF_BACKEND.

  6. Elija Guardar.