Pull to refresh

Comments 3

Спасибо. Мне было довольно интересно, так как последние полгода занимаюсь написанием цепочек функций для регулярной загрузки данных из различных источников в BigQuery.
Из отличий (что бросилось в глаза):
1. Из-за слабого знания Питона, я почти не использую его классы. Просто пишу функции. И, конечно, я бы сказал, что мой код значительно более корявый.
2. Все пароли, ключи и тому подобные вещи я храню в KMS. Соответственно cloud function лезет туда и всё распаковывает.
3. Обычно у меня очень много (до дюжины) переменных окружения — параметры, которые говорят — что откуда и куда брать и двигать (для разных environments — разные места).
4. Абсолютно всё хранится в репозитории (значит пароли нельзя хранить с кодом).
5. Абсолютно всё деплоится с помощью terraform (включая datasets, tables, service accounts, roles, permissions, etc.). Terraform workspace используется для dev, prod, test environments.
6. Credentials and accounts для доступа к BigQuery не требуются, так как cloud function исполняется от имени специальной service account, которой даются нужные привилегии.
a-l-e-x, спасибо за комментарий!

Я сам не моу сказать, что хорошо использую Python, прсото классы как-то сами напрашивались.
По п.6. Как раз есть на github представлены 2 версии credentials. Одна для работы с локальной машины, а вторая для деплоя Cloud Function.

Остальные пункты для меня, если честно, почти не знакомы. Было бы очень интеренсо прочитать как вы обращаетесь оргнанизацией кода, паролей и деплоя с помощью terraform.
Sign up to leave a comment.

Articles