Я застрял в этой проблеме в течение последних двух дней. Я хочу использовать 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 требует указывать путь к файлу, а не сам секрет Смотрите здесь .
Вопрос
Итак, вот мой вопрос:
- Можно ли подключиться к BigQuery с использованием Serverless Framework с использованием пути к файлу и файла
.env
? - Почему Google не позволяет просто использовать ключи доступа для подключения к BigQuery? Скорее я должен указать путь к моему файлу.
- Есть ли способ сохранить файл в KMS и расшифровать его при развертывании в Lambda?