我有一个在 Google Cloud Run 中运行的 Apache Superset docker 映像。我已将其配置为使用我们的 Cloud SQL 主机作为其元数据数据库。由于您将 Cloud Run 连接到 Cloud SQL 的方式,这需要使用 SQL Alchemy 中的 unix 套接字样式连接字符串来进行连接(按照说明这里.). Postgres 是正在使用的数据库(尽管我怀疑这并不重要)。
我对自己很满意(因为我对 Docker/Cloud Run 的了解很少),而且它运行良好 - 但后来我去添加一些数据源。当然,DB 连接信息的配置对话框只允许您输入主机和 IP:
走到这一步却被 UI 限制所阻碍,这真是令人失望。我想要连接的主机与它用于元数据数据库的主机是同一个主机 - 所以显然它可以连接到它。...我只是没有办法向它表达如何连接到它。
我可以做些什么来为数据源(而不是元数据,它已经起作用了)的目标数据库配置带有 unix 套接字连接字符串的 Superset?
我看到它甚至允许我提供额外的参数,即指定 unix 套接字的地方 - 但由于主机 IP 和端口是必填字段并且它对它们进行测试,所以它不会接受它。
我想避免 VPC 的额外成本(而且我不知道如何设置,因为我不是管理员,而且 IDE 之外发生的任何事情都会让我患上创伤后应激障碍)。
如果我无法解决这个问题,我将不得不将其部署到我们的 K8s 集群,我们正在尝试用无服务器选项(Cloud Run、GAE 等)替换它。
答案1
该问题与 Apache Superset UI 有关,我建议您按照GitHub 问题来解决这个问题。
目前,按如下方式配置您的无服务器环境将有助于解决该问题:
- 配置Cloud SQL 实例的专用 IP
- 设置VPC 无服务器访问连接器
- 配置云运行使用连接器
- 最后连接使用私有 IP 和端口
所提供的步骤在文档中有很好的解释,并且易于执行。