Разогрев или запуск службы на основе другой службы в App Engine - PullRequest
2 голосов
/ 10 июля 2020

У меня есть две службы в проекте App Engine. Сервис А имеет минимум 1 экземпляр. Служба B масштабируется до 0. Я хотел бы, чтобы служба A получила запрос, чтобы служба B получила запрос на прогрев или была инициирована каким-либо образом. Это связано с тем, что пользователи веб-приложения будут в первую очередь взаимодействовать со службой A, а служба B просто выполняет несколько тяжелых задач, выполнение которых будет стоить дорого. Однако, когда пользователь активен, я хотел бы, чтобы служба B была готова к go.

Другими словами, мне нужно, чтобы у службы B был неактивный экземпляр, доступный только тогда, когда служба A использовалась недавно. Есть ли способ сделать это?

1 Ответ

2 голосов
/ 10 июля 2020

Самый простой способ - просто использовать dispatch.yaml:

https://cloud.google.com/appengine/docs/standard/python/reference/dispatch-yaml

Затем создайте обработчик @before_request (это Flask thing) в службе A и попросите его проверить URL-адрес разогрева службы B.

Вы также можете создать отдельные файлы yaml для каждой службы и иметь нужный обработчик URL-адресов в serviceB.yaml (но не в serviceA. yaml).

https://cloud.google.com/appengine/docs/standard/python3/configuration-files

СОВЕТ: убедитесь, что вы развернули каждый из вновь созданных файлов yaml, используя gcloud deploy

...