如何使用谷歌云平台的Go SDK获取项目元数据?



我正在使用 https://cloud.google.com/go/google.golang.org API从Google Compute Engine获取常见的实例元数据。

我找到了一个 API 来通过在参数中指定项目 ID 来获取项目的元数据。以下是我编写的代码:

package main
import (
"fmt"
"golang.org/x/net/context"
"google.golang.org/api/compute/v1"
"golang.org/x/oauth2/google"
)
func main() {
ctx := context.Background()
client, err := google.DefaultClient(ctx,compute.ComputeScope)
if err != nil {
fmt.Println(err)
}
computeService, err := compute.New(client)
projectGetCall := computeService.Projects.Get("<project-id>")
project, err := projectGetCall.Do()
fmt.Println(project)
}

我希望它应该从我系统中的 GCP 服务帐户获取默认凭据,并应将元数据打印到控制台。控制台的输出为:

&{0xc04222a150 2016-09-13T05:31:43.862-07:00 85694249451-compute@developer.gserviceaccount.com [alpha-api] 8538061022982459200 计算#项目项目 ID [0xc04222d310 0xc04222d360 0xc04222d3b0 0xc04222d400 0xc04222d450 0xc04222d4a0 0xc04222d540 0xc04222d590 0xc04222d5e0 0xc04222d630 0xc04222d680 0xc04222d6d0 0xc04222d720 0xc04222d770 0xc04222d7c0 0xc04222d810 0xc04222d860 0xc04222d8b0 0xc04222d900 0xc04222d950 0xc04222d9a0 0xc04222d9f0 0xc04222da400xc04222da90 0xc04222dae0 0xc04222db30 0xc04222db80] https://www.googleapis.com/compute/v1/projects/project-id nil UNSPECIFIED_XPN_PROJECT_STATUS {200 map[X-Content-Type-Options:[nosniff] X-Frame-Options:[SAMEORIGIN] X-Xss-Protection:[1; mode=block] 服务器:[GSE] 日期:[周一, 14 五月 2018 06:01:39 GMT] Content-Type:[application/json; charset=UTF-8] Etag:["AZ9pASbV2zte89rFYbsuVT3-scI=/tQ5dONakPodnJi1mjg-QYom343E="] Vary:[Origin X-Origin] alt-svc:[hq=":443"; ma=2592000; quic=51303433;quic=51303432;quic=51303431;quic=51303339;quic=51303335,quic=":443";ma=2592000;v="43,42,41,39,35"] 到期:[周一, 14 五月 2018 06:01:39 GMT] 缓存控制:[private, max-age=0, must-revalidate, no-transform]]} [] []}

我没有任何围棋经验,也不知道如何从这个回复中提取细节

使用Projects.Get可以创建指向ProjectsGetCall的指针。电话尚未拨打。您必须在返回的 ProjectsGetCall 上执行Do。查看文档:https://godoc.org/google.golang.org/api/compute/v1#ProjectsGetCall.Do

call := computeService.Projects.Get("<project-id>")
project, err := call.Do()

最新更新