Где хранить и извлекать данные для Google Cloud Functions API?

Я играю с API облачных функций Google, и я не понимаю, как правильно использовать его для простого REST API для извлечения некоторых данных из базы данных и ответа клиенту данными, которые ему нужны.

Я использую serverless для развертывания моего кода, который выглядит так для функции.

exports.http = (request, response) => {
  response.status(200).send('Hello World!');
};

но это всего лишь простой ответ 200 (OK) без данных из базы данных.

Исходя из фреймворков MVC, таких как Rails или Django, я бы написал действие контроллера для извлечения некоторых данных из моей базы данных и визуализации JSON для ответа, но облачные функции Google работают по-другому, просто имея функции и ничего больше.

Где я должен хранить свою базу данных (в Google Cloud Services) и как я могу получить данные в функции? Должен ли я вызывать какой-то API базы данных, обрабатывать результат и отправлять его обратно в виде JSON внутри функции?


person Dude    schedule 27.04.2017    source источник


Ответы (1)


С облачными функциями Google вы обычно используете размещенную базу данных, например базу данных Firebase Realtime, для постоянного хранилища. В этом сценарии вы должны использовать GCF в качестве шлюза API для базы данных Firebase.

Вы также можете развернуть свою собственную виртуальную машину, на которой работает база данных по вашему вкусу. Тогда это возьмет на себя роль базы данных Firebase в предыдущем примере, и вы по-прежнему будете использовать GCF в качестве шлюза API.

В этих двух подходах у вас есть две микрослужбы: сама база данных является службой, а функции GCF являются службой, которая обертывает базу данных.

Последний вариант — развернуть базу данных в контейнере GCF, в котором выполняются ваши функции. Затем вы можете подключиться к этой базе данных из кода своих функций, не подключаясь к внешней службе. См. этот ответ для получения дополнительной информации о развертывании пользовательского двоичного файла в контейнере GCF.

person Frank van Puffelen    schedule 27.04.2017
comment
вау, после быстрого теста firebase выглядит довольно круто. Я только что загрузил изображение в firebase, и после загрузки функция подключилась для создания большого пальца. изысканный! - person Dude; 27.04.2017
comment
Добро пожаловать в ваше безсерверное будущее! :-) - person Frank van Puffelen; 27.04.2017