Node.js 连接位于不同区域的Redshift和AWS Lambda

Node.js 连接位于不同区域的Redshift和AWS Lambda,node.js,amazon-web-services,aws-lambda,amazon-redshift,amazon-vpc,Node.js,Amazon Web Services,Aws Lambda,Amazon Redshift,Amazon Vpc,我正试图从Lambda函数(位于爱尔兰地区)连接到我的红移数据库(位于弗吉尼亚州北部地区)。但在尝试建立连接时,我收到超时错误,说明: "errorMessage": "2019-10-20T13:34:04.938Z 5ca40421-08a8-4c97-b730-7babde3278af Task timed out after 60.05 seconds" 我一直密切关注提供给的解决方案,但主要问题是,提供的解决方案适用于位于同一VPC(因此也适用于同一地区)的服务 在进一步研究中,我发

我正试图从Lambda函数(位于爱尔兰地区)连接到我的红移数据库(位于弗吉尼亚州北部地区)。但在尝试建立连接时,我收到超时错误,说明:

"errorMessage": "2019-10-20T13:34:04.938Z 5ca40421-08a8-4c97-b730-7babde3278af Task timed out after 60.05 seconds"
我一直密切关注提供给的解决方案,但主要问题是,提供的解决方案适用于位于同一VPC(因此也适用于同一地区)的服务

在进一步研究中,我发现并遵循了中提供的指导原则。但在配置了VPC对等后,我无法连接到Redshift

以下是一些我认为有助于了解情况的细节:

  • 红移群集可公开访问,运行端口8192,并配置了VPC(如VPC1)
  • Lambda函数位于另一个VPC中(例如VPC2)

  • VPC1和VPC2之间存在VPC对等连接

  • 两个VPC的CIDR IPv4块不同,并已添加到彼此的路由表中(VPC1的范围172.31.0.0/16,VPC2的范围10.0.0/16


  • Lambda函数的IAM执行角色具有红移服务的完全访问权限

  • 在VPC1中,我有一个安全组(SG1),它的入站规则类型为:Redshift、协议:TCP、端口:5439、源:10.0.0.0/16

  • 在VPC2中,我使用的是默认安全组,其出站规则为0.0.0.0/0

  • 在Lambda中,我提供了红移的私有IP(172.31.x.x)作为主机名,5439作为端口(不是8192!)

  • Lambda函数在NodeJS 8.10中,我使用包连接到红移

  • 在所有这些之后,我尝试使用公共IP和它的DNS名称(端口8192)访问红移


  • 请帮助我建立这些服务之间的连接。

    “Lambda函数的IAM执行角色具有红移服务的完全访问权限”可能是不必要的,除非您希望Lambda函数创建新的红移服务器。您没有提到分配给红移服务器的安全组规则,请将该信息添加到您的问题中。您是否已将爱尔兰地区的Lambda功能配置为在专有网络中运行?如果没有,则流量将通过internet路由,并且当您提供私有IP地址时,您的请求将始终超时。@YeshodhanKulkarni是的,我已为Lambda功能配置了VPC,如上所述(VPC2)