Abe Estrada

AWS Amplify + Next.js + Environment variables

Cuando se utiliza AWS Amplify Console con una instancia de Next.js, lo que hace la consola cuando se ejecuta un “build” es que genera un sitio estático y manda los archivos a un “bucket” en AWS S3 y genera un par de funciones en AWS Lambda para ejecutar el código como getServerSideProps, un problema que surge con este método “serverless” que utiliza la separación de código es la lectura de las “environment variables”.

Al utilizar “environment variables” dentro de la consola de AWS Amplify, también es necesario especificar que variables vamos a utilizar en el código que se manda a AWS Lambda para que las funciones que se ejecutan tengan la misma información. Suponiendo que necesitamos ocultar una “API Key” de algún servicio externo.

Es necesario exponer las variables explicitamente dentro del archivo next.config.js para que todo el código dentro de getServerSideProps al ser ejecutado en las funciones generadas en AWS Lambda tengan acceso a estas variables.

module.exports = {
    env: {
        SECRET_API_KEY: process.env.SECRET_API_KEY,
    },
};

Fuente: #1987