无法将 google 应用引擎中 docker 容器中的 spring 启动应用程序 运行 连接到 google 云 sql?
Can't connect spring boot app running in docker container in google app engine to google cloud sql?
我有 spring 引导应用程序,它在 docker 容器中运行,数据库配置非常简单:
spring:
datasource:
url: jdbc:postgresql://35.225.172.41/postgres
username: root
password: somePassword
Docker文件也尽量简单:
FROM adoptopenjdk/openjdk14:slim
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
我在本地 运行 应用程序时了解如何访问数据库。我将我的本地机器 IP 地址添加到授权网络,如果我 运行 我的应用程序在本地 docker 我可以访问 google 云 SQL,也可以连接到它数据抓取。但是当我将我的应用程序部署到 google 应用程序引擎时,它无法连接到数据库。如何授予我的应用程序访问 google 云 sql 的权限?我还干了将应用程序 IP 地址添加到授权网络,但 IP 地址是动态的。
我解决这个问题的方法是完全错误的。要访问 google cloud slq,我必须使用 spring-cloud-gcp。
https://github.com/GoogleCloudPlatform/spring-cloud-gcp/tree/main/spring-cloud-gcp-samples/spring-cloud-gcp-sql-postgres-sample
我只需要添加所需的依赖项(在我的例子中:
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-gcp-dependencies:1.2.8.RELEASE"
}
}
...
dependencies {
implementation 'org.springframework.cloud:spring-cloud-gcp-starter-sql-postgresql'
创建 google 云 API 密钥 .json
并设置 application.yml 属性:
spring.cloud.gcp.credentials.location 'file:/api_key.json'
spring.cloud.gcp.sql.database-name: postgres
spring.datasource.username: someUsername
spring.datasource.password: somePass
spring.cloud.gcp.sql.instance-connection-name: proj-name:region:slq-instance-name
不需要数据库 URL,spring 云 gcp 将创建它并将您的应用程序连接到云数据库。
我有 spring 引导应用程序,它在 docker 容器中运行,数据库配置非常简单:
spring:
datasource:
url: jdbc:postgresql://35.225.172.41/postgres
username: root
password: somePassword
Docker文件也尽量简单:
FROM adoptopenjdk/openjdk14:slim
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
我在本地 运行 应用程序时了解如何访问数据库。我将我的本地机器 IP 地址添加到授权网络,如果我 运行 我的应用程序在本地 docker 我可以访问 google 云 SQL,也可以连接到它数据抓取。但是当我将我的应用程序部署到 google 应用程序引擎时,它无法连接到数据库。如何授予我的应用程序访问 google 云 sql 的权限?我还干了将应用程序 IP 地址添加到授权网络,但 IP 地址是动态的。
我解决这个问题的方法是完全错误的。要访问 google cloud slq,我必须使用 spring-cloud-gcp。 https://github.com/GoogleCloudPlatform/spring-cloud-gcp/tree/main/spring-cloud-gcp-samples/spring-cloud-gcp-sql-postgres-sample
我只需要添加所需的依赖项(在我的例子中:
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-gcp-dependencies:1.2.8.RELEASE"
}
}
...
dependencies {
implementation 'org.springframework.cloud:spring-cloud-gcp-starter-sql-postgresql'
创建 google 云 API 密钥 .json 并设置 application.yml 属性:
spring.cloud.gcp.credentials.location 'file:/api_key.json'
spring.cloud.gcp.sql.database-name: postgres
spring.datasource.username: someUsername
spring.datasource.password: somePass
spring.cloud.gcp.sql.instance-connection-name: proj-name:region:slq-instance-name
不需要数据库 URL,spring 云 gcp 将创建它并将您的应用程序连接到云数据库。