【问题标题】:Unable to list folders in GCP using go client library无法使用 go 客户端库在 GCP 中列出文件夹
【发布时间】:2021-11-04 20:42:41
【问题描述】:

我正在浏览cloudresourcemanager 包的documentation 并尝试构建一个简单的示例来列出我的GCP 项目的文件夹。

下面的例子失败了

package main

import (
    "context"
    "fmt"
    "log"

    cloudresourcemanager "google.golang.org/api/cloudresourcemanager/v2"
)

func main() {
    ctx := context.Background()
    svc, err := cloudresourcemanager.NewService(ctx)
    if err != nil {
        log.Fatal(err)
    }
    foldersService := cloudresourcemanager.NewFoldersService(svc)
    fmt.Println(foldersService)
    foldersListCall := foldersService.List()
    resp, err := foldersListCall.Do()
    if err != nil {
        fmt.Println("Here")
        log.Fatal(err)
    }
    for _, fld := range resp.Folders {
        fmt.Println(fld.Name)
    }
}

失败了

resp, err := foldersListCall.Do()

错误是

googleapi: Error 400: Request contains an invalid argument., badRequest

我设置了以下环境变量

GOOGLE_CLOUD_PROJECT=my-project-id
GOOGLE_APPLICATION_CREDENTIALS=/path/to/application_default_credentials.json

gcloud cli 工作正常。

有什么我可能遗漏的建议吗?

【问题讨论】:

  • 您确定为您的凭证启用了编程访问吗?我知道 AWS 区分了 cli 和编程,也许 GCP 也可以?只是一个想法

标签: go google-cloud-platform google-cloud-resource-manager


【解决方案1】:

错误信息根本没有帮助...

问题是我没有在请求中设置Parent参数,即organization(切换到v3有点帮助)

package main

import (
    "context"
    "fmt"
    "log"

    cloudresourcemanager "google.golang.org/api/cloudresourcemanager/v3"
)

func main() {
    ctx := context.Background()
    svc, err := cloudresourcemanager.NewService(ctx)
    if err != nil {
        log.Fatal(err)
    }
    foldersService := cloudresourcemanager.NewFoldersService(svc)
    foldersListCall := foldersService.List()
    foldersListCall.Parent("organizations/12345678910")
    resp, err := foldersListCall.Do()
    if err != nil {
        log.Fatal(err)
    }
    for _, fld := range resp.Folders {
        fmt.Println(fld.DisplayName)
    }
}


【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-22
    • 1970-01-01
    • 2021-09-18
    • 1970-01-01
    • 1970-01-01
    • 2022-07-08
    相关资源
    最近更新 更多