Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS Lambda用法_Amazon Web Services_Amazon S3_Aws Lambda - Fatal编程技术网

Amazon web services AWS Lambda用法

Amazon web services AWS Lambda用法,amazon-web-services,amazon-s3,aws-lambda,Amazon Web Services,Amazon S3,Aws Lambda,我想使用AWS lambda来计算我们从设备接收的lat/long地址。每次我收到lat/long时,我都希望通过调用API调用AWS lambda来计算地址,然后将地址保存在MYSQL数据库中(这里不使用Amazon)。我可以将我的数据库服务器(someIP)与AWS lambda连接吗?可以 以前不支持,但现在可以在lambda函数中使用sql连接。 参考这个 但是请记住,您必须增加lambda函数的执行时间,因为在lambda函数中打开连接需要一些时间是的,这是可行的。下面是Node.js

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

可以

以前不支持,但现在可以在lambda函数中使用sql连接。 参考这个


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

是的,这是可行的。下面是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接受远程连接

要补充弗兰克林的回答:

  • 在VPC内运行Lambda以提高安全性。如果数据库在VPC内运行,则可以创建受限安全组来访问EC2。如果在AWS之外,那么您可以通过NAT网关创建一个路由,该网关具有已知的弹性IP,从而允许您再次限制访问
  • 请确保关闭与数据库的连接,否则Lambda可能无法退出,您将收到超时错误

  • 对。您可以使用AWS Lambda函数连接到Amazon以外的数据库。不过我不会这么做

    我不知道有多少设备以及它们向您的服务发送lat/long的频率,但是,由于AWS Lambda将扩展并潜在地并行运行,您可以通过在每次设备发送其位置时建立新连接轻松地使数据库停止服务

    我将使用Lambda函数调用API,获得结果并将其放入AmazonSQS队列。另一个组件将负责处理队列上的每个结果,并将信息放入数据库


    这样,您就不会为每个lat/long接收创建一个连接,并且可以控制要保持打开的连接数。

    您的具体问题是将AWS Lambda函数连接到MySQL数据库?(请同时指定函数的语言)。如果是这样的话,对你没有帮助吗?你是说你的MySQL数据库不在AWS内吗?它可以从互联网上访问吗?@Michael sqlbot是的,没错。