与AWS数据库的连接仅适用于开发阶段

问题描述 投票:0回答:2

问题

我创建了一个应用程序并通过 AWS Amplify 部署了它。该应用程序可以运行,但每次我尝试执行使用数据库的操作时都会收到错误。奇怪的是,当我在本地主机上开发并连接到数据库时,一切正常。

调试

我检查了环境变量是否设置正确,确实如此。检查云日志时,我可以看到这个错误:

code: 'ER_GET_CONNECTION_TIMEOUT'

这可能是安全组的问题还是其他问题?从我的本地 IP 连接没有问题。仅指定了一项入站规则:

Inbound rules

我不太熟悉所有 IAM 管理内容,所以我很可能把事情搞砸了。非常欢迎任何提示或帮助。预先感谢。

database amazon-web-services amazon-rds aws-amplify
2个回答
1
投票

如果您

amplify mock function ....
测试Lambda,我相信它使用amplify-cli用户的权限运行,而不一定是Lambda的实际权限。

尝试

amplify env checkout prod
,使您的本地环境指向 AWS 上的“生产”环境。测试前端(小心,知道您正在生产中进行更改)并查看是否有效。

您可能需要注销前端网站并使用生产用户重新登录。

如果失败,那么我怀疑您的开发和生产环境之间存在差异。查看你的环境变量。确保您没有硬编码任何表名称 -dev 而不是 -${process.env.ENV} 等。

如果上述测试有效,那么请考虑生产环境和开发环境之间的差异。如果一切都由 Amplify 管理,那么应该是相同的。如果您有一些预先存在的资源,那么您需要检查资源与这些资源对话的权限。您是否从开发中的某个位置而不是从产品中获取了 ARN?等等


0
投票

您解决过这个问题吗?我也有同样的情况。我可以从本地主机连接到相同的 RDS 数据库,但部署到 Amplify 时,该应用程序无法连接到数据库。我正在使用 Next.js 并在本地开发它。

© www.soinside.com 2019 - 2024. All rights reserved.