Вы не можете напрямую вызывать облачные функции из задания Cron, так как это служба App Engine , но вы можете вызвать обработчик App Engine из задания Cron и сделать этот обработчик вызывает вашу облачную функцию, используя любую информацию, которую вы хотите использовать из Pub / Sub.
Вот пример здесь , что, в сущности, я и сказал. Вы можете заменить его на использование Node.js в App Engine вместо Python:
const express = require('express');
const app = express();
app.get('/', (req, res) => {
const request = require('request');
request('YOUR_FUNCTION_URL', { json: false }, (err, res, body) => {
if (err) {
return console.log(err);
}
res
.status(200)
.send('Trigger called')
.end();
});
});
// Start the server
const PORT = process.env.PORT || 8080;
app.listen(PORT, () => {
console.log(`App listening on port ${PORT}`);
console.log('Press Ctrl+C to quit.');
});
EDIT
Cloud Scheduler - это новый сервис (на данный момент в бета-версии), который может создавать задания cron, предназначенные для App Engine, Pub / Sub или URL. В вашем случае вы можете настроить одно задание, выбрав URL своей функции, как указано здесь . Это намного проще.