相关疑难解决方法(0)

AWS Lambda无法连接到RDS实例,但我可以在本地吗?

我正在尝试从lambda连接到我的RDS实例.我在本地写了lambda并在本地测试,一切都很好用.我部署到lambda,突然它不起作用.下面是我正在运行的代码,如果有帮助,我将通过kinesis流调用lambda.

'use strict';

exports.handler = (event, context, handlerCallback) => {
    console.log('Recieved request for kinesis events!');
    console.log(event);
    console.log(context);

    const connectionDetails = {
        host:     RDS_HOST,
        port:     5432,
        database: RDS_DATABASE,
        user:     RDS_USER,
        password: RDS_PASSWORD
    };

    const db = require('pg-promise')({promiseLib: require('bluebird')})(connectionDetails);

    db
            .tx(function () {
                console.log('Beginning query');

                return this.query("SELECT 'foobar'")
                           .then(console.log)
                           .catch(console.log)
                           .finally(console.log);
            })
            .finally(() => handlerCallback());
};
Run Code Online (Sandbox Code Playgroud)

以下是来自云监视的日志,如果它有帮助:

START RequestId: *********-****-****-****-********* Version: $LATEST 
2016-05-31T20:58:25.086Z    *********-****-****-****-*********  Recieved request for kinesis events! 
2016-05-31T20:58:25.087Z    *********-****-****-****-*********  { Records:  [ { kinesis: [Object], eventSource: 'aws:kinesis', eventVersion: '1.0', eventID: …
Run Code Online (Sandbox Code Playgroud)

javascript amazon-web-services amazon-rds amazon-kinesis aws-lambda

15
推荐指数
3
解决办法
8198
查看次数

AWS Lambda连接到Internet

TL; TR

我正在尝试从AWS Lambda连接到Internet,我有一个带NAT网关的私有子网,但该功能仍无法连接到Internet ...

完整问题

因此,我尝试使用我的AWS Lambda函数访问互联网。我已经尝试过Java和NodeJS 4,但都没有碰运气。

我有一个带有子网的私有VPC:10.0.10.0/24

在此处输入图片说明

如您所见,我已经在NAT网关中添加了一条规则:

在此处输入图片说明

我将AWS Lambda配置如下:

在此处输入图片说明

选择该子网(10.0.10.0)并使用对所有内容(入站和出站)都开放的安全组

但是,当我尝试从Internet下载某些内容时,lambda超时了:

'use strict';
console.log('Loading function');

var http = require("http");

exports.handler = (event, context, callback) => {
    //console.log('Received event:', JSON.stringify(event, null, 2));
    console.log('value1 =', event.key1);
    console.log('value2 =', event.key2);
    console.log('value3 =', event.key3);

    var options = {
      host: 'www.virgilio.it',
      port: 80,
      path: '/'
    };

    http.get(options, function(res) {
      console.log("Got response: " + res.statusCode);
    }).on('error', function(e) {
      console.log("Got error: " + e.message);
    });

    callback(null, event.key1);  // Echo back the first key …
Run Code Online (Sandbox Code Playgroud)

java amazon-web-services node.js aws-lambda

7
推荐指数
3
解决办法
3340
查看次数

无法从Amazon Lambda,相同的VPC和正确的角色权限访问RDS

我无法在生产中从Amazon Lambda成功连接到RDS。对于Amazon Lambda,我使用无服务器框架,可以离线执行sls,我可以从本地主机连接RDS,但在生产中,Amazon Lambda不能。

两者都在同一个VPC中,在同一个安全组中,该组具有所有流量入站访问权限,并且有一个指向Vpc的CIDR的规则。

我附加了以下权限:AmazonRDSFullAccess,AWSLambdaFullAccess,AmazonVPCFullAccess,AWSLambdaExecute和AWSLambdaVPCAccessExecutionRole。

感谢帮助。

amazon rds serverless-framework

4
推荐指数
1
解决办法
1891
查看次数

如何在VPC中正确连接AWS Lambda到RDS?

我正在尝试使用Apollo-Server-Lambda等在AWS-Lambda上使用无服务器框架构建graphQL API .我需要使用一个不公开的PostgreSQL RDS实例.

我可以启动并运行lambda,并在不在VPC中时发回请求.我可以启动并运行Postgres RDS数据库并连接到PgAdmin(当处于公共可用模式时).

问题是,一旦我将RDS Postgres"非公开"并试图让所有这些片段一起说话我就失败了.

我尝试了很多不同的方法.

这经常被描绘成魔术.这是精彩的写作https://gist.github.com/reggi/dc5f2620b7b4f515e68e46255ac042a7

我无法使用我的lambdas访问Postgres.所以我的第一个问题.

我是否需要一个NAT网关来为VPC中的lambdas传入(入口)api调用?我目前的理解是,也许我只需要一个NAT网关来为我的lambdas拨打其他api的电话,例如S3.它是否正确?

接下来.我为我的lambdas创建了一个安全组,并将此安全组添加到为RDS创建的安全组的入站列表中.我的理解是lambda应该如何获得RDS.我没有这么幸运.也许这与公共或非公共子网有关?也许这与我对NAT必要性的理解有关?

基本上我能够获得的唯一可见性是Lambdas在20或30秒后超时,这取决于我们在尝试私密连接到postgres时的限制.Cloudwatch日志不会透露任何其他信息

最后,就目前而言,一旦"不公开"将我的开发机器连接到Postgres的最佳方法是什么?我将我的机器IP列为入站TCP/IP到端口5432到RDS安全组中的postgres,但这似乎没有给我我希望的访问权限.我真的需要连接到VPC的VPN吗?什么是最简单的方法?

我已经完成了本教程,对Postgres进行了基本的修改https://docs.aws.amazon.com/lambda/latest/dg/vpc-rds.html

我已阅读并考虑了此问题的答案以及更多 允许AWS Lambda访问RDS数据库

我已经有很多成功 - 使用无服务器框架的完全部署,在serverless.yml配置上有很多变化来尝试这些选项,否则我会展示一个我认为失败的特定的一个,但这更广泛地说我似乎无法准确掌握所有这些VPC,安全组,路由表等应该互动.

任何帮助非常感谢!

amazon-web-services amazon-rds amazon-vpc aws-lambda serverless-framework

3
推荐指数
1
解决办法
2750
查看次数