使用 Python SDK 在 GCP 中获取区域集群

And*_*ump 2 python google-cloud-platform google-kubernetes-engine google-cloud-functions

我正在开发一个云函数来与 GKE 内的集群进行交互,作为该函数的一部分,我需要获取相关集群。当集群是区域性的时,我在获取它时没有问题

import google.cloud.container

container_client = google.cloud.container.ClusterManagerClient()
response = container_client.get_cluster(
    project_id={project_id},
    cluster_id={cluster_id},
    zone={cluster_zone} # eg europe-west3-a
)
print(response)
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试获取区域集群,例如“europe-west4”,则会收到错误:

google.api_core.exceptions.InvalidArgument: 400 'zone' field cannot be used to access GKE regional clusters. Use 'name' or 'parent' fields instead.
Run Code Online (Sandbox Code Playgroud)

我尝试了 get_cluster 函数的变量的多种变体,包括用名称/父级替换区域参数,但随后出现错误:

google.api_core.exceptions.InvalidArgument: 400 Location "" does not exist.
Run Code Online (Sandbox Code Playgroud)

所以看来它只是没有配置为获取区域集群。我是否可以使用另一种方法来获取它,或者 get_cluster 是否缺少某些内容?

And*_*ump 8

阅读完文档后,必须以以下形式提出请求:

response = container_client.get_cluster(name=f"projects/{PROJECT_ID}/locations/{LOCATION}/clusters/{CLUSTER_ID}")
Run Code Online (Sandbox Code Playgroud)