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

Я хотел бы получить идентификатор проекта в Go через учетную запись службы, которую я использую в своей системе, чтобы всякий раз, когда этот код выполнялся на экземпляре вычисления в GCP, он получал идентификатор проекта, где находится экземпляр вычисления. Также, если я запускаю код с моего локального компьютера, он должен получить идентификатор проекта, аналогичный тому, который команда gcloud info получает из командной строки.

Кто-нибудь знает, какой API использовать в Go?

Ответы [ 2 ]

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

Разобрался с правильным 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()
    credentials, error := google.FindDefaultCredentials(ctx,compute.ComputeScope)
    if error != nil {
        fmt.Println(error)
    }

    fmt.Printf(credentials.ProjectID)
}
0 голосов
/ 14 мая 2018

Вы можете узнать идентификатор проекта экземпляра Compute Engine, используя Google Cloud API [1] с GET запросом к «http://metadata.google.internal/computeMetadata/v1/project/project-id с заголовок «Metadata-Flavor: Google» для разрешения.

Его можно протестировать в терминале Cloud Shell или в защищенной оболочке (SSH) с помощью:

curl "http://metadata.google.internal/computeMetadata/v1/project/project-id" -H" Метаданные: Google: "1015 *

[1]: https://cloud.google.com/compute/docs/storing-retrieving-metadata#default

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...