Как авторизовать функцию Lambda для публикации в BigQuery? - PullRequest
1 голос
/ 07 января 2020

Я застрял в этой проблеме в течение последних двух дней. Я хочу использовать Lambda в качестве операции Cron для получения данных из моей базы данных и отправки их в BigQuery.

Я хотел бы знать, как разрешить доступ к BigQuery с помощью файла учетной записи службы из моей функции Lambda.

Контекст

Я использую следующее:

Попытки

  • Все отлично работает на моем локальном компьютере, используя sls invoke local --function main. Я установил GOOGLE_APPLICATION_CREDENTIALS=/path/to/key.json в моем .env. Но, очевидно, /path/to/key.json - это локальный путь.
  • В качестве теста я попытался просто поместить файл своей учетной записи службы в каталог root моего проекта и установить GOOGLE_APPLICATION_CREDENTIALS=./key.json (обратите внимание, я использовал относительный путь). Это не работает локально или в облаке. И да, я знаю, что это плохая практика - я просто пытаюсь заставить ее работать. Я считаю, что это может быть вещь WebPack, хотя я совершенно не знаю, как использовать WebPack.
  • Я также думал о возможном использовании AWS KMS для шифрования json и сохранения его в виде пары ключ-значение в хранилище параметров (именно так я в конечном итоге и хочу его использовать). Но я заметил, что BigQuery требует указывать путь к файлу, а не сам секрет Смотрите здесь .

Project Structure

Вопрос

Итак, вот мой вопрос:

  1. Можно ли подключиться к BigQuery с использованием Serverless Framework с использованием пути к файлу и файла .env?
  2. Почему Google не позволяет просто использовать ключи доступа для подключения к BigQuery? Скорее я должен указать путь к моему файлу.
  3. Есть ли способ сохранить файл в KMS и расшифровать его при развертывании в Lambda?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...