2017-02-07 16 views
1

AWSラムダを使用して、デバイスから受信した緯度/経度のアドレスを計算します。 lat/longを受け取るたびにAPIを呼び出してアドレスを計算し、MYSQLデータベースにアドレスを保存するAWSラムダを呼び出す(ここではAmazonを使用しない)。私のデータベースサーバ(someIP)をAWSラムダに接続できますか?AWSラムダ使用

+2

具体的な質問は、AWSラムダ関数をMySQLデータベースに接続することですか? (機能の言語も指定してください)。この場合、[this](http://stackoverflow.com/q/31809890/1535071)は役に立ちませんか? – imTachu

+0

あなたのMySQLデータベースはAWS内にはないと言っていますか?それはインターネットからアクセス可能ですか? –

+0

@ Michael-sqlbotはい、正しいです。 –

答えて

0

はいできます。

以前はサポートされていませんでしたが、現在はラムダ関数でsql接続を使用できます。 このguideを参照してください。

しかし、あなたは、ラムダ関数の内部接続を開くと、いくつかの時間

0

はいがかかるため、そのなんとか自分のラムダ関数の実行時間を増やす必要があることに留意してください。 Node.jsのためここでは例:チェックする

var mysql = require('mysql'); 
this.getDBConnection = function (infoDict) { 
    var connection = mysql.createConnection({ 
     host: infoDict.DB_HOST, 
     user: infoDict.DB_USER, 
     password: infoDict.DB_PASSWORD, 
     database: infoDict.DB_NAME 
    }); 
    return connection; 
}, 
this.closeDBConnection = function (connection) { 
    connection.end(function (r) { 
     if (r) { 
      connection.destroy(); 
     } 
    }); 
} 

2つのこと:

  • あなたのMySQLデータベースがホストされているIPへの接続のアウトバウンドを有効にしていることを確認する必要があります。
  • あなたのMySQLはリモート接続を受け入れます。 Franklinsの答えに追加するには上の
0

  1. は、セキュリティ向上のためにVPC内のラムダを実行します。 DBがVPC内で実行されている場合、EC2にアクセスするための制限付きのSecurityGroupを作成できます。 AWS外の場合は、既知のElastic IPを使用してNAT Gateway経由でルートを作成することができます。これにより、再度アクセスを制限できます。
  2. DBへの接続を閉じてください。そうしないと、ラムダが終了せずにタイムアウトエラーが発生することがあります。