0
RDS MySQLデータベースは1つのAWSアカウントで作成されています。このDBは開かれており、私はWorkbenchまたは他のデスクトップアプリケーションで接続できます。不可能RDSへの接続AWS LambdaからのMySQL
また、私は最初のアカウントからRDS DBに接続するためのラムダ関数を作成しようとしている他のAWSアカウントを持っています。
私はタイムアウトを得るたびにそれが不可能だと思われます。
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アプリケーションから接続することができ、同じコードを使用する:
は、ここに私のラムダのJavaコードです。
私はラムダのために512MBのメモリを割り当てた、VPCを使用していないよ、30秒して設定されたタイムアウト(私の見解から、それは十分です)
は、誰かが助けてくださいことはできますか?
ワークベンチはどのようにデータベースに接続しますか?ワークベンチをインスタンスのポート3306に直接接続できます(ssh、ポート転送などなし)。つまり、インターネット全体がポート3306でインスタンスに接続しようとする可能性がありますか? – dashmug
RDS MySQLに付属しているVPCセキュリティグループを確認しましたか?おそらく、lambaが使用しているamazon IPアドレスをブロックしているのでしょうか?最初にRDSを作成すると、既定で新しいセキュリティグループが作成され、そのセキュリティグループにデスクトップIPアドレスが自動的に追加されます。 – Rodel
ありがとうございました。あなたの答えは役に立ちました。 IPは1つしかありませんでした –