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

如何使用google云平台的Go SDK获取项目元数据?,go,google-cloud-platform,Go,Google Cloud Platform,我正在使用API从Google计算引擎获取公共实例元数据 我发现了一个API,可以通过在params中指定项目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.

我正在使用API从Google计算引擎获取公共实例元数据

我发现了一个API,可以通过在params中指定项目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)
}
主程序包
进口(
“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)
如果错误!=零{
fmt.Println(错误)
}
computeService,错误:=compute.New(客户端)
projectGetCall:=computeService.Projects.Get(“”)
项目,错误:=projectGetCall.Do()
fmt.Println(项目)
}
我希望它应该从我系统中的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 0xc04222d720 0xc04222d770 0xc04222d7c0 0xc04222d810 0xc04222d860 0xc04222d8b0 0xC04222D4222D900 0xc04222d950 0xC04222D900xC04222D400xC022D400xDAC022D400xC042D42D400xC022D400xC022D42D0D000D0D0D0D0D0D0000D0D0D0D0D0D0D0D0X80]无未指定的XPN项目状态{200 map[X-Content-Type-Options:[nosniff]X-Frame-Options:[SAMEORIGIN]X-Xss-Protection:[1;mode=block]Server:[GSE]Date:[2018年5月14日星期一06:01:39 GMT]内容类型:[application/json;charset=UTF-8]Etag:[AZ9pASbV2zte89rFYbsuVT3 scI=/tQ5dONakPodnJi1mjg-QYom343E=“]Vary:[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”]过期:[2018年5月14日星期一06:01:39 GMT]缓存控制:[私有,最大年龄=0,必须重新验证,无转换]][]


我在Go上没有任何经验,也不知道如何从
项目的响应中提取详细信息。Get
您创建了一个指向
项目调用的指针。调用尚未进行。您必须对返回的项目调用执行
Do
。请参阅文档:

call:=computeService.Projects.Get(“”)
项目,错误:=call.Do()

使用
项目。Get
您创建了一个指向
项目调用的指针。调用尚未进行。您必须对返回的项目调用执行
Do
。请参阅文档:

call:=computeService.Projects.Get(“”)
项目,错误:=call.Do()

你在哪里看到了零地图?你在哪里看到了零地图?谢谢你的回答。它很有帮助。你能帮助我在打电话后提取信息吗?我已经编辑了我问题中的代码和回答。var项目现在有了你需要的所有数据。以下是文档:谢谢你的回答。它很有帮助。你能帮助我如何提取额外的信息吗打完电话后,我会整理信息。我已经编辑了问题中的代码和回答。var项目现在已经有了您需要的所有数据。以下是文档:
call := computeService.Projects.Get("<project-id>")
project, err := call.Do()