gpt4 book ai didi

go - Google Cloud Go SDK中的ProjectsLocation和ProjectsZone函数/类型之间的区别

转载 作者:行者123 更新时间:2023-12-01 22:16:50 27 4
gpt4 key购买 nike

遍历go cloud sdk的package容器,人们发现在可用资源方面主要有两种不同的类型和方法:

  • 项目位置,例如ProjectsLocationsClustersCreateCall
  • projectszone例如ProjectsZonesClustersAddonsCall

  • 他们有什么区别?

    仅出于记录目的,我正在寻找一种必须遵循的模式,以便

    a)它通过(以某种方法?)项目ID

    b)检索属于该项目的所有可用GKE集群

    最佳答案

    container/v1 Go API是从底层Google Kubernetes Engine(GKE)REST API(public documentation)生成的,这些API支持按区域或按位置查询集群。检查这些文档,您会发现大多数建议是使用locations API。尽管特定于区域的API仍可用于向后兼容,但例如,不建议按区域进行任何过滤:

    Screenshot of Google Kubernetes Engine REST API v1 projects.zones.clusters.list endpoint docs, showing the zone parameter is deprecated.

    从内存来看,我相信当宣布支持区域GKE集群时,便增加了按位置搜索集群的功能。为了实现高可用性,此类群集的控制平面在多个区域之间共享,并且提供了可在区域群集和区域群集上通用的API。

    为了通过API调用获得项目中的所有集群,根据您的请求,可以使用location方法的(*container.ProjectsLocationsClustersService).List字段对基础API进行这样的调用:

    projectID := "my-project-id" // TODO fill in project ID
    svc, err := container.NewService(context.TODO())
    // TODO: handle err
    parent := fmt.Sprintf("projects/%s/locations/-", projectID) // Location "-" matches all zones and regions
    resp, err := svc.Projects.Locations.Clusters.List(parent).Do()
    // TODO do something with response and error
    parent参数的结构和List调用的行为的更多详细信息是 available in the API docs

    查询所有区域时,区域API将支持列出区域集群(将 zone参数设置为 -)。但是,由于它仅在其List方法中接受区域参数作为过滤器,因此它不提供用于过滤特定区域中的区域群集的功能。同一API的其他端点也有类似的限制。

    关于go - Google Cloud Go SDK中的ProjectsLocation和ProjectsZone函数/类型之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59352764/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com