【问题标题】:google-cloud get instance id and zone with python apigoogle-cloud 使用 python api 获取实例 ID 和区域
【发布时间】:2019-01-20 14:16:23
【问题描述】:

如何获取当前正在运行的 instanceId,以及它在运行 Python 应用程序中的区域。

在 Go 和 Java 中它是通过以下方式完成的,Python 中的等价物是什么?

去,

import metadata "cloud.google.com/go/compute/metadata"

func main(){
    println(metadata.InstanceID))
}

Java

String instanceId = com.google.cloud.MetadataConfig.getInstanceId()

【问题讨论】:

  • 元数据服务并非始终通过高级语言 SDK 公开。但是,直接构造 HTTP 请求以获取所需的实例元数据很简单。见这里:cloud.google.com/compute/docs/…

标签: python google-cloud-platform google-cloud-python


【解决方案1】:

我找到了一个简单的解决方案:

 requests.get("http://metadata/computeMetadata/v1/instance/id",
         headers={'Metadata-Flavor': 'Google'}).text

【讨论】:

    【解决方案2】:

    在 Python 中,它需要更多的编码。这是您需要做的,列出 Google Compute Engine 中的所有实例。实例的 ID 和区域。

    1. Using the Python Client Library 文档中,您可以看到CreateListDelete 实例的示例代码。整个源代码还有一个指向 GitHub 的链接。
    2. 要列出实例,您需要PROJECT_IDZONE。这意味着您必须首先列出所有可用的ZONES,然后列出每个ZONE 中的所有实例(如果可用)。请参阅 Regions and Zones 文档了解所有可用区域,参阅 Method: zones.list 了解列出它们的 Python 代码。

    我自己编写了一些代码,并且我有一个适合我的代码。你可以找到我的code example here

    注意:代码需要一些时间来执行,因为它会在每个可用的ZONE 中寻找所有可能的可用实例。

    【讨论】:

      猜你喜欢
      • 2021-04-21
      • 2021-10-24
      • 2021-05-21
      • 1970-01-01
      • 2020-10-27
      • 1970-01-01
      • 2018-02-09
      • 2013-09-07
      • 2021-12-11
      相关资源
      最近更新 更多