【问题标题】:Right way to get Cloud SQL connection(s) in Cloud Run在 Cloud Run 中获取 Cloud SQL 连接的正确方法
【发布时间】: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-NAMEDB-INSTANCE-REGION,我查询容器元数据服务并获得project-idregion。只要我的数据库实例与我的 Cloud Run 服务位于同一区域,这一切都可以正常工作,但如果数据库实例与 Cloud Run 服务位于不同的区域,则将无法正常工作。

有没有办法查询容器元数据并获取关联的连接,或者有没有更好的方法来实现这一点,而不是硬编码数据库实例区域?

【问题讨论】:

  • 您是否考虑过将此字符串部分设置为部署的环境变量?
  • 我当然有,但在某些用例中,我的云运行服务可能会部署到多个区域,但关联的数据库可能不会或可能与服务部署在同一区域,但在稍后阶段。我正在尝试在不重建容器的情况下做到这一点,因为重建容器将使我经历整个批准的生活方式等等。
  • 您不需要为 ENV 更改重建容器。每当您将 CR 服务部署到某个区域时,“在部署时”您将 ENV 设置为覆盖整个/cloudsql/ 事物

标签: google-cloud-sql google-cloud-run


【解决方案1】:

要为您的运行时环境提供动态值,您有两种解决方案:

  1. 按照 Pentium10 的建议使用 environment variable
  2. 或使用arg value 提供给您的容器

【讨论】:

    猜你喜欢
    • 2019-10-28
    • 2020-06-15
    • 2020-07-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-05
    • 1970-01-01
    • 2021-04-26
    • 2021-08-10
    相关资源
    最近更新 更多