【发布时间】:2018-10-23 14:33:46
【问题描述】:
我有一个公开的 Aurora MySql 集群,因此我可以从本地工作站连接到它。我创建了一个 aspnetcore 项目,如果我在 VS Code 中本地运行 lambda,它可以连接到数据库、查询并将结果返回给我。
当我将 Lambda 部署到 AWS(上传已发布的 .zip)时,lambda 会执行不与数据库交互的 API(通过 API 网关)。一旦我点击了一个尝试连接到 Aurora 的 API,它就会超时并失败。
Lambda 和 RDS 在同一个 VPC 中,并且在同一个子网中。我试过 RDS 既是公共的又是私有的,都不管用。我的 Lambda 分配了一个 IAM 角色,授予它完全 RDS 访问权限和完全 VPC 访问权限。为了击中极光,lambda 还需要什么额外的东西?
我还尝试在相同的 VPC/子网中运行 Lambda,并且没有任何 VPC。当我在没有连接 VPC 的情况下运行它时,我会在 Cloudwatch 中返回整个堆栈跟踪,说它尝试连接时超时。当我在 VPC/子网中运行 Lambda 时,我没有从 Lambda 中获得任何写入 CloudWatch 的日志消息。
编辑以显示安全组设置
Aurora MySql RDS
Lambda
安全组
【问题讨论】:
-
您能否分享屏幕截图以确认您的 Lambda 确实应用了相同的安全组?此外,您无需将 RDSFullAccess 与您的执行角色相关联,IAM 只是授予您在 RDS 上执行管理 API 的权限(如创建集群、删除集群等)。它与实际访问数据库端点没有任何关系。
-
嗨乔纳森,你有没有解决过这个问题?我目前面临同样的问题。安全组彼此面对,Lambda 执行角色有权创建 ENI,但我仍然总是遇到连接超时。期待您的来信。
标签: amazon-web-services asp.net-core aws-lambda amazon-aurora