首先,您需要确保您的AWS Lambda函数在与RDS Postgres数据库相同的VPC中运行。然后,在您的Java Lambda函数中,您需要使用AWS提供的Java SDK来连接到Postgres数据库。以下是一些示例代码以获取连接:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class PostgresDBConnection {
// RDS Postgres Database Details
private static final String dbURL = "jdbc:postgresql://:/";
private static final String masterUsername = "";
private static final String masterUserPassword = "";
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(dbURL, masterUsername, masterUserPassword);
}
}
上面的示例代码使用JDBC驱动程序从Java应用程序连接到RDS Postgres数据库。您需要将HOST,PORT,DATABASE_NAME,MASTER_USERNAME和MASTER_USER_PASSWORD替换为实际的值,例如:
private static final String dbURL = "jdbc:postgresql://my-rds-instance.us-west-2.rds.amazonaws.com:5432/mydatabase";
private static final String masterUsername = "myuser";
private static final String masterUserPassword = "mypassword";
然后,在AWS Lambda函数中,您可以使用以下代码获取Postgres数据库连接:
import java.sql.Connection;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
public class MyLambdaFunction implements RequestHandler {
@Override
public String handleRequest(String input, Context context) {
Connection conn = null;
try {
conn = PostgresDBConnection.getConnection();
// use the connection to interact with the database
} catch (Exception e) {
context.getLogger().log("Exception: " + e.getMessage());
} finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
context.getLogger().log("Exception: " + e.getMessage());
}
}
}
return "success";
}
}
上面的示例代码