【问题标题】:how to query RDS SQL Server database in AWS lambda using python?如何使用 python 在 AWS lambda 中查询 RDS SQL Server 数据库?
【发布时间】:2021-04-14 12:02:10
【问题描述】:

我正在尝试连接到 AWS RDS SQL Server 实例以使用 python 脚本从 AWS Lambda 查询表。但是,我没有看到任何 AWS api,所以当我尝试使用“import pyodbc”时看到以下错误。

无法导入模块“lambda_function”:没有名为“pyodbc”的模块

连接:

 cnxn = pyodbc.connect("Driver={SQL Server};"
                        "Server=data-migration-source-instance.asasasas.eu-east-1.rds.amazonaws.com;"
                        "Database=sourcedb;"
                        "uid=source;pwd=source1234")

关于如何查询RDS SQL Server有什么要点吗?

【问题讨论】:

    标签: python aws-lambda amazon-rds


    【解决方案1】:

    您需要将 lambda 的依赖项与代码一起上传。如果您手动部署 lambda(即直接从控制台创建 zip 文件),则需要附加 pyodb 库。 (更多信息在这里:https://docs.aws.amazon.com/lambda/latest/dg/python-package.html#python-package-dependencies)。

    如果您使用任何其他部署工具(无服务器、SAM、chalice),它会容易得多:https://www.serverless.com/plugins/serverless-python-requirementshttps://aws.github.io/chalice/topics/packaging.html#rd-party-packageshttps://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-using-build.html

    【讨论】:

      【解决方案2】:

      您遇到的错误意味着 lambda 没有 pyodbc 模块。

      您应该阅读 AWS Lambda 中的依赖管理。基本上有两种策略可以在部署中包含依赖项 - Lambda Layers 或使用 deployment package 压缩。

      如果您使用的是Serverless Framework,那么Serverless-python-requirements 是一个出色的包,可用于管理您的依赖项,并允许您选择您的依赖项管理策略,而对您的应用程序的更改最少。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-13
        • 2017-12-13
        • 2021-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-30
        相关资源
        最近更新 更多