Как я могу программно создать повторяющийся запуск Kubeflow из конвейерной функции?

#kubeflow #kubeflow-pipelines #kfp

Вопрос:

Я пытаюсь создать повторяющийся запуск конвейера kubeflow следующим образом:

 from kfp import compiler
compiler.Compiler().compile(
    pipeline_func=my_pipeline,
    package_path='pipelines/my_pipeline.tgz')

from kfp.v2.google.client import AIPlatformClient
api_client = AIPlatformClient(project_id='...',
                             region='...')

api_client.create_schedule_from_job_spec(
    job_spec_path='pipelines/my_pipeline.tgz',
    schedule='* * * * *',
    time_zone='UTC',
    parameter_values=arguments
)
 

Первая команда создает спецификацию конвейера в YAML, но вторая ожидает JSON.

Как иначе я могу создать повторяющийся запуск программно [а не через пользовательский интерфейс]?

Ответ №1:

Вы используете v1 kfp.compiler , который действительно выдает вывод yaml, и ваш клиент API v2 , который действительно ожидает ввода json. Используйте kfp.v2.compiler , чтобы соответствовать версиям, более поздний сохраняет конвейер в формате json, как и ожидалось вашим api_client .

Вы можете найти пример создания конвейера v2 на gcp здесь .