我使用以下代碼按預期作業,我從 cli 使用gcloud auth application-default login并輸入我的憑據,我能夠從我的 macbook 成功運行代碼。
現在我需要在我的 CI 中運行這段代碼,我們需要使用不同的方法,獲取 client_secret 和 client_id 或服務帳戶/一些 ENV 變數的方法應該是什么,通過 GO 代碼執行此操作的方法是什么?
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)
}
uj5u.com熱心網友回復:
由于您使用的是 Jenkins,您可能想從如何創建服務帳戶開始。它指導您創建服務帳戶并匯出要在另一個 CI/CD 系統中設定為 var 的密鑰。
然后參考客戶端庫中的檔案,了解如何使用源憑證創建新客戶端。
例如
client, err := storage.NewClient(ctx, option.WithCredentialsFile("path/to/keyfile.json"))
如果您未提供任何來源,它將嘗試在本地讀取憑據并充當運行該操作的服務帳戶(不適用于您的用例)。
uj5u.com熱心網友回復:
許多 CI 支持匯出特定環境變數。或者你的腳本/配置也可以做到。
但是如果你想在 CI 中運行,為什么需要這樣的配置呢?集成測驗?
一些服務可以在本地用于單元/冒煙測驗。與 pubsub 一樣,有一種方法可以運行假的/本地 pubsub 來執行一些測驗。
或者我不明白你的問題,在這種情況下你能舉個例子嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/450892.html
