为了账号安全,请及时绑定邮箱和手机立即绑定

AWS Lambda 连接到可公开访问的 AWS RDS

AWS Lambda 连接到可公开访问的 AWS RDS

PIPIONE 2022-07-20 20:44:09
我在 AWS 中创建了一个可公开访问的 PostgreSQL RDS,并使用以下代码连接到它:try {  DriverManager.registerDriver(new org.postgresql.Driver());  String url = "jdbc:postgresql://" + DATABASE_SERVER_NAME + ":" + DATABASE_PORT_NUMBER + "/" + DATABASE_NAME + "?user=" + DATABASE_USER + "&password=" + DATABASE_PASSWORD;  try (Connection connection = DriverManager.getConnection(url)) {    try (PreparedStatement statement = connection.prepareStatement("SELECT * FROM \"" + PHANTOM_LOAD_STORE_DATABASE_TABLE_NAME + "\"")) {      try (ResultSet resultSet = statement.executeQuery()) {        while (resultSet.next()) {          System.out.println(resultSet.getString("userid"));        }      }    }  }} catch (SQLException e) {  throw new RuntimeException(e);}当它在本地运行时,它会成功连接到数据库服务器。当它在 AWS Lambda 中运行时,它无法连接并出现以下错误:org.postgresql.util.PSQLException: The connection attempt failed....Caused by: java.net.SocketTimeoutException: connect timed outlambda 不在 VPC 中并且具有角色 policy arn:aws:iam::aws:policy/AmazonRDSDataFullAccess。有人可以告诉我我做错了什么吗?
查看完整描述

1 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

尽管创建了可公开访问的 RDS 数据库,但它有一个安全组规则,只允许来自我的 IP(创建数据库的那个)的传入请求。编辑其安全组的传入规则以允许来自任何地方的请求已允许 lambda 连接到数据库。

该政策arn:aws:iam::aws:policy/AmazonRDSDataFullAccess似乎没有必要。

感谢这个答案帮助我解决了这个问题。


查看完整回答
反对 回复 2022-07-20
  • 1 回答
  • 0 关注
  • 80 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信