我正在尝试创建一个Google Cloud函数,该函数可对所有当前正在运行的DataProc集群进行迭代,但是dataproc.list_functions()
方法要求将区域作为参数传递。我们可以同时在多个活动区域上分布多个集群。
是否有任何方法可以在Python中检索区域列表并将对list_functions
的调用包装在遍历所有区域的for
循环内?
例如:
for region in regions:
for cluster in client.list_clusters('project', region):
do_stuff()
答案 0 :(得分:5)
您可以使用Compute客户端列出项目中的可用区域:
from googleapiclient import discovery
def get_regions(project):
compute_client = discovery.build('compute', 'v1')
regions = compute_client.regions().list(project=project).execute()
region_names = []
for r in regions["items"]:
region_names.append(r["name"])
return region_names