更改docker映像时更新Sagemaker端点



我正在寻找更新Sagemaker Endpoint的最简单的解决方案。我唯一想更改的是docker映像(用于更新代码(。

我正在我的计算机上构建新的Docker映像,然后将其上传到ECR上(我计划在不久的将来在CI/CD中完成此操作(。

根据我的理解,最简单的方法似乎是创建一个新的EndpointConfig,然后调用UpdateEndpointAPI将端点切换到新的配置,然后删除旧的EndpointConfig。有人知道更简单的方法吗?或者有人能证实这是最简单的方法吗?

我的解决方案是使用具有update_enpoint方法的boto3 sagemaker client

以下是python 中的伪代码

  1. 使用更新的docker image创建第一个模型
session = boto3.Session()
sm_client = session.client('sagemaker')
sm_client.create_model(
ModelName = cfg.sagemaker.ENDPOINT_NAME,
ExecutionRoleArn = ROLE_ARN,
PrimaryContainer = {
'Image': AWS_IMAGE_FULLNAME,
'ModelDataUrl': MODEL_CLOUD_PACKAGE,
}
)
  1. 创建一个新的endpoint_config
sm_client.create_endpoint_config(
EndpointConfigName=CONFIG_NAME,
ProductionVariants=[{...}],
)
  1. 更新输入点
sm_client.update_endpoint(
EndpointName=ENDPOINT_NAME,
EndpointConfigName=CONFIG_NAME,
)

最新更新