0

我正在开发一项服务,该服务将为每个客户提供一个子域。到目前为止,我已将 Google Domains 上的 DNS 规则设置为

* | CNAME | 3600 | ghs.googlehosted.com.

然后我在 Cloud Run 控制台中为每个子域添加映射。每次新用户注册时,我都想以编程方式完成所有这些操作。

DNS 规则将自动处理任何新的子域,并将其映射到服务,我将使用 gcloud 命令: gcloud beta run domain-mappings create --service frontend --domain sub.domain.com

现在,我如何检查 Cloud Run 配置何时完成,以便通知客户平台已准备好使用?我可以每分钟 CRON 命令gcloud beta run domain-mappings describe --domain sub.domain.com,解析 JSON 输出并检查状态是否已完成。它很昂贵,但它应该可以工作。问题是,即使 gcloud cli 或 Web 控制台将配置标记为已完成,该平台在另外 5-10 分钟内仍无法访问,从而导致ERR_CONNECTION_REFUSED错误。服务日志显示正在向子域发出请求,但不知何故它不会为它服务。

4

1 回答 1

1

我最终按照建议使用了负载均衡器。我遵循了这个文档“使用 Cloud Run、App Engine 或 Cloud Functions 设置负载均衡器”,唯一不同的是我提供了自己的通配符证书(感谢 Let's Encrypt 和 certbox)。

现在我可以使用 Google Domains 的 API 立即创建一个子域。

于 2021-09-28T12:05:21.683 回答