AWS Lambda使用情况

时间:2017-02-07 08:47:32

标签: amazon-web-services amazon-s3 aws-lambda

我想使用AWS lambda来计算从设备接收的纬度/经度的地址。每当我收到lat / long时,我想通过调用API调用AWS lambda来计算地址,然后在MYSQL数据库中保存地址(这里不使用Amazon)。我可以将我的数据库服务器(someIP)与AWS lambda连接吗?

4 个答案:

答案 0 :(得分:0)

是的,你可以。

以前它不受支持,但现在你可以在lambda函数中拥有一个sql连接。 请参阅此guide

请记住,你必须增加lambda函数的执行时间,因为在lambda函数中打开一个连接需要一些时间

答案 1 :(得分: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();
        }
    });
}

要检查两件事:

  • 需要确保已启用出站到托管MySQL数据库的IP的连接。
  • 您的MySQL接受远程连接。

答案 2 :(得分:0)

添加到Franklins的答案:

  1. 在VPC中运行Lambda以提高安全性。如果数据库在VPC内部运行,则可以创建受限制的SecurityGroup来访问EC2。如果在AWS之外,您可以通过具有已知弹性IP的NAT网关创建路由,这样您就可以再次限制访问。
  2. 确保关闭与DB的连接,否则Lambda可能无法退出,您将收到超时错误。

答案 3 :(得分:0)

是的。您可以使用AWS Lambda函数连接到Amazon外部的数据库。我不会的。

我不知道有多少设备以及它们向您的服务发送经/纬度的频率,但是由于AWS Lambda可以并行扩展和运行,因此您可以通过建立新连接轻松地使数据库停止服务每次设备发送其位置信息。

我将使用Lambda函数调用API,获取结果并将其放在Amazon SQS队列中。另一个组件将负责处理每个结果到队列中,并将信息放入数据库中。

这样,您将不会为收到的每一个经纬度创建一个连接,并且可以控制要保持打开状态的连接数。