我有REST API Java应用程序,并希望将其移动到云中。
但是我不明白哪个教程使用。 我已经在 Jib 制作的容器注册表中拥有 docker 映像,并希望将其与一些云数据库(云 SQL/扳手(连接。
如何将此连接支持更改为云?
db.driver=com.mysql.cj.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/db
db.username=usrname
db.password=pswd
db.entity.package = com.example.model
我们通过Cloud SQL Proxy docker image执行此操作:https://cloud.google.com/sql/docs/mysql/connect-docker
- 启用云 SQL 管理员 API。
- 在计算引擎实例或客户端计算机上安装 mysql 客户端(如果尚未安装(。
- 如果需要,请安装 Docker 客户端 4.从 Google 容器注册表安装代理 Docker 映像。
- 如果您在本地计算机(不是计算引擎实例(上运行代理 Docker 映像,或者您的计算引擎实例没有适当的范围,请创建 Google Cloud Platform 服务帐户。
- 转到 Google Cloud Console 中的 Cloud SQL 实例页面。
- 选择实例以打开其实例详细信息页面并复制实例连接名称。
- 启动代理。
docker run -d
-v <PATH_TO_KEY_FILE>:/config
-p 127.0.0.1:3306:3306
gcr.io/cloudsql-docker/gce-proxy:1.16 /cloud_sql_proxy
-instances=<INSTANCE_CONNECTION_NAME>=tcp:0.0.0.0:3306 - credential_file=/config
- 启动客户端
mysql -u <USERNAME> -p --host 127.0.0.1
然后使用
db.driver=com.mysql.cj.jdbc.Driver
db.url=jdbc:mysql://127.0.0.1:3306/db
db.username=usrname
db.password=pswd
db.entity.package = com.example.model
如果要从 GKE 集群访问 CloudSQL 数据库,则有 2 种解决方案:
- 您可以使用在 CloudSQL 上配置私有 IP,然后将其直接访问到此 IP。为此,您的 GKE 集群必须配置为 VPC 本机。
- 您可以将挎斗附加到主容器,从而打开与数据库的
cloud sql proxy
连接。这个解决方案与@ParthMehta的答案非常相似。这里是这个挎斗配置的描述(和 github 示例(
对于 Spanner,这是不同的,因为不能使用专用 IP 或云 SQL 代理二进制文件。 此页面上有配置和依赖项的详细信息
如您所见,您将实例直接与资源定义(/projects/..../instance/.......(连接。您的配置文件应如下所示:
db.driver=com.google.cloud.spanner.jdbc.JdbcDriver
db.url=jdbc:cloudspanner:/projects/{YOUR_PROJECT_ID}/instances/{YOUR_INSTANCE_ID}/databases/{YOUR_DATABASE_ID}
db.dialect=com.google.cloud.spanner.hibernate.SpannerDialect