首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GCP auth代码连接gcp项目

GCP auth代码连接gcp项目
EN

Stack Overflow用户
提问于 2022-03-22 05:20:45
回答 2查看 105关注 0票数 1

我使用以下代码,如预期的那样工作,我从cli gcloud auth application-default login中使用并输入我的凭据,并且能够在我的macbook上成功地运行代码。

现在我需要在我的CI中运行这段代码,我们需要使用不同的方法,获得client_secret和client_id或服务帐户/某些ENV变量的方法应该是什么,通过GO代码实现它的方法是什么?

代码语言:javascript
复制
import "google.golang.org/api/compute/v1"

project := "my-project"
region := "my-region"

ctx := context.Background()

c, err := google.DefaultClient(ctx, compute.CloudPlatformScope)
if err != nil {
    log.Fatal(err)
}

computeService, err := compute.New(c)
if err != nil {
    log.Fatal(err)
}

req := computeService.Routers.List(project, region)
if err := req.Pages(ctx, func(page *compute.RouterList) error {
    for _, router := range page.Items {
        // process each `router` resource:
        fmt.Printf("%#v\n", router)
        // NAT Gateways are found in router.nats
    }
    return nil
}); err != nil {
    log.Fatal(err)
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-22 11:49:01

由于您正在使用Jenkins,所以您可能希望从如何创建服务帐户开始。它指导您如何创建服务帐户,并导出要在另一个CI/CD系统中设置为var的密钥。

然后,请参考客户端库中的文档,介绍如何使用源凭据创建新客户端。

例如:

代码语言:javascript
复制
client, err := storage.NewClient(ctx, option.WithCredentialsFile("path/to/keyfile.json"))

如果您没有提供任何源,它将尝试在本地读取凭据,并充当运行操作的服务帐户(不适用于您的用例)。

票数 2
EN

Stack Overflow用户

发布于 2022-03-22 07:35:56

许多独联体支持特定env vars的出口。或者您的脚本/ conf也可以这样做。

但是,如果您想在CI中运行,为什么需要这样的配置?集成测试?

一些服务可以在本地用于单元/烟雾测试。就像pubsub一样,有一种方法可以运行假的/本地的pubsub来执行一些测试。

或者我不明白你的问题,在这种情况下你能举个例子吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71567247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档