Как пройти аутентификацию в Google Cloud из приложения Rails, развернутого в k8s - PullRequest
1 голос
/ 20 февраля 2020

Мы используем метод в первом блоке кода в java, но я не вижу соответствующего метода в документации rails , только второй блок кода:

Storage storage = StorageOptions.getDefaultInstance().getService();

storage = Google::Cloud::Storage.new(
  project: "my-todo-project",
  keyfile: "/path/to/keyfile.json"
)

Если мы используем приложение, указывающее c учетную запись службы в кластере kubernetes. Как настроить приложение Rails для работы в локальной среде разработчика, а также для работы с кластером k8s?

Кроме того, я бы предпочел не использовать project_id и ключевой файл для инициализации, поскольку мне придется управлять несколько таких JSON файлов в процессе инициализации в dev, qa, staging, production.

Ответы [ 2 ]

1 голос
/ 21 февраля 2020

Я бы рекомендовал инициализировать без аргументов и использовать обнаружение учетных данных по умолчанию, как описано в Руководстве по аутентификации .

При работе на Google Cloud Platform (GCP), включая Google Compute Engine (GCE), Google Kubernetes Engine (GKE), Google App Engine (GAE), Google Cloud Functions (GCF) и Cloud Run, учетные данные будут обнаружены автоматически.

Для локального разработчика окружение, мы всегда используем переменные окружения с инициализацией без аргументов и обнаружением по умолчанию.

1 голос
/ 21 февраля 2020

Перед перемещением приложения в несколько сред вы должны настроить конвейер развертывания, который будет обрабатывать настройку вашего приложения для различных сред, включая настройку учетных записей служб.

Ниже вы можете найти две официальные облачные документации Google о том, как это сделать, и один пример в gitlab, чтобы вы могли следить за тем, что вам больше подходит.

Непрерывное развертывание в Google Kubernetes Движок с использованием Jenkins

Конвейеры непрерывной доставки с Spinnaker и Google Kubernetes Engine

Git Лабораторная работа - непрерывное развертывание на kubernetes

Кроме того, что касается параметров создания экземпляра объекта облачного хранилища, как вы можете видеть из той же документации, которую вы предоставили на свой вопрос, параметр проекта является идентификатором вашего хранилища в облаке, так что если вы не устанавливайте, что ваше приложение не сможет его найти. Для ключевого файла это то, что позволяет вашей учетной записи службы аутентификации, поэтому вы не можете заставить его работать и без него.

Надеюсь, эта информация помогла вам.

...