我正在尝试编写一个 AWS Lambda Python 包,它将通过 JDBC 连接到 FileMaker 数据库。为了进行测试,我使用 Lambda Linux AMI 启动了一个 EC2 实例,并创建了一个我正在测试的 virtualenv (/venv)。我使用 WinSCP 将 fmjdbc.jar 上传到实例到 /venv/lib/ fmjdbc.jar。该代码使用JayDeBeApi,遵循此处的用法示例:https ://pypi.python.org/pypi/JayDeBeApi/#usage
到目前为止,我的代码如下:
import jaydebeapi as jdb
driverclass = 'com.filemaker.jdbc.Driver'
jdbcURL = 'jdbc:filemaker://url:port;database'
jar = '/home/ec2-user/lambda-test-project/venv/lib/fmjdbc.jar'
print jar
conn = jdb.connect(driverclass,[jdbcURL,'username','password'],jar)
这给了我错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/ec2-user/lambda-test-project/venv/local/lib/python2.7/site-package s/jaydebeapi/__init__.py", line 359, in connect
jconn = _jdbc_connect(jclassname, jars, libs, *driver_args)
File "/home/ec2-user/lambda-test-project/venv/local/lib/python2.7/site-package s/jaydebeapi/__init__.py", line 183, in _jdbc_connect_jpype
return jpype.java.sql.DriverManager.getConnection(*driver_args)
jpype._jexception.SQLExceptionPyRaisable: java.sql.SQLException: No suitable driver found for jdbc:filemaker://<MY URL STUFF IS HERE>
如何让 Python 的虚拟环境读取 jdbc 驱动程序?我希望最终让这段代码在 Lambda 包中工作,所以我希望有一个可以集成到 Python 代码中的解决方案,可以在新创建的服务器上重复工作。