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
Acceso a una subcarpeta
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
-
Inicia sesión en la consola de Amplify AWS Management Console
y ábrela. -
Elija la aplicación para la que desea configurar la creación e implementación de frontend basada en diferencias.
-
En el panel de navegación, selecciona Alojamiento y variables de entorno.
-
En la sección Variables de entorno, elija Administrar variables.
-
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
-
En la sección Administrar variables de Variable, introduzca
AMPLIFY_DIFF_DEPLOY
. -
En Valor, introduzca
true
.
-
-
Para deshabilitar la creación e implementación de frontend basada en diferencias
-
Lleve a cabo una de las siguientes acciones:
-
En la sección Administrar variables, busque
AMPLIFY_DIFF_DEPLOY
. En Valor, introduzcafalse
. -
Elimine la variable de entorno
AMPLIFY_DIFF_DEPLOY
.
-
-
-
-
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
-
Inicia sesión en la consola de Amplify AWS Management Console
y ábrela. -
Elija la aplicación para la que desea configurar las compilaciones de backend basadas en diferencias.
-
En el panel de navegación, selecciona Alojamiento y variables de entorno.
-
En la sección Variables de entorno, elija Administrar variables.
-
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
-
En la sección Administrar variables de Variable, introduzca
AMPLIFY_DIFF_BACKEND
. -
En Valor, introduzca
true
.
-
-
Para deshabilitar las compilaciones de backend basadas en diferencias
-
Lleve a cabo una de las siguientes acciones:
-
En la sección Administrar variables, busque
AMPLIFY_DIFF_BACKEND
. En Valor, introduzcafalse
. -
Elimine la variable de entorno
AMPLIFY_DIFF_BACKEND
.
-
-
-
-
Elija Guardar.