如何在Azure机器学习服务上使用新的docker映像更新现有web服务



我目前正在使用Azure机器学习服务进行机器学习项目。但我发现了一个问题,我无法将新的docker映像更新到现有的web服务(我想使用与运行we服务相同的url(。

我已经阅读了文档,但它并没有真正告诉我如何更新(文档链接:https://learn.microsoft.com/en-us/azure/machine-learning/service/how-to-deploy-and-where)。文档中说,我们必须使用update((,其中image=new image。

from azureml.core.webservice import Webservice
service_name = 'aci-mnist-3
# Retrieve existing service
service = Webservice(name = service_name, workspace = ws)
# Update the image used by the service
service.update(image = new-image)
print(service.state)

但是new-image并没有被描述为来自哪里。

有人知道如何解决这个问题吗?

谢谢

我同意,文档在这方面可能会更清楚一点。new-image是一个应该传递到update()函数中的图像对象。如果你刚刚创建了图像,你可能已经在一个变量中有了对象,那么只需传递它。如果没有,那么你可以使用从你的工作区获得它

from azureml.core.image.image import Image
new_image = Image(ws, image_name)

其中ws是您的工作空间对象,image_name是一个字符串,其中包含要获取的图像的名称。然后你继续以的身份呼叫update()

from azureml.core.webservice import Webservice
service_name = 'aci-mnist-3'
# Retrieve existing service
service = Webservice(name = service_name, workspace = ws)
# Update the image used by the service
service.update(image = new_image) # Note that dash isn't supported in variable names
print(service.state)

您可以在SDK文档中找到更多信息

编辑:上面的ImageWebservice类都是抽象的父类。

对于Image对象,您应该真正使用其中一个类,具体取决于您的情况:

  • ContainerImage
  • UnknownImage

(请参阅文档中的图像包(。

对于Webservice对象,您应该使用以下类之一,具体取决于您的情况:

  • AciWebservice
  • AksWebservice
  • UnknownWebservice

(请参阅文档中的Web服务包(。

最新更新