Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.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和Aurora数据库超时_Amazon Web Services_Aws Lambda_Amazon Rds - Fatal编程技术网

Amazon web services AWS Lambda和Aurora数据库超时

Amazon web services AWS Lambda和Aurora数据库超时,amazon-web-services,aws-lambda,amazon-rds,Amazon Web Services,Aws Lambda,Amazon Rds,我正在尝试使用Lambda函数连接到Amazon Aurora无服务器数据库,但是,每次我想要建立连接时,它都会超时。我将AWSLambdaVPCAccessExecutionRole附加到我的函数,并设置了运行数据库的同一安全组。我的入站和出站规则配置为允许同一安全组内端口3306上的TCP通信。 尽管如此,我还是会遇到以下错误: { "errorType": "Error", "errorMessage": &quo

我正在尝试使用Lambda函数连接到Amazon Aurora无服务器数据库,但是,每次我想要建立连接时,它都会超时。我将AWSLambdaVPCAccessExecutionRole附加到我的函数,并设置了运行数据库的同一安全组。我的入站和出站规则配置为允许同一安全组内端口3306上的TCP通信。

尽管如此,我还是会遇到以下错误:

{
    "errorType": "Error",
    "errorMessage": "connect ETIMEDOUT",
    "code": "ETIMEDOUT",
    "errorno": "ETIMEDOUT",
    "syscall": "connect",
    "fatal": true,
    "stack": [
        "Error: connect ETIMEDOUT",
        "    at Connection._handleConnectTimeout (/var/task/node_modules/mysql/lib/Connection.js:409:13)",
        "    at Object.onceWrapper (events.js:416:28)",
        "    at Socket.emit (events.js:310:20)",
        "    at Socket._onTimeout (net.js:479:8)",
        "    at listOnTimeout (internal/timers.js:549:17)",
        "    at processTimers (internal/timers.js:492:7)",
        "    --------------------",
        "    at Protocol._enqueue (/var/task/node_modules/mysql/lib/protocol/Protocol.js:144:48)",
        "    at Protocol.handshake (/var/task/node_modules/mysql/lib/protocol/Protocol.js:51:23)",
        "    at Connection.connect (/var/task/node_modules/mysql/lib/Connection.js:116:18)",
        "    at Object.<anonymous> (/var/task/src/handlers/CognitoVerifyTrigger.js:50:9)",
        "    at Module._compile (internal/modules/cjs/loader.js:1133:30)",
        "    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1153:10)",
        "    at Module.load (internal/modules/cjs/loader.js:977:32)",
        "    at Function.Module._load (internal/modules/cjs/loader.js:877:14)",
        "    at Module.require (internal/modules/cjs/loader.js:1019:19)",
        "    at require (internal/modules/cjs/helpers.js:77:18)"
    ]
}
在这一点上,我不知道为什么连接失败。Lambda和RDS在同一个安全组中运行,Lambda拥有访问VPC的权限,配置了入站/出站规则。 当使用EC2实例时,我可以连接到我的Aurora数据库,因此我认为我的Lambda配置有问题


除了属性“Role”和“VpcConfig”之外,我是否还需要在Lambda模板文件中添加一些特殊的内容?

尝试将Lambda的安全组设置为RDS安全组的入站源,以解决此问题。

是自定义VPC还是默认VPC?@Marcin我当前正在使用默认的VPC。找到解决方案了吗??
const mysql = require('mysql');

var con = mysql.createConnection({
    host: '*******.*********.eu-central-1.rds.amazonaws.com',
    user: '****',
    password: '****',
    database: 'userdata',
    port: 3306
});
con.connect((err) => {
    if (err) {
        console.log('Failed to establish database connection.');
        throw err;
    }
    console.log('Connection to database has been established.');
});