以编程方式触发 SageMaker 的 Notebook 实例

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

首先,我目前在 AWS 上有一个系统可以执行以下操作

  1. 收集用户数据(当然前提是同意)并将其存储在 S3 存储桶中
  2. 使用 Sagemaker 笔记本实例来训练用户数据并部署端点。该端点稍后由 lambda 函数调用(我遵循了这个教程

问题是,我必须

  1. 手动运行笔记本实例
  2. 手动更改每个用户数据的路径

我想做的事情

第一:

  • 以编程方式触发笔记本实例。

  • 这可以定期进行或通过活动进行。我可以从 lambda 函数或其他 AWS 服务调用笔记本实例。

第二:

  • 将参数传递给笔记本实例(例如,存储桶路径,其中 数据已存储)

方法

笔记本工作

我找到了一些建议笔记本工作的资源。但是,笔记本作业仅提供安排笔记本的能力。

有一个发送参数的选项(我无法开始工作),但该选项仅意味着您在每次运行时传递相同的参数。

我的问题是,我遵循的方法正确吗?或者还有什么我应该考虑的吗?

提前致谢

python amazon-web-services amazon-s3 jupyter-notebook amazon-sagemaker
1个回答
0
投票

可以通过多种方式将自变量或参数传递给 SageMaker 笔记本实例:

  • 参数化笔记本
  • 环境变量 参数化笔记本需要一些编程技巧来解析参数,但环境变量要容易得多。这是这个的代码片段

`

import boto3
sagemaker_client = boto3.client('sagemaker')

# Define the notebook instance name
notebook_instance_name = 'your-notebook-instance-name'

# Define the environment variables as key-value pairs
environment_variables = {
'S3_BUCKET_PATH': 's3://your-bucket-name/path-to-data',
'OTHER_CONFIG_VAR': 'config-value'
}

# Set the environment variables for the notebook instance
sagemaker_client.update_notebook_instance(
NotebookInstanceName=notebook_instance_name,
Environment={
    'Variables': environment_variables
}
)

` 现在你可以运行笔记本了

    # Start the notebook instance (if it's not already running)


    sagemaker_client.start_notebook_instance(
    NotebookInstanceName=notebook_instance_name)

在笔记本内,您现在可以读取环境变量

import os

# Access environment variables
s3_bucket_path = os.environ.get('S3_BUCKET_PATH')
other_config_var = os.environ.get('OTHER_CONFIG_VAR')

print("S3 Bucket Path:", s3_bucket_path)
print("Other Configuration Variable:", other_config_var)
© www.soinside.com 2019 - 2024. All rights reserved.