如何在 Sagemaker 中获取特定模型图像的 Amazon ECR 容器 URI?

How to get an Amazon ECR container URI for a specific model image in Sagemaker?

我想知道是否可以通过编程方式获取特定图像的 Amazon ECR 容器 URI(使用 AWS CLI 或 Python)。例如,如果我需要 URL 用于 eu-central-1 区域的最新 linear-learner(内置模型)图像。

预期结果:

664544806723.dkr.ecr.eu-central-1.amazonaws.com/linear-learner:latest

编辑:我找到了 get_image_uri 的解决方案。看起来这个函数将被弃用,我不知道如何使用 ImageURIProvider 来代替。

我们可以使用函数get_image_uri:

from sagemaker.amazon.amazon_estimator import get_image_uri

region = boto3.Session().region_name
#or region = 'eu-central-1'

get_image_uri(region_name=region,
              repo_name='linear-learner',
              repo_version='latest')

输出:

664544806723.dkr.ecr.eu-central-1.amazonaws.com/linear-learner:latest

警告:

'get_image_uri' method will be deprecated in favor of 'ImageURIProvider' class in SageMaker Python SDK v2.

看起来这个函数将被弃用,我找不到如何使用 ImageURIProvider 来代替。

较新版本的 SageMaker SDK 具有更集中的 API 用于获取 URI:

import sagemaker 
sagemaker.image_uris.retrieve("linear-learner", "eu-central-1")

这给出了预期的结果:

664544806723.dkr.ecr.eu-central-1.amazonaws.com/linear-learner:1

从 sagemaker 导入 image_uris 容器 = sagemaker.image_uris.retrieve("linear-learner", boto3.Session().region_name)