我有一个在Google Cloud Run上运行的Spring启动应用程序,我想连接到在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
会自动创建一个云代理。那么为什么它不起作用呢?
谢谢。
这是行不通的,因为Java不支持Unix域套接字。Spring Cloud GCP 通过使用 Cloud SQL JDBC Socket Factory 来规避这一点。
您可以直接使用套接字工厂,方法是将其添加为您的pom(并按照自述文件中指定的方式更新URL(。