AWS最近启动了Data API。这简化了Lambda函数的创建,通过允许API调用而不是直接数据库连接,消除了额外复杂性的必要性。
我正在尝试在AWS Lambda函数中使用SQLAlchemy,我真的很想利用这个新API。
有人知道对此是否有任何支持,或者是否正在为此提供支持?
或者,创建一个新的引擎来支持这一点有多困难?
谢谢。
答案 0 :(得分:0)
或者,如果您想要更多类似Records的产品,可以尝试Camus https://github.com/rizidoro/camus。
答案 1 :(得分:0)
SQLAlchemy调用数据库驱动程序"dialects"。因此,如果将SQLAlchemy与PostgreSQL一起使用,并使用psycopg2作为驱动程序,那么您将使用PostgreSQL的psycopg2方言。
我一直在寻找与您相同的东西,但是找不到现有的解决方案,因此我自己编写并发布了解决方案。为了使用AWS Aurora RDS Data API,我为其创建了一个SQL方言包sqlalchemy-aurora-data-api。反过来,这需要我为Aurora Data API DB-API编写aurora-data-api兼容的Python DB驱动程序。使用pip install sqlalchemy-aurora-data-api
安装后,您可以像这样使用它:
from sqlalchemy import create_engine
cluster_arn = "arn:aws:rds:us-east-1:123456789012:cluster:my-aurora-serverless-cluster"
secret_arn = "arn:aws:secretsmanager:us-east-1:123456789012:secret:MY_DB_CREDENTIALS"
engine = create_engine('postgresql+auroradataapi://:@/my_db_name',
echo=True,
connect_args=dict(aurora_cluster_arn=cluster_arn, secret_arn=secret_arn))
with engine.connect() as conn:
for result in conn.execute("select * from pg_catalog.pg_tables"):
print(result)