sagemaker 项目模板部署从哪里获取环境变量

Posted

技术标签:

【中文标题】sagemaker 项目模板部署从哪里获取环境变量【英文标题】:Where do sagemaker project templates deployment get the environment variables from 【发布时间】:2021-12-16 22:17:52 【问题描述】:

我在 sagemaker studio 中下载了一个 sagemaker 项目模板。我下载的是用于模型构建、训练和部署的 MLOps 模板。 (请参阅有关它的文档 here 和下载的代码 here)。

我很困惑为部署设置环境变量的位置。您可以在buildspec.yml 代码构建文件的部署中看到这些引用。 (见文件here)

python build.py \
          --sagemaker-project-id "$SAGEMAKER_PROJECT_ID" --sagemaker-project-name "$SAGEMAKER_PROJECT_NAME" \
          --model-package-group-name "$SOURCE_MODEL_PACKAGE_GROUP_NAME" \
          --staging-config-name "$STAGING_CONFIG_NAME" --prod-config-name "$PROD_CONFIG_NAME" \
          --sagemaker-execution-role-staging-name "$SAGEMAKER_EXECUTION_ROLE_STAGING_NAME" \
          --sagemaker-execution-role-prod-name "$SAGEMAKER_EXECUTION_ROLE_PROD_NAME" \
          --staging-accounts "$STAGING_ACCOUNT_LIST" \
          --prod-accounts "$PROD_ACCOUNT_LIST" \
          --env-name "$ENV_NAME" \
          --ebs-kms-key-arn "$SAGEMAKER_EBS_KMS_KEY_ARN" \
          --env-type-staging-name "$ENV_TYPE_STAGING_NAME" \
          --env-type-prod-name "$ENV_TYPE_PROD_NAME" \
          --multi-account-deployment "$MULTI_ACCOUNT_DEPLOYMENT"

但是,我看不到这些环境变量的设置位置。比如SOURCE_MODEL_PACKAGE_GROUP_NAME在哪里设置?

【问题讨论】:

【参考方案1】:

这些变量在定义 CodePipeline 和 CodeBuild 的 CloudFormation 模板中设置。

这可能就是您要找的那个:

https://github.com/aws-samples/amazon-sagemaker-secure-mlops/blob/master/cfn_templates/project-model-deploy.yaml#L226

如果您通过 SageMaker Studio 部署了 SageMaker 项目,您应该已经拥有一个可以更新的 CloudFormation 堆栈。

【讨论】:

以上是关于sagemaker 项目模板部署从哪里获取环境变量的主要内容,如果未能解决你的问题,请参考以下文章

在 CloudFormation/CDK 中获取 Sagemaker Notebook 实例 IP 地址

如何在 Python 中本地部署 Amazon-SageMaker

无法读取 Sagemaker 语义分割模型批量转换输出文件

Streamlit 浏览器应用程序无法从 Sagemaker 终端打开

将经过训练的 AWS SageMaker MXNet 模型部署/转换到 iOS 设备

把web项目部署到tomocat上