Variables de entorno en AWS Amplify front end

aws - 13 de marzo de 2022

Introducción

AWS Amplify es una suite de herramientas para el desarrollo de aplicaciones web y móviles. Una de sus funcionalidades es la de deploy y host de nuestros front end.

Podemos gestionar las variables de entorno dentro de nuestros proyectos utilizando un fichero .env para cada entorno. El problema de hacerlo así, es que si necesitas modificar una variable tenemos que modificar el repositorio. Hoy os traigo una alternativa para poder gestionar las variables de entorno de nuestro front end directamente desde AWS Amplify.

Utilizando este sistema desacoplamos las variables de entorno de nuestro repositorio de código. Puede ser una ventaja si hay que cambiar una variable rápidamente, si cualquier persona sin tanto conocimiento del proyecto de front end pueda cambiar y también nos añade un plus de seguridad si necesitamos una variable de entorno con datos comprometidos.

Definir variables de entorno en AWS Amplify

Para definir las variables de entorno tenemos que acceder a “Configuración de la Aplicación > Variables de entorno”.

Menu AWS amplify

Podemos añadir nuevas variables en “Administrar las variables” y asignar un valor diferente para cada entorno.

Variables de entorno de aws amplify

Configuración de compilación

Ahora vamos a modificar el fichero de configuración de compilación. Añadiremos el siguiente comando en build para declarar nuestra variable de entorno en el fichero .env.

echo "VITE_API_KEY=$API_KEY" >> .env

NOTA

Tienes que tener en cuenta que el fichero .env tiene que tener un salto de linea al final, si no, al ejecutar el comando echo no se escribira correctamente.

El fichero de configuración de AWS Amplify completo quedaría así:

version: 1
frontend:
  phases:
    preBuild:
      commands:
        - yarn install
    build:
      commands:
        - echo "VITE_API_KEY=$API_KEY" >> .env
        - yarn build
  artifacts:
    baseDirectory: build
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*

Y ya está, ya tienes tu variable configurada correctamente ¡Enhorabuena!