是否可以使用 golang 从 App Engine flexible 连接到 google cloud sql postgres 实例?

Is it possible to connect to a google cloud sql postgres instance from app engine flexible using golang?

我能够从 python 中找到解释如何执行此操作的文档:https://cloud.google.com/appengine/docs/flexible/python/using-cloud-sql-postgres

我找不到任何与 golang 等效的东西。这甚至可能吗?

有可能。

免责声明:我没有尝试实际这样做,因此以下内容可能存在拼写错误/小错误。另外,我想向您保证,CloudSQL 文档团队知道并正在努力为包括 Go 在内的其他语言添加示例。

AppEngine Flex 为您运行 CloudSQL proxy 并且您的代码使用 unix 套接字通过普通驱动程序连接到 CloudSQL。

因此,虽然没有 Go 的示例,但它应该相当容易。假设您使用标准 Go 的 sql 库并且阅读 https://godoc.org/github.com/lib/pq 看起来您的代码中需要这样的东西:

db, err := sql.Open("postgres", "user=username password=password host=/cloudsql/INSTANCE_CONNECTION_NAME dbname=databasename")

或者,如果您使用不同的格式或库,只需确保为主机参数指定 /cloudsql/INSTANCE_CONNECTION_NAME

此外,请确保遵循 https://cloud.google.com/appengine/docs/flexible/python/using-cloud-sql-postgres 的所有非 Python 特定步骤。

PS:这里是 Django 的例子:

上面接受的答案是正确的,但我只是想在这里指出 Google 现在已经添加了官方文档,在这里详细解释了同样的事情

https://cloud.google.com/appengine/docs/flexible/go/using-cloud-sql-postgres