Где сохранить файл ключа учетной записи службы для настройки подключения Google Cloud Composer? - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь настроить соединение Google Cloud Platform в Google Cloud Composer с помощью ключа учетной записи службы.Поэтому я создал корзину GCS и поместил в нее файл ключа учетной записи службы.Ключ хранится в формате JSON.В поле «Путь к ключевому файлу» я указал корзину GCS, а в поле «JSON» для ключевого файла - имя файла.Области применения: https://www.googleapis.com/auth/cloud-platform.

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

Глядя на сообщение об ошибке, кодпытается проанализировать файл, используя: with open(filename, 'r') as file_obj, который, очевидно, не будет работать с путем корзины GCS.

Так что мой вопрос, где я должен поместить этот файл ключа учетной записи службы, если он не может быть помещен вGCS путь?

Ответы [ 5 ]

0 голосов
/ 28 февраля 2019

Поскольку Cloud Composer находится в кластере GKE, вы можете установить свою служебную учетную запись как kubernetes secret , тогда вы сможете использовать ее вместе с Kubernetes Operator

0 голосов
/ 12 ноября 2018

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

Если вы создаете свою собственную учетную запись службы, скопируйте ключ JSON в корзину композиторов, которая создается.Этот файл / путь - это то, что вы будете использовать в поле «Дополнительно».Я думаю, что Composer устанавливает префикс файловой системы, используя точку монтирования gs: или gcs :.В файле Airflow.cfg, который находится в корзине, должна быть ссылка на него.

В этот момент у меня нет ни единого сообщения, чтобы сказать вам наверняка, поэтому я работаю из памяти.

0 голосов
/ 02 августа 2018

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

документы указывают, что вы можете добавить новуюAirflow Connection для служебной учетной записи, которая включает в себя копирование и вставку всего файла ключа JSON в конфигурацию Airflow Connection (ищите Keyfile JSON после выбора типа подключения Google Cloud Platform).

0 голосов
/ 03 августа 2018

Добавьте в поле «Extra» следующее:

'{"extra__google_cloud_platform__scope":"https://www.googleapis.com/auth/cloud-platform", "extra__google_cloud_platform__project":"{GOOGLE_CLOUD_PROJECT}", "extra__google_cloud_platform__key_path":"/path/to/gce-key.json"}'
0 голосов
/ 06 июня 2018

Это не имеет особого смысла для меня.Я не пользуюсь Google Cloud, так что, может быть, просто мое отсутствие знаний здесь:

Если вы пытаетесь установить соединение с GCP, как вы можете хранить свои учетные данные в GCP и ожидать соединения с вашего сервера воздушных потоков?Цыпленок и яйцо вещь.

Глядя на gcp_api_base_hook.py в репозитории воздушного потока, кажется, что вы ожидаете, что вы укажете key_path и / или keyfile_dict в дополнительных свойствах json соединения и логику того, как подключатьсяздесь

...