我正在使用https://cloud.google.com/go/google.golang.org API从Google Compute Engine获取通用实例元数据。
我发现了一个通过在params中指定project-id来获取项目元数据的API。以下是我编写的代码:
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 [email protected]α-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 0xc04222da40 0xc04222da90 0xc04222dae0 0xc04222db30 0xc04222db80] https://www.googleapis.com/compute/v1/projects/project-id无效的edited_XPN_PROJECT_STATUS {200 map [X-Content-Type-Options:[nosniff] X-Frame-Options:[SAMEORIGIN] X-Xss-Protection:[1; 模式=块]服务器:[GSE]日期:[2018年5月14日星期一06:01:39 GMT]内容类型:[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”]过期:[2018年5月14日星期一,格林尼治标准时间] Cache-Control:[私有,最大年龄= 0,必须重新验证,不进行转换] ]} [] []}
我没有使用Go的经验,也不知道如何从此回复中提取细节
与Projects.Get
您一起创建指向的指针ProjectsGetCall
。尚未拨打电话。您必须Do
在返回的ProjectsGetCall 上执行。查看文档:https : //godoc.org/google.golang.org/api/compute/v1#ProjectsGetCall.Do
call := computeService.Projects.Get("<project-id>")
project, err := call.Do()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句