问题描述
我正在 Azure 机器学习工作区中部署推理管道。
我使用几个 PythonScriptStep
创建了一个管道,并希望使用 CI/CD 自动化管道发布。
参考:https://docs.microsoft.com/en-us/azure/machine-learning/how-to-deploy-pipelines#publish-a-pipeline
pipeline = Pipeline(workspace=workspace,steps=[step1,step2])
pipeline_endpoint = pipeline.publish(name='deployment-test',version=1)
每次我发布时,它都会创建新的端点,但我想部署到现有端点,这样消费者端就不必进行任何更改。
解决方法
PipelineEndpoint
可用于更新已发布的管道,同时维护相同的端点。 PipelineEndpoint
提供了一种使用版本跟踪 PublishedPipeline
的方法。 PipelineEndpoint
使用带有版本信息的端点来触发底层发布的管道。管道端点在工作区中是唯一命名的。
我遇到了和您一样的问题,并通过执行以下操作设法使其正常工作:
首先初始化端点:
pipeline = Pipeline(workspace=ws,steps=steps)
published = pipeline.publish(
name="name"
)
pipeline_endpoint = PipelineEndpoint.publish(
workspace=ws,name="My endpoint name",pipeline=published,description="Endpoint to my pipeline",)
pipeline_endpoint.add_default(published)
下次运行时改为运行:
pipeline = Pipeline(workspace=ws,steps=steps)
published = pipeline.publish(
name="name"
)
pipeline_endpoint = PipelineEndpoint.get(
workspace=ws,name="My endpoint name"
)
pipeline_endpoint.add_default(published)
add_default 确保在端点中使用最新版本的管道。