Я запускаю сценарий python, который создает задание потока данных облака Google. Команда выглядит следующим образом:
python -m runpipline <command_options ...>
Вывод этой команды показывает, было ли задание успешно создано или нет. В случае успешного создания команда заканчивается следующим образом:
INFO:apache_beam.runners.dataflow.internal.apiclient:Create job: <Job
createTime: '2020-02-18T20:39:44.885028Z'
currentStateTime: '1970-01-01T00:00:00Z'
id: '2020-02-18_12_39_43-1111111111111111111'
location: 'us-central1'
name: '<name_of_the_job>'
projectId: '<project_name>'
stageStates: []
startTime: '2020-02-18T20:39:44.885028Z'
steps: []
tempFiles: []
type: TypeValueValuesEnum(JOB_TYPE_STREAMING, 2)>
INFO:apache_beam.runners.dataflow.internal.apiclient:Created job with id: [2020-02-18_12_39_43-1111111111111111111]
INFO:apache_beam.runners.dataflow.internal.apiclient:To access the Dataflow monitoring console, please navigate to https://console.cloud.google.com/dataflow/jobsDetail/locations/us-central1/jobs/2020-02-18_12_39_43-1111111111111111111?project_name%
Этот скрипт выполняется действием github и использует ubunt-latest
image. То, что я хочу сделать, это
- Вывод команды должен быть напечатан на консоль, и я должен иметь возможность извлечь job_id из команды
- Если я могу извлечь работу ID, я должен быть в состоянии сделать следующую команду X.
- Если job_id не существует, то я должен выполнить скрипт.
Я использовал grep
, чтобы сделать это python -m runpipline <command_options ...> | grep -E "\d{4}-\d{2}-\d{2}_\d{2}_\d{2}_\d{2}-\d{19}\]"
, но это не позволило бы мне выводить данные на консоль. Кроме того, это просто дает мне линию, которая соответствует этому критерию. не идентификатор работы. Так что не уверен, что делать