Определите идентификатор проекта Google Cloud из контейнера в кластере Kubernetes, размещенном в Google.
При подключении к BigTable; Мне нужно предоставить идентификатор проекта Google. Есть ли способ обнаружить это автоматически из K8s?
Определите идентификатор проекта Google Cloud из контейнера в кластере Kubernetes, размещенном в Google.
При подключении к BigTable; Мне нужно предоставить идентификатор проекта Google. Есть ли способ обнаружить это автоматически из K8s?
В Python вы можете найти идентификатор проекта следующим образом:
import google.auth
_, PROJECT_ID = google.auth.default()
В исходном вопросе не упоминалось, какой язык программирования используется, и у меня был тот же вопрос для Python.
Вы можете использовать службу метаданных. Пример:
curl -H "Metadata-Flavor: Google" -w '\n' http://metadata.google.internal/computeMetadata/v1/project/numeric-project-id
Это будет работать с любой виртуальной машиной, работающей на Google Compute Engine или Container Engine.
См. https://cloud.google.com/compute/docs/storing-retrieving-metadata:
Google Compute Engine определяет набор записей метаданных по умолчанию, которые предоставляют информацию о вашем экземпляре или проекте. Метаданные по умолчанию всегда определяются и устанавливаются сервером.
...
numeric-project-id
Числовой идентификатор проекта экземпляра, который не совпадает с именем проекта, отображаемым в консоли Google Cloud Platform. Это значение отличается от значения записи метаданных идентификатора проекта.
project-id
ID проекта.
Для этого у Google тоже есть несколько библиотек: ServiceOptions.getDefaultProjectId
https://googleapis.github.io/google-cloud-java/google-cloud-clients/index.html
https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-core