Функция тайм-аута функции Google Cloud не работает - PullRequest
0 голосов
/ 05 ноября 2018

Я не могу запустить облачную функцию Google более 60 секунд, даже если тайм-аут установлен на 540 секунд !! Есть предложения?

Я установил флаг тайм-аута при развертывании на --timeout = 540, и я знаю, что настройка проходит, потому что настройка тайм-аута 540 секунд появляется в веб-интерфейсе GCP. Я также пытался вручную изменить время ожидания до 540 через веб-интерфейс GCP. Но в любом случае я все равно получаю DEADLINE_EXCEEDED всего через ~ 62000 мс.

Я попробовал оба метода pub / sub и https как триггер func, но все равно получаю преждевременный тайм-аут функции в ~ 60 с.

Я использую последний CLI с этими настройками:

  • триггер: http / pubsub (оба протестированы, один и тот же результат)
  • availableMemoryMb: 2048
  • время выполнения: nodejs6
  • статус: АКТИВНЫЙ
  • время ожидания: 540 с

Спасибо за любые комментарии!

Br Маркус

1 Ответ

0 голосов
/ 18 декабря 2018

Я использовал код документации для задержки и выполнил облачную функцию с теми же характеристиками, что и у вас. В документации исполнение задерживается 120000 мс (2 мин). Я отредактировал это и поместил это в 500000 мс. Это плюс обычное время, необходимое CF для выполнения, достигнет желаемого времени выполнения (около 9 минут). Если вы добавите 540000 для проверки кода, он будет выполнен с ошибкой тайм-аута в ~ 540025, поскольку само значение превышает лимит тайм-аута облачной функции и в то же время максимальный тайм-аут по умолчанию для облачной функции , что составляет 9 минут.

Я также пытался создать функцию с помощью этой команды gcloud functions deploy [FUNCTION_NAME] --trigger-http --timeout=540. После успешного развертывания я вручную обновил код в пользовательском интерфейсе облачной функции GCP следующим образом:

exports.timeoutTest = (req, res) => {
  setTimeout(() => {
    let message = req.query.message || req.body.message || 'Hello World today!';
    res.status(200).send(message);
    res.end();
  }, 500000); 
};

Оба раза облачная функция была выполнена и возвращена с кодом состояния 200. Это означает, что вы можете установить время ожидания более 60 секунд, что является значением по умолчанию.

Если вы все исправили правильно и у вас все еще есть эта проблема, я рекомендую вам начать заново, создать новый CF и использовать предоставленную мной ссылку на документацию.

...