Cloud Run и Cloud Scheduler - получение сбойного результата в полном наборе данных - PullRequest
1 голос
/ 13 апреля 2020

Я ежедневно запускаю сценарий python в Cloud Run с Cloud Scheduler для извлечения данных из BigQuery и загрузки их в Google Cloud Storage в виде файла CSV. Настройка Cloud Scheduler использует HTTP «Target» с GET «HTTP методом». Кроме того, Cloud Scheduler аутентифицирует конечную точку https , используя служебную учетную запись с опцией «Добавить OID C токен».

При запуске Cloud Scheduler и Cloud Run с очень небольшим подмножеством данных BigQuery для задания, которое занимает несколько секунд, «Результат» в Cloud Scheduler всегда показывает «Успех», и задание завершается, как предполагалось. Однако при запуске Cloud Scheduler и Cloud Run с полным набором данных BigQuery для задания, которое занимает несколько минут, «Результат» в Cloud Scheduler всегда показывает «Сбой», даже если файл CSV обычно (хотя и не всегда) загружается в Облачное хранилище Google как задумано.

(1) При запуске Cloud Scheduler и Cloud Run для полного набора данных BigQuery, почему «Результат» в Cloud Scheduler всегда отображает «Сбой», даже если задание обычно завершается, как предполагалось?

(2) Как я могу исправить Cloud Scheduler и Cloud Run, чтобы гарантировать, что задание всегда завершается, как задумано, и «Результат» в Cloud Scheduler всегда показывает «Успех»?

1 Ответ

1 голос
/ 13 апреля 2020

Это распространенная ошибка в Cloud Scheduler. Я много раз поднимал его в Google, но до сих пор ничего не менялось ...

GUI (веб-консоль) не позволяет вам ничего настраивать, особенно время ожидания. Ваш облачный планировщик дает сбой, потому что считает, что он не получает ответ вовремя, когда вы сканируете свой полный набор данных BQ (это может занять несколько минут)

Для решения этой проблемы используйте командную строку (gcloud), особенно параметр attempt-deadline . Вы можете посмотреть другие параметры: retry, backoff, ... Разрешенная настройка интересна, но отсутствует в GUI!

...