Могут ли задания cron в google app engine запускать фоновую облачную функцию? - PullRequest
0 голосов
/ 29 октября 2018

После прочтения документов: https://cloud.google.com/appengine/docs/standard/nodejs/scheduling-jobs-with-cron-yaml

Кажется, что cron jobs поддерживает только облачную функцию HTTP.

Я хочу использовать GAE cron jobs и google pubsub, чтобы запускать мою функцию фонового облака каждый час. Как:

GAE corn jobs => Cloud pub/sub => фон cloud function.

Возможно ли это?

Ответы [ 3 ]

0 голосов
/ 29 октября 2018

Вы не можете напрямую вызывать облачные функции из задания 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 своей функции, как указано здесь . Это намного проще.

0 голосов
/ 29 октября 2018

Возможно, и подробно описано здесь .

0 голосов
/ 29 октября 2018

Сервис Cron не интегрирован с облачными функциями. Это часть движка приложения.

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