Я использую https://cloud.google.com/go/google.golang.org API для получения общих метаданных экземпляра из Google Compute Engine.
Я нашел 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 85694249451-compute@developer.gserviceaccount.com [альфа-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 ноль UNSPECIFIED_XPN_PROJECT_STATUS {200 карта [X-Content-Type-Options: [nosniff] X-Frame-Options: [SAMEORIGIN ] X-Xss-Защита: [1; mode = block] Сервер: [GSE] Дата: [Пн, 14 мая 2018 г. 06:01:39 GMT] Тип контента: [application / json; charset = UTF-8] Etag: ["AZ9pASbV2zte89rFYbsuVT3-scI = / tQ5dONakPodnJi1mjg-QYom343E ="] Варьировать: [Происхождение X-Origin] Alt-Svc: [hq = ": 443"; ма = 2592000; Quic = 51303433; Quic = 51303432; Quic = 51303431; Quic = 51303339; Quic = 51303335, Quic = ": 443"; ма = 2592000; v = "43,42,41,39,35"] Срок действия истекает: [Пн, 14 мая 2018, 06:01:39 GMT] Контроль кэша: [частный, max-age = 0, обязательный переоценка, без преобразования] ]} [] []}
У меня нет опыта работы на Go, и я не знаю, как извлечь подробности из этого ответа