从在Google Cloud Run上运行的Spring Boot应用连接到不带GCP启动器的Cloudsql

时间:2019-10-03 19:08:43

标签: spring-boot google-cloud-sql google-cloud-run cloud-sql-proxy

我有一个在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插件并在创建Cloud代理后指定spring.datasource.url=***,我可以从本地应用程序进行连接。

但是当我尝试使用gcloud beta run deploy --add-cloudsql-instances <INSTANCE-ID>后从云运行中执行相同操作时,它不起作用。根据{{​​3}},--add-cloudsql-instances自动创建一个Cloud代理。那为什么不起作用?

谢谢。

1 个答案:

答案 0 :(得分:0)

这不起作用,因为Java不支持Unix域套接字。 Spring Cloud GCP通过使用Cloud SQL JDBC Socket Factory来解决此问题。

您可以通过将套接字工厂添加到您的pom中(并按照自述文件中的指定更新URL)来直接使用套接字工厂。