从 Lambda 函数连接到 EC2 或 Lightsail 实例中的 timescsleDB 运行 并执行查询

Connecting to and executing queries on a timescsleDB running in an EC2 or Lightsail instance from a Lambda function

我计划在 EC2 或 Lightsail 实例中建立一个时间刻度数据库 运行ning。我希望能够从 Lambda 函数连接到此时间刻度数据库并对其进行 运行 查询,以将数据插入数据库并从数据库读取数据。

我知道 timescaleDB 是一个 Postgres 插件,网上有很多文章记录了从 lambda 运行在 AWS RDS 内部连接到 Postgres DB 的过程,但我似乎找不到任何描述我将如何连接到 EC2 或 Lightsail 实例中的一个 运行ning 的内容。

问题:如何从 lambda 函数连接到 EC2 或 Lightsail 实例中的 timescaleDB 运行ning?

我会说答案与如何连接到 RDS 的答案相同,如此处记录:

https://docs.aws.amazon.com/lambda/latest/dg/vpc-rds.html

还提供了一个很好的示例如何连接到 PostgreSQL RDS,但是您需要以这种方式指定 hostname/ip 而不是使用 rds_config他们指向您的 EC2 实例。

不同之处在于您需要指定 hostname/ip 和其他连接详细信息以指向 EC2 实例。例如,如果您的 EC2 实例

import sys, logging, psycopg2

host = "ec2-3-14-229-184.us-east-2.compute.amazonaws.com"
name = "demo_user"
password = "p@assword"
db_name = "demo"

try:
    conn = psycopg2.connect(host=host,
                        database=db_name,
                        user=name,
                        password=password)
    cur = conn.cursor()

except:
    logger.error("ERROR: Unexpected error: Could not connect to Postgresql instance.")
    sys.exit()