Я пытаюсь использовать облачную функцию Google, которая вызывает внешний API. Я нахожусь на плане Blaze, поэтому я должен быть в состоянии сделать внешние вызовы. У меня есть приложение Express и эти тестовые маршруты:
app.get('/helloWorld', (request, response) => {
response.send('Hello there');
});
app.get('/test', (request, response) => {
request.get("https://postman-echo.com/get?foo1=bar1&foo2=bar2", (error, res, body) => {
console.log('error:', error);
console.log('statusCode:', res && res.statusCode);
console.log('body:', body);
if(error) {
response.status(400).send(error);
}
response.status(200).send(body);
});
});
Маршрут / helloWorld работает нормально, но / тестовый маршрут истекает каждый раз. Если я посмотрю журналы Firebase для функции, я вижу:
9:19:29.837 PM
api
Function execution started
9:20:29.839 PM
api
Function execution took 60002 ms, finished with status: 'timeout'
9:21:09.263 PM
api
Function execution started
9:21:09.277 PM
api
Function execution took 14 ms, finished with status code: 200
9:21:13.515 PM
api
Function execution started
9:22:13.516 PM
api
Function execution took 60002 ms, finished with status: 'timeout'
Итак, похоже, что он просто продолжает вызывать функцию снова и снова в бесконечном цикле и время ожидания истекает каждый раз, и клиенту ничего не возвращается, пока он, наконец, не истечет время ожидания. Что я тут не так делаю?