无法从云数据流变换连接到云SQL



我在云数据流中运行时无法从自定义DOFN内部连接到云SQL。日志中显示的错误是:

  • 通过SSL套接字连接到云SQL实例[]。
  • [docbuilder-worker-exception]:com.zaxxer.hikari.pool.hikaripool $ poolinitialization exception:失败 初始化池:无法创建与数据库服务器的连接。

从附录句柄连接到云SQL时,相同的代码和配置正常。

我已经明确授予了Compute Engine服务帐户-Compute@developer.gserviceaccount.com-云SQL客户端,云SQL查看器和编辑器角色。

对此进行故障排除的任何帮助!

要从外部应用程序连接到云SQL,可以在文档中遵循一些方法,如何从外部应用程序中连接到云SQL [1]您可以找到替代方案和步骤实现您的目标。

[1] https://cloud.google.com/sql/docs/postgres/connect-external-app

尝试使用Cloud Dataflow使用Cloud DataFlow使用自定义DOFN的云SQL时,我也遇到了很多问题。现在我不记得我的错误是否与您的错误相同,但是我的解决方案是在这样的dofn类中创建@netup方法:

static class ProcessDatabaseEvent extends DoFn<String, String> {
@Setup
public void createConnectionPool() throws IOException {
  final Properties properties = new Properties();
  properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("config.properties"));
  final String JDBC_URL = properties.getProperty("jdbc.url");
  final String JDBC_USER = properties.getProperty("jdbc.username");
  final String JDBC_PASS = properties.getProperty("jdbc.password");
  final HikariConfig config = new HikariConfig();
  config.setMinimumIdle(5);
  config.setMaximumPoolSize(50);
  config.setConnectionTimeout(10000);
  config.setIdleTimeout(600000);
  config.setMaxLifetime(1800000);
  config.setJdbcUrl(JDBC_URL);
  config.setUsername(JDBC_USER);
  config.setPassword(JDBC_PASS);
  pool = new HikariDataSource(config);
}
@ProcessElement
public void processElement(final ProcessContext context) throws IOException, SQLException {
//Your DoFn code here...
}

相关内容

  • 没有找到相关文章

最新更新