使用 R 和 Vetiver 将 ML 模型部署到 AWS Sagemaker 时遇到问题

问题描述 投票:0回答:1

我正在关注这个博客,但是我正在使用 palmer penguins 进行模型开发,并且我正处于在 SageMaker 上为 R 中的香根草模型生成和构建 Docker 映像的阶段。

当我运行以下命令时:

new_image_uri <- 
  vetiver_sm_build(
  bucket = "ml-bucket-my-name",
  name = "penguin_model",
  board = board
)

我收到以下错误:

* Lockfile written to 'vetiver_renv.lock'.
WARN [2023-08-09 23:19:06.410]: Couldn't call 'get_role' to get Role ARN from role name my-name to get Role path.
Error: The current AWS identity is not a role: arn:aws:iam::123456789:user/my-name, therefore it cannot be used as a SageMaker execution role

在设置我的 AWS 环境时,我按照此博客进行操作,其中作者建议设置一个 IAM 用户,然后授予完整的 s3 访问权限,我已经这样做了,如下所示。

是否还缺少其他一些步骤来允许我将模型固定到 S3 存储桶中的电路板?

r amazon-web-services amazon-s3 amazon-sagemaker vetiver
1个回答
0
投票

您可能会发现查看 此代码 并了解在您的环境中调用

smdocker::sagemaker_get_execution_role()
时会发生什么很有帮助。

  • 如果我在本地调用此方法,我会收到有关没有凭据等的错误。

  • 如果我登录到我们的 SageMaker 实例(即我在浏览器中的 RStudio IDE 中,网址以

    sagemaker.aws
    结尾),我会看到一个真正的执行角色,类似于
    "arn:aws:iam::992233668866:role/vetiver-test-role"
    。如果您使用 SageMaker 本身工作,您将拥有默认的 SageMaker 执行角色。

如果您在本地工作但与 AWS 和 SageMaker 资源交互,则需要将

role
参数显式传递到
vetiver_sm_build()
查看此讨论,了解您需要采取的步骤

© www.soinside.com 2019 - 2024. All rights reserved.