Не имея слишком большого контекста того, что делает ваш код, трудно указать основную причину, но я говорю, что продолжайте отладку вашего кода, как предложено Горацио , или вы можете использовать более сложныйинструмент типа StackDriver для мониторинга производительности ваших облачных функций. Оцените его стоимость , если вы заинтересованы.
Если Stackdriver является избыточным, просто воспользуйтесь встроенным переносом функций, чтобы узнать точное место вашей программы, которое потребляет все это время. Вот пример:
var start = process.hrtime();
yourfunction();
var elapsed = process.hrtime(start)[1] / 1000000;
console.log("Elapsed:" + elapsed.toFixed(3));
Если у вас есть точный фрагмент кода, который влияет на выполнение, вам, вероятно, придется его оптимизировать. Кроме того, поскольку я понимаю, что локально это работает отлично, учтите, что иногда процессы, работающие в облачной среде, подвержены задержке из-за «близости» других ресурсов, которые они потребляют.
Что касается вашего второго вопроса, об автоматизации вашей функции, которая будет выполняться каждый час. Вы можете воспользоваться Cloud Scheduler . Он имеет возможность совершать запланированные вызовы к конечным точкам HTTP / HTTPS, которые облачные функции классифицируют как одну из них. Обязательно проверьте также цены .