如何将redshift jdbc驱动程序添加到aws lambda函数

Posted

技术标签:

【中文标题】如何将redshift jdbc驱动程序添加到aws lambda函数【英文标题】:how to add redshift jdbc driver to aws lambda function 【发布时间】:2017-03-20 02:13:34 【问题描述】:

我有一个访问和查询红移表的 lambda 函数。但我在测试函数时收到“java.lang.ClassNotFoundException: com.amazon.redshift.jdbc42.Driver”。如何将 redshift jdbc42 驱动程序 jar 添加到这个 lambda 函数

【问题讨论】:

您是否尝试从Download the Amazon Redshift JDBC Driver 获取驱动程序?如果失败,您能否向我们展示您正在运行的相关代码? (只是与 JDBC 连接相关的位。0 【参考方案1】:

您可以将其打包到用于创建 lambda 函数的 zip 文件中 包装结构应该如下

.
|-- com
|   +-- amazonaws
|      +-- lambda
|         +-- demo
|            +-- redshiftuser.class
+-- lib
    |-- RedshiftJDBC42-1.2.1.1001.jar

【讨论】:

感谢您的建议。我创建了一个 jar 文件并上传它以创建一个 lambda 函数,但它仍然显示相同的错误 包 com.amazonaws.lambda.demo;导入java.sql.Connection; //导入com.amazonaws.;导入 java.sql.DriverManager;导入 java.sql.PreparedStatement;导入java.sql.ResultSet;导入 java.sql.Statement;导入 java.util.Properties;导入 com.amazonaws.services.lambda.runtime.Context;导入 com.amazonaws.services.lambda.runtime.RequestHandler;公共类 redshiftuser 实现 RequestHandler public String handleRequest(String input, Context context) //Redshift driver: "jdbc:redshift://x.y.us-west-2.redshift.amazonaws.com:5439/dev"; //或“jdbc:postgresql://x.y.us-west-2.redshift.amazonaws.com:5439/dev”;最终字符串 dbURL = "jdbc:redshift:xxxxxx/dev1";最终字符串 MasterUsername = "xxxx";最终字符串 MasterUserPassword = "xxxxxx";字符串租户 ID = null;字符串电子邮件 = null; // TODO 自动生成的方法存根 Connection conn = null; PreparedStatement stmt1 = null;语句 stmt = null; try //运行时动态加载驱动。 //Redshift JDBC 4.1 驱动:com.amazon.redshift.jdbc41.Driver //Redshift JDBC 4 驱动:com.amazon.redshift.jdbc4.Driver Class.forName("com.amazon.redshift.jdbc42.Driver"); //打开一个连接并定义属性。 System.out.println("正在连接数据库...");属性 props = new Properties(); //如果使用密钥库,请取消注释以下行。 //props.setProperty("ssl", "true"); 您的代码 sn-p 似乎都乱七八糟了。您能否使用“代码”块将其粘贴到问题本身中。这样它将保持其格式

以上是关于如何将redshift jdbc驱动程序添加到aws lambda函数的主要内容,如果未能解决你的问题,请参考以下文章

spark和aws redshift:java.sql.SQLException:没有找到适合jdbc的驱动程序:redshift://xxx.us-west-2.redshift.amazonaws

将结果从 Pig 直接存储到 Redshift?

AWS 在 VPC 中访问 Redshift

将数据从 AWS Redshift 导入到 BI Tool 的最快方法

如何使用 aws unload 命令将数据从 AWS Redshift 卸载到 s3?

AWS Glue to Redshift:是否可以替换,更新或删除数据?