2017-11-29 20 views
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秒して設定されたタイムアウト(私の見解から、それは十分です)

は、誰かが助けてくださいことはできますか?

+0

ワークベンチはどのようにデータベースに接続しますか?ワークベンチをインスタンスのポート3306に直接接続できます(ssh、ポート転送などなし)。つまり、インターネット全体がポート3306でインスタンスに接続しようとする可能性がありますか? – dashmug

+3

RDS MySQLに付属しているVPCセキュリティグループを確認しましたか?おそらく、lambaが使用しているamazon IPアドレスをブロックしているのでしょうか?最初にRDSを作成すると、既定で新しいセキュリティグループが作成され、そのセキュリティグループにデスクトップIPアドレスが自動的に追加されます。 – Rodel

+1

ありがとうございました。あなたの答えは役に立ちました。 IPは1つしかありませんでした –

答えて

1

問題がRDSインスタンスのセキュリティグループ設定に接続されました。接続に1つのIPしか適用されませんでした。何とかこのルールはRDSインスタンスを作成するときに自動的に設定されました。

関連する問題