2

我有一个在 Google Cloud Run 上运行的 Spring Boot 应用程序,我想连接到在 Google Cloudsql 上运行的 postgres 实例。我可以使用 Spring Cloud GCP 入门项目进行连接。

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-gcp-starter-sql-postgresql</artifactId>
</dependency>

但我不想添加这个依赖。

通过使用 postgressql 插件并spring.datasource.url=***在创建云代理后指定,我能够从本地应用程序连接。

但是,当我尝试在使用后从云运行中执行相同操作时,gcloud beta run deploy --add-cloudsql-instances <INSTANCE-ID>它不起作用。根据https://cloud.google.com/run/docs/configuring/connect-cloudsql--add-cloudsql-instances自动创建云代理。那么为什么它不起作用呢?

谢谢。

4

1 回答 1

0

这不起作用,因为 Java 不支持 Unix 域套接字。Spring Cloud GCP 通过使用Cloud SQL JDBC Socket Factory绕过了这一点。

您可以通过将其添加到您的 pom 中(并按照 README 中的指定更新您的 URL)来直接使用 Socket Factory。

于 2019-10-03T22:14:48.980 回答