【问题标题】:Set hostname in container for CloudRun在容器中为 CloudRun 设置主机名
【发布时间】:2020-03-18 23:34:25
【问题描述】:

我希望托管 CloudRun 服务中的主机名是 MyServiceName.RevisionName.InstanceId 或任何比我现在得到的“localhost”更好的名称。 这可能吗?

【问题讨论】:

  • 使用更具体的主机名的目标是什么?
  • 你为什么想要这个?
  • 也想知道你为什么要这样做。服务的名称很重要。您的实例不是服务器,它们是短暂的。
  • 我正在运行一个应用程序,它使用主机名发送数据。每当来自 CloudRun 的数据显示为“localhost”时,这就是操作的问题。
  • 主机名在此上下文中不是有意义的标识符。是否可以向数据添加其他属性,例如用于识别特定实例的 UUID?

标签: google-cloud-platform google-cloud-run


【解决方案1】:

Cloud Run 是一个无服务器托管计算平台,这意味着它精确地构建为抽象出所有基础架构管理。运行 Cloud Run 服务的 container instances 是临时的,这意味着您的 Cloud Run 服务不会映射到特定的静态实例 ID。无法按照您在问题中描述的方式设置主机名。

根据应用程序的性质,您可以采用以下两种可能的方式之一:

  1. 遵循已在 cmets 上给出的建议之一(生成 UUID 并将其作为变量保存到正在运行的容器的范围内,以便它可以在容器的生命周期内用作标识符)。鉴于创建 UUID 的简单性,我认为这是最好的解决方法。以下是 Stackoverflow 社区提供的有关如何使用 PythonJavaScriptC# 以编程方式生成 UUID 的一些示例。

  2. 将容器应用程序从 Cloud Run 服务迁移到 Compute Engine VM instance with a custom hostname

【讨论】:

    【解决方案2】:

    元数据服务器提供一些属性来唯一标识您的服务实例并将其与日志和其他信息源相关联。

    参见cloud run specific attributes 和[元数据服务器文档](https://cloud.google.com/compute/docs/storing-retrieving-metadata]

    【讨论】:

      猜你喜欢
      • 2022-06-15
      • 1970-01-01
      • 1970-01-01
      • 2015-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多