kab*_*kab 4 python amazon-s3 amazon-redshift aws-lambda
Redshift我正在尝试从我的函数连接到我的数据库AWS Lambda:
con = psycopg2.connect(
dbname="my_dbname",
host="my_url",
port= 5439,
user="username",
password="my_password")
cur = con.cursor()
Run Code Online (Sandbox Code Playgroud)
但我无法访问我的数据库,我的函数引发以下错误:
OperationalError: could not connect to server: Connection timed out
Is the server running on host "my_url" (54.217.83.88) and accepting
TCP/IP connections on port 5439?
Run Code Online (Sandbox Code Playgroud)
我可以得到一些帮助吗?(如果可能的话,我希望得到一个非常详细的答案,因为我是 AWS 新手)
PS:我知道我必须配置VPC,但我不知道具体该怎么做
提前谢谢你
您的目标是让 AWS Lambda 函数通过私有 IP 地址与同一 VPC 内的 Amazon Redshift 集群进行通信。这会将流量保留在 VPC 内。
请参阅:配置 Lambda 函数以访问 Amazon VPC 中的资源
连接到集群的私有 IP 地址,或者(最好)按照管理 Amazon Virtual Private Cloud (VPC) 中的集群中的说明在 VPC 上启用DNS Hostnames和DNS Resolution,以便主机名自动解析为私有 IP 地址。
与 Amazon Redshift 集群关联的安全组需要允许来自 VPC 的 CIDR 范围(或适当情况)的端口 5439 上的入站流量。