Думаю, ваш подход прост и хорош.
Предоставляет ли Terraform возможность обновления заданий? Если это так, вы, вероятно, обнаружите, что он просто удаляет, а затем (повторно) создает задание. Я думаю, что этот подход (удаление, затем воссоздание) к обновлению заданий тоже хорош и, кажется, обеспечивает больший контроль; вы можете проверить, запускается ли расписание до | после его обновления.
Google предоставляет Диспетчер развертывания в качестве инструмента развертывания c, специфичного для Google Cloud. По моему опыту, основным преимуществом является то, что он работает на стороне сервера, но, в конечном счете, вы просто автоматизируете те же API, которые используете с gcloud
.
Если вы хотите изучить инструмент для управления вашу инфраструктуру в качестве кода, я бы рекомендовал Terraform вместо Deployment Manager.
Обновление
API планировщика поддерживает задания «исправления»:
https://cloud.google.com/scheduler/docs/reference/rest/v1beta1/projects.locations.jobs/patch
И этот механизм поддерживается gcloud
:
gcloud alpha scheduler jobs update