如何配置SageMaker Pipeline默认存储桶?能否指定自定义存储桶?
SageMaker 默认存储桶配置与自定义桶指定
一、默认存储桶的配置逻辑
当调用sess.default_bucket()时,SageMaker会按以下规则自动生成/复用S3桶:
- 命名格式固定为:
sagemaker-<AWS区域>-<AWS账户ID> - 自动创建与复用:如果当前AWS账户在对应区域还没有该命名的桶,SageMaker会自动创建;若已存在则直接复用
- 权限自动关联:该桶会默认绑定你的SageMaker执行角色权限,确保SageMaker服务能正常读写桶内的训练数据、模型输出、Pipeline工件等内容
二、如何指定自定义存储桶
完全可以直接指定自定义S3桶,常用两种方式:
1. 初始化Session时全局指定
创建SageMaker Session时,通过default_bucket参数传入自定义桶名,后续所有依赖Session默认桶的操作都会使用这个自定义桶:
import sagemaker # 替换为你的自定义桶名 custom_bucket = "your-custom-s3-bucket" sess = sagemaker.Session(default_bucket=custom_bucket) # 此时调用会返回自定义桶名 print(sess.default_bucket())
2. 单个任务中单独指定
如果不需要全局修改默认桶,也可以在训练任务、Pipeline组件等具体操作中单独指定自定义桶路径。比如定义训练Estimator时:
from sagemaker.estimator import Estimator estimator = Estimator( image_uri="your-training-container-uri", role=role, instance_count=1, instance_type="ml.m5.xlarge", # 直接指定自定义桶的输出路径 output_path="s3://your-custom-bucket/training-outputs/" )
注意:自定义桶需要确保你的SageMaker执行角色拥有对应的S3权限(如
s3:GetObject、s3:PutObject等),可通过IAM控制台给角色添加对应桶的权限策略。
内容的提问来源于stack exchange,提问作者kyagu
相关产品推荐
相关产品推荐

