在 AWS Amplify 上将 Next.js 与 SSR 结合使用,环境变量不会传递到自动创建的 Lambda

Joe*_*rty 7 aws-lambda server-side-rendering next.js aws-amplify

我有一个带有 SSR 的 Next.js 应用程序,它依赖于环境变量。当我将应用程序部署到 AWS Amplify 时,会创建 2 个 Lambda 函数。

我在 Amplify 中设置了环境变量,但是,这些变量未在构建期间创建的 Lambda 函数中设置。如果我在函数上手动设置环境变量,它们将在下一次构建期间被删除。

关于这应该如何运作有什么想法吗?

Joe*_*rty 10

amplify 团队已在 github 中更新此问题:https ://github.com/aws-amplify/amplify-console/issues/1987

他们建议这样做:

  1. 像平常一样在 Amplify 控制台中添加所需的环境变量(步骤)
  2. 使用您在 Amplify 控制台中添加的环境变量更新(或创建)next.config.js 文件。例如,如果您在上面的步骤 1) 中的控制台中创建了一个名为 MY_ENV_VAR 的环境变量,那么您将添加以下内容:
module.exports = {
  env: {
    MY_ENV_VAR: process.env.MY_ENV_VAR
  }
};
Run Code Online (Sandbox Code Playgroud)
  1. 现在,在下一次构建之后,您将能够在 SSR lambda 中引用环境变量 (process.env.MY_ENV_VAR)!