【问题标题】:How do I list my GCP projects under No Organization using the Resource Manager API?如何使用 Resource Manager API 在 No Organization 下列出我的 GCP 项目?
【发布时间】:2019-10-24 14:31:42
【问题描述】:

我似乎无法为Project List API 方法找到合适的过滤器,以仅列出我有权访问但在“无组织”下的项目。

有过滤器吗? 实现这一目标的方法是什么?

【问题讨论】:

    标签: google-cloud-platform google-api google-cloud-iam


    【解决方案1】:

    根据documentation,您应该能够使用过滤器来检查项目是否属于父(组织)。通过 cli 这可以工作:

    gcloud projects list --filter="parent.id.yesno(yes='Yes', no='No')=No"
    

    这也可以:

    gcloud projects list --filter="parent.id:None"
    

    python 等价物将是:

    from googleapiclient import discovery
    from oauth2client.client import GoogleCredentials
    
    credentials = GoogleCredentials.get_application_default()
    
    service = discovery.build('cloudresourcemanager', 'v1beta1', credentials=credentials)
    
    filter = "parent.id:None"
    projects = service.projects().list(filter=filter).execute()
    

    【讨论】:

      【解决方案2】:

      恐怕没有直接的方法可以实现这一目标。过滤器必须匹配“parent.id”或“parent.type”属性,对于没有组织的项目,它不存在(它们没有“parent”属性)。

      必须分两步完成:

      1.- 使用提到的Project List method 列出所有项目。

      2.- 使用Project Get method 浏览每个项目并检查属性“parent”是否存在,如果属性存在则表示它属于组织(或文件夹),否则不属于.

      项目示例获得组织的响应:

      {
        "projectNumber": "4444444444",
        "projectId": "my-project-id",
        "lifecycleState": "ACTIVE",
        "name": "my-project-name",
        "createTime": "2019-04-05T06:57:37.142Z"
        "parent": {
          "type": "organization",
          "id": "5555555555”
        }
      
      }
      

      项目示例在没有组织的情况下获得响应:

      {
        "projectNumber": "4444444444",
        "projectId": "my-project-id",
        "lifecycleState": "ACTIVE",
        "name": "my-project-name",
        "createTime": "2019-04-05T06:57:37.142Z"
      }
      

      【讨论】:

        【解决方案3】:

        使用过滤器“-parent.type:folder”(以破折号开头且没有 parent.id 参数)应该可以解决问题。

        我已经使用这个过滤器尝试了 API [1] 并且得到了无组织的项目。

        [1]https://cloud.google.com/resource-manager/reference/rest/v1/projects/list

        【讨论】:

        • 我尝试使用该过滤器,但我得到了所有项目的列表(有组织的和没有组织的),你能仔细检查一下,确保你可以访问这两种类型的项目吗? (组织项目和非组织项目)
        猜你喜欢
        • 1970-01-01
        • 2017-02-09
        • 1970-01-01
        • 2020-06-23
        • 1970-01-01
        • 2021-06-09
        • 1970-01-01
        • 1970-01-01
        • 2020-10-04
        相关资源
        最近更新 更多