You need to enable JavaScript to run this app. 如何使用boto3创建预加载S3文件的EMR Studio笔记本?
优惠活动
大模型
产品
解决方案
定价
更多

如何使用boto3创建预加载S3文件的EMR Studio笔记本?

如何通过boto3创建预加载S3存储笔记本文件的EMR Studio笔记本

注意:EMR Studio没有单独的静态笔记本文件创建/删除接口,所有文件操作都基于绑定的S3存储实现
你之前查阅的EMR通用client接口仅负责EMR Studio实例本身的生命周期管理,笔记本相关的操作需要结合emr和emr-containers两个boto3客户端完成,具体操作逻辑如下:

  • EMR Studio的笔记本文件默认存储在你绑定的S3路径下,预加载操作本质是将提前上传到S3的.ipynb文件映射到Studio的工作空间中
  • 静态笔记本文件无需额外调用创建接口,只要配置好S3路径映射,Studio会自动识别路径下的笔记本文件;运行态的笔记本会话则需要调用emr-containers的作业启动接口创建

具体操作步骤

1. 配置EMR Studio实例的S3路径映射

创建EMR Studio实例时,指定DefaultS3Location参数为你存放预加载笔记本文件的S3前缀,你需要提前把所有要预加载的.ipynb文件上传到该S3路径下。
如果已经创建了Studio实例,可以调用update_studio接口修改该参数。

2. (可选)给指定用户配置专属预加载路径

如果需要给不同用户配置不同的预加载笔记本集合,可以调用create_studio_session_mapping接口,为特定用户/用户组绑定独立的S3工作路径,该路径下的笔记本文件只会对绑定的用户可见。

3. (可选)启动运行态的笔记本会话

如果需要自动创建一个处于运行状态的笔记本实例,而非仅提供静态文件,需要调用emr-containers客户端的start_job_run接口,指定作业类型关联到你预加载的S3笔记本文件。


示例代码

import boto3

# 初始化对应区域的客户端
emr_client = boto3.client('emr', region_name='你的AWS区域')
emr_containers_client = boto3.client('emr-containers', region_name='你的AWS区域')

# 示例1:创建带预加载S3路径的EMR Studio实例
studio_response = emr_client.create_studio(
    Name='你的Studio名称',
    AuthMode='SSO', # 也可根据实际情况改为IAM
    VpcId='你的VPC ID',
    SubnetIds=['子网ID1', '子网ID2'],
    ServiceRole='EMR Studio服务角色ARN',
    UserRole='EMR Studio用户角色ARN',
    DefaultS3Location='s3://你的Bucket名称/预加载笔记本存储前缀/'
)
studio_id = studio_response['StudioId']

# 示例2:为指定用户绑定专属预加载路径
emr_client.create_studio_session_mapping(
    StudioId=studio_id,
    IdentityId='用户的SSO ID或IAM ARN',
    IdentityType='USER',
    SessionPolicyArn='会话权限策略ARN',
    S3Location='s3://你的Bucket名称/专属用户预加载笔记本前缀/'
)

# 示例3:启动运行态的预加载笔记本会话
session_response = emr_containers_client.start_job_run(
    VirtualClusterId='绑定到Studio的EMR on EKS虚拟集群ID',
    ExecutionRoleArn='EMR作业执行角色ARN',
    ReleaseLabel='emr-6.10.0-latest', # 可根据需求更换对应的EMR版本
    JobDriver={
        'SparkSubmitJobDriver': {
            'EntryPoint': 's3://你的Bucket名称/预加载笔记本路径/目标笔记本.ipynb',
            'SparkSubmitParameters': '--conf spark.executor.instances=2 --conf spark.driver.cores=1'
        }
    }
)

笔记本删除操作

  • 删除静态笔记本文件:直接删除对应S3路径下的.ipynb文件即可,Studio刷新后会自动同步文件列表
  • 删除运行态笔记本会话:调用emr_containers_client.cancel_job_run()接口,传入对应会话的job run ID即可终止运行的会话

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 07:15:02