Next.js 部署到 AWS Amplify:环境变量问题及解决方案

Next.js 部署到 AWS Amplify:环境变量问题及解决方案

💡 原文英文,约300词,阅读约需1分钟。
📝

内容提要

在将NextJS部署到AWS Amplify时,MONGODB_URI环境变量读取为'undefined',而其他公共变量正常。通过在amplify.yml中动态创建.env.production文件并添加MONGODB_URI,最终解决了问题。公共变量可直接获取,安全变量需手动添加。

🎯

关键要点

  • 在将NextJS部署到AWS Amplify时,MONGODB_URI环境变量读取为'undefined'。
  • 其他公共环境变量正常读取,但安全变量需手动添加。
  • 应用程序通过API从MongoDB进行文本搜索,使用mongoose.connect连接数据库。
  • 尝试在next.config.ts文件中添加MONGODB_URI,但存在安全隐患。
  • 最终通过在amplify.yml中动态创建.env.production文件并添加MONGODB_URI解决了问题。
  • 只有以NEXT_PUBLIC开头的公共环境变量可以在构建时直接从Amplify获取。

延伸问答

在将Next.js部署到AWS Amplify时,MONGODB_URI环境变量出现了什么问题?

MONGODB_URI环境变量在部署后读取为'undefined',而其他公共变量正常。

如何解决Next.js在AWS Amplify中MONGODB_URI读取为'undefined'的问题?

通过在amplify.yml中动态创建.env.production文件并添加MONGODB_URI解决了问题。

公共环境变量和安全环境变量在AWS Amplify中的处理有什么不同?

公共变量可以直接获取,而安全变量需手动添加到.env.production文件中。

在next.config.ts文件中添加MONGODB_URI有什么安全隐患?

将MONGODB_URI添加到next.config.ts文件会暴露数据库连接给公众,存在安全风险。

为什么只有以NEXT_PUBLIC开头的环境变量可以在Amplify构建时直接获取?

只有以NEXT_PUBLIC开头的公共环境变量在构建时可以直接从Amplify获取,而安全变量需要手动添加。

在AWS Amplify中,如何通过API连接MongoDB?

应用程序通过API使用mongoose.connect函数连接MongoDB进行文本搜索。

➡️

继续阅读