Azure ML 工作区:如何将管道发布到现有端点而不是创建新端点

问题描述

我正在 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 确保在端点中使用最新版本的管道。