我正在编写一个用于访问CloudSQL数据库的服务(Golang)。
连接到 CloudSQL 实例的推荐方法是使用 cloud_sql 代理 - 向数据库进行身份验证并处理 SSL。
但是,出于性能和其他一些原因,我想使用处理身份验证的 Golang 包直接访问数据库。
目前,使用database/sql
包启动与数据库的连接不起作用,因为我需要使用 CloudSQL 将机器 IP 列入白名单。但鉴于我正在使用 Kubernetes 来部署我的应用程序,源 IP 可能随时更改。
我很想知道是否有人知道解决这个问题的最佳方法是什么。
如果你在Postgresql上,你可以使用他们的go
库:https://cloud.google.com/sql/docs/postgres/connect-external-app#go
对于 MySQL,请参阅此文档: https://cloud.google.com/sql/docs/mysql/connect-external-app#go
还没有测试过这种方法(这会让供应商将我锁定到 gcloud),但他们的文档往往是可靠和最新的。