【发布时间】:2021-02-13 21:17:43
【问题描述】:
当您为在Cloud Run Service 中具有公共 IP 的 Cloud SQL 实例创建 SQL 连接时,Cloud Run 会在目录 /cloudsql/<PROJECT-NAME>:<DB-INSTANCE-REGION>:<DB-INSTANCE-NAME> 中创建一个套接字文件。
为了不硬编码PROJECT-NAME 和DB-INSTANCE-REGION,我查询容器元数据服务并获得project-id 和region。只要我的数据库实例与我的 Cloud Run 服务位于同一区域,这一切都可以正常工作,但如果数据库实例与 Cloud Run 服务位于不同的区域,则将无法正常工作。
有没有办法查询容器元数据并获取关联的连接,或者有没有更好的方法来实现这一点,而不是硬编码数据库实例区域?
【问题讨论】:
-
您是否考虑过将此字符串部分设置为部署的环境变量?
-
我当然有,但在某些用例中,我的云运行服务可能会部署到多个区域,但关联的数据库可能不会或可能与服务部署在同一区域,但在稍后阶段。我正在尝试在不重建容器的情况下做到这一点,因为重建容器将使我经历整个批准的生活方式等等。
-
您不需要为 ENV 更改重建容器。每当您将 CR 服务部署到某个区域时,“在部署时”您将 ENV 设置为覆盖整个/cloudsql/ 事物
标签: google-cloud-sql google-cloud-run