4

AWS 最近推出了数据 API。这简化了创建 Lambda 函数,通过允许 API 调用而不是直接数据库连接消除了额外复杂性的必要性。

我正在尝试在 AWS Lambda 函数中使用 SQLAlchemy,我真的很想利用这个新 API。

有谁知道是否对此有任何支持,或者是否会对此提供支持?

或者,创建一个新引擎来支持这一点有多困难?

4

2 回答 2

6

SQLAlchemy 将数据库驱动程序称为“方言”。因此,如果您将 SQLAlchemy 与 PostgreSQL 一起使用并使用 psycopg2 作为驱动程序,那么您使用的是 PostgreSQL 的 psycopg2 方言。

我正在寻找与您相同的东西,但没有找到现有的解决方案,所以我自己编写并发布了它。为了使用 AWS Aurora RDS 数据 API,我为它创建了一个 SQL 方言包sqlalchemy-aurora-data-api。这反过来又要求我为 Aurora Data API 编写与DB-API兼容的 Python DB 驱动程序aurora-data-api。使用安装后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)
于 2019-10-10T19:29:58.880 回答
0

作为替代方案,如果你想要更像 Records 的东西,你可以试试 Camus https://github.com/rizidoro/camus

于 2019-09-23T14:44:42.433 回答