google-cloud使用python API获取实例ID和区域

时间:2019-01-20 14:16:24

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

如何获取当前正在运行的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()

2 个答案:

答案 0 :(得分:1)

在Python中,将需要更多的编码。您需要执行以下操作,以列出Google Compute Engine中的所有实例。实例的ID和区域。

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

我做了一些自我编码,并且有适合我的代码。您可以找到我的code example here

注意:由于要在每个可用的ZONE中寻找所有可能的实例,因此代码将花费一些时间。

答案 1 :(得分:1)

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

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