You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过AWS S3触发AWS SageMaker Notebook实例自动执行并导出输出?

需求可实现,以下是具体实现方案

1. 触发机制:S3事件触发Lambda启动Notebook实例

  • 给目标S3桶配置对象创建事件(如Put操作),触发Lambda函数
  • 在Lambda中调用SageMaker的StartNotebookInstance API,启动指定的Notebook实例
  • 确保Lambda拥有S3事件读取权限、SageMaker实例启停权限,以及对应的IAM角色权限

2. 自动执行Notebook:利用SageMaker生命周期配置

  • 创建SageMaker生命周期配置脚本,在实例启动完成后自动执行以下操作:
    • 安装依赖工具:执行pip install papermill(papermill是批量执行Jupyter Notebook的专用工具)
    • 执行目标Notebook:用命令papermill /home/ec2-user/SageMaker/your_notebook.ipynb /home/ec2-user/SageMaker/output_notebook.ipynb -p input_s3_path s3://your-bucket/input-file.csv(输入文件路径可通过Lambda传递或从S3事件中获取)

3. 输出自动导出至S3

  • 在生命周期脚本中,执行完Notebook后,用AWS CLI或boto3将输出文件上传到目标S3桶:
    • CLI示例:aws s3 cp /home/ec2-user/SageMaker/output_notebook.ipynb s3://your-bucket/output/
    • Python脚本(boto3)示例:import boto3; s3 = boto3.client('s3'); s3.upload_file('/path/to/output', 'your-bucket', 'output/path')

4. 自动停止实例避免资源浪费

  • 在生命周期脚本末尾,调用SageMaker的StopNotebookInstance API,或用CLI命令:aws sagemaker stop-notebook-instance --notebook-instance-name your-instance-name
  • 也可以在Lambda中添加逻辑,轮询实例状态,待执行完成后触发停止操作

关键注意事项

  • 确保Notebook实例的IAM角色拥有S3读写权限,能访问输入输出桶
  • 生命周期脚本需匹配SageMaker Notebook的默认工作目录:/home/ec2-user/SageMaker/
  • 可通过Lambda将输入文件的具体路径传递给Notebook,比如用环境变量或S3事件中的对象键

内容的提问来源于stack exchange,提问作者Sophia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 22:13:15