Прослушивание Firebase () на AWS Lambda - PullRequest
0 голосов
/ 10 января 2019

Я создаю безсерверную инфраструктуру с несколькими функциями. До сих пор мне удалось опубликовать новую функцию в AWS лямбда, используя aws-sam-cli.

Одной из последних функций является мой прослушиватель firebase, который должен запускать определенные функции лямбда-aws.

По сути, я подумал создать новую функцию и добавить слушателя следующим образом:

import firebase_admin    
cred   = firebase_admin.credentials.Certificate(cert_json)
app    = firebase_admin.initialize_app(cred, config)
bucket = storage.bucket(app=app)

node_to_listen = '/alerts/'
firebase_admin.db.reference(node_to_listen).listen(listener)

Однако проблема в том, что AWS-лямбда, похоже, предназначена не для непрерывного выполнения функций, а только для запуска по событиям. Это верно и для функции прослушивания Firebase (), что означает, что у нас возникает проблема с курицей или яйцом, кто кого вызывает?

Как я могу опубликовать функцию прослушивания firebase и где? Должно ли оно быть развернуто где-то еще (например, Heroku?), Чтобы непрерывно прослушивать и отправлять запросы на событие в aws lambda? Или есть способ соединить эти два?

1 Ответ

0 голосов
/ 10 января 2019

Нет никакого способа сохранить активного слушателя в какой-либо известной мне среде «Функции как услуга». Целью таких сред является запуск (коротких) рабочих нагрузок в ответ на события. Вы пытаетесь фактически инициировать событие, сохраняя слушателя, который просто не соответствует модели FaaS.

Два решения, которые я вижу:

  1. Реализация вашего слушателя в среде, которая поддерживает активный процесс.
  2. Реализация вашего слушателя в среде FaaS, которая сама может прослушивать события базы данных Firebase Realtime. Единственная среда, которая может в настоящее время делать это, это Облачные функции , которая имеет База данных Firebase Realtime в качестве источника события . Таким образом, вы затем запускаете свою лямбда-функцию из облачных функций.

Второе решение - это единственное решение, которое на самом деле кажется полностью безсерверным, но кажется немного странным запускать Amazon Lambda из облачных функций Google.

Ведется работа по разрешению взаимодействия между поставщиками FaaS. Но я не уверен ни в текущем состоянии (ссылка на спецификацию / рабочая группа приветствуется), ни в том, будет ли там описан ваш сценарий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...