Amazon SageMaker Model Registry如何手动为指定Model Version设置Stage
解决方案
1. 手动设置Model Version的Stage列值
你在控制台看到的Stage列并非SageMaker模型注册表的原生内置字段,是官方MLOps模板约定通过Model Package的特定标签渲染的,操作方式如下:
- 你之前将
sagemaker:deployment-stage标签绑定到Endpoint、EndpointConfiguration、Model资源上无法生效的原因是:该标签需要直接绑定到目标Model Version对应的Model Package资源上,控制台会直接读取该标签的值作为Stage列的展示内容。 - 调用
AddTagsAPI即可完成设置,boto3示例代码如下:
import boto3 sagemaker_client = boto3.client("sagemaker") # 替换为你的Model Package ARN MODEL_PACKAGE_ARN = "arn:aws:sagemaker:<区域>:<账号ID>:model-package/<模型组名称>/<版本号>" sagemaker_client.add_tags( ResourceArn=MODEL_PACKAGE_ARN, Tags=[ { "Key": "sagemaker:deployment-stage", "Value": "Production" # 替换为你需要的阶段名,如Staging、PreProd等 } ] )
- 调用完成后刷新模型注册表页面,Stage列即可展示你设置的对应值。
2. 手动触发“Deployed to stage XYZ”事件
该事件是SageMaker控制台对Model Package的sagemaker:deployment-stage标签变更的CloudTrail日志的自动解析结果,不需要调用额外的专用API:
- 完成上一步给Model Package添加/更新
sagemaker:deployment-stage标签的操作后,等待1~2分钟,CloudTrail会同步该操作日志,刷新Model Version的Activity标签页即可看到对应的“Deployed to stage <你设置的阶段名>”事件。 - 如果你需要和官方MLOps模板完全一致的自动触发逻辑,可自行创建EventBridge规则,监听端点部署完成事件,匹配到对应Model Package后自动调用
AddTags接口打标签,即可实现事件的自动生成。
内容的提问来源于stack exchange,提问作者blahblah
相关产品推荐
相关产品推荐

