无法从AWS Lambda连接到RDS MySQL

时间:2017-11-29 15:42:04

标签: java aws-lambda amazon-rds aws-java-sdk

我在一个AWS账户下创建了RDS MySQL数据库。此数据库已打开,我可以通过Workbench或任何其他桌面应用程序进行连接。

此外,我还有其他AWS账户,我正在尝试创建Lambda函数,以便从我的第一个账户连接到RDS DB。

看起来这是不可能的,因为我每次都会超时。

这是我的Lambda Java代码:

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;

import java.sql.DriverManager;

public class DBTest implements RequestHandler<String, String> {

    @Override
    public String handleRequest(String input, Context context) {
        context.getLogger().log("Input: " + input+"\n");

        try {
            StringBuilder url = new StringBuilder();

            url.append("jdbc:mysql://").
                append("jackdbinstance.********.eu-west-1.rds.amazonaws.com:3306/").
                append("TestLambdaDB"+"?").
                append("user=******&").
                append("password=*******");


            DriverManager.getConnection(url.toString());

            return "DB connected";
        } catch (Exception e) {
            return e.toString();
        }
    }
} 

使用相同的代码,我可以从我的桌面java应用程序连接,没有任何问题。

我没有使用VPC,我为Lambda分配了512Mb内存,超时设置为30秒(从我看来已经足够了)

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

问题与RDS实例的安全组配置有关,只有一个IP申请连接,不知何故,我创建RDS实例时自动设置了这个规则。