Как получить метаданные проекта с помощью Go SDK для облачной платформы Google? - PullRequest
0 голосов
/ 11 мая 2018

Я использую 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, и я не знаю, как извлечь подробности из этого ответа

1 Ответ

0 голосов
/ 11 мая 2018

С помощью 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...