Обработка ошибки развертывания для конвейера потока данных gcp в действиях github - PullRequest
0 голосов
/ 17 апреля 2020

Я развертываю конвейер потока данных gcp, используя github actions. По сути, я вызываю сценарий оболочки, который запускает следующую команду для развертывания

python -m pipeline --project_id ${GOOGLE_PROJECT_ID} --job_name "pipeline-name"

. При этом будет развернут конвейер, и действие github покажет, что оно выполнено успешно, даже в случае неудачи оно будет показано как успешное. Я хочу вспомнить ошибку, если она не удалась. Теперь есть 2 способа сделать это:

  1. Разобрать выходные данные команды python -m pipeline ... и посмотреть, возвращает ли она новую конвейерную ссылку
  2. , используя gcp cli, чтобы проверить, является ли новый конвейер создано или нет. это необходимо сделать в al oop с помощью сценария оболочки.

Преимущество использования варианта 1 заключается в том, что я могу видеть, был ли создан конвейер или нет. Однако если gcp решит изменить URL-адрес (поскольку я буду использовать регулярное выражение для получения URL-адреса), сценарий прекратит работу

Преимущество варианта 2 состоит в том, что он будет более согласован с любыми основными изменениями (если только инструменты Cli обновляются). Но проблема в том, что я не знаю, было ли создание конвейера успешным или нет, поэтому мне нужно было бы от go до al oop, чтобы найти его, и из-за этого я не могу слить существующий конвейер, если только Бывает. Действие GitHub может показать "в процессе" в течение минуты или около того.

Предложения?

1 Ответ

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

Это хороший пример использования, и у луча есть ряд улучшений при развертывании трубопроводов из автоматизированных инструментов.

Если вы планируете обновить тот же конвейер, вы можете использовать функцию обновления потока данных https://cloud.google.com/dataflow/docs/guides/updating-a-pipeline, чтобы вам не приходилось сливать конвейер вручную.

Переход к варианту 1: URL-адрес был стабильным, но я согласен, что использование любого формата журнала подвержено разрывам во времени.

2: можно запрашивать поток данных и фильтровать по имени задания https://cloud.google.com/sdk/gcloud/reference/dataflow/jobs/list Вы можете использовать это, чтобы получить задание и проверить состояние задания и время создания. Тем не менее, это также кажется мне странным.

...