python - 列出谷歌云计算引擎活动实例
问题描述
我正在寻找所有活动资源(如计算引擎、gke 等)和相应的区域。我尝试在 python 代码下面打印它,但它打印所有区域信息,只要有计算引擎可用,请有人指导我有哪些功能可以这样做。
compute = googleapiclient.discovery.build('compute', 'v1')
request = compute.instances().aggregatedList(project=project)
while request is not None:
response = request.execute()
for name, instances_scoped_list in response['items'].items():
pprint((name, instances_scoped_list))
request = compute.instances().aggregatedList_next(previous_request=request, previous_response=response)
解决方案
您可以使用 Cloud Console gcloud compute instances list
命令或instances.list()
方法列出项目中的所有实例。
要以表格形式列出项目中的所有实例,请运行:
gcloud compute instances list
你会得到类似的东西:
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS
instance-1 us-central1-a n1-standard-1 10.128.0.44 xx.xx.xxx.xx RUNNING
instance-2 us-central1-b n1-standard-1 10.128.0.49 xx.xx.xxx.xx RUNNING
编辑1
正如您提到的那样,聚合列表()是正确的,并且要获得所需的信息,必须检查 JSON 响应正文。
如果您需要一些特定的字段,您可以查看响应正文信息。
此外,您可以将此代码用作指南,我从实例中获取所有信息。
from pprint import pprint
from googleapiclient import discovery
from oauth2client.client import GoogleCredentials
credentials = GoogleCredentials.get_application_default()
service = discovery.build('compute', 'v1', credentials=credentials)
# Project ID for this request.
project = "{Project-ID}" # TODO: Update placeholder value.
request = service.instances().aggregatedList(project=project)
while request is not None:
response = request.execute()
instance = response.get('items', {})
for instance in instance.values():
for a in instance.get('instances', []):
print(str(instance))
request = service.instances().aggregatedList_next(previous_request=request, previous_response=response)
推荐阅读
- scala - 如何从邮递员scala spray中调用实体(as [String])
- python - 不和谐.py | 如何为每个公会添加自定义角色
- r - 是否有按国家和年份汇总个人级别数据的 R 函数?
- python - 用python在excel中排列数据还是将数据导入python再排列?
- python - 用于序列数据的 LSTM 自动编码器
- javascript - 如何在JS中转换对象中的以下数据
- c# - 使用滑块控制相机的 FoV?
- deep-learning - 如何在 cpu 上将 32 位操作转换为 4 位或 8 位操作?
- java - 从 JSON 数组 String 创建 POJO 对象
- javascript - 我正在从 api 获取一些数据,当我在控制台上记录获取的数据时,它会一次又一次地被记录下来