如何列出Sagemaker Studio中所有运行中的实例?
列出Sagemaker Studio域内运行中实例的脚本
下面是一个基于Python和boto3的脚本,可遍历所有Sagemaker Studio域,找出其中所有处于运行状态(InService)的实例,并输出详细信息。
前提条件
- 安装boto3 SDK:
pip install boto3 - 已配置AWS凭证:可通过
aws configure命令设置,或在运行环境中绑定具有Sagemaker读取权限的IAM角色(权限需包含sagemaker:ListDomains、sagemaker:ListUserProfiles、sagemaker:ListApps)
完整脚本
import boto3 def list_running_sagemaker_studio_instances(): # 初始化SageMaker客户端 sagemaker_client = boto3.client('sagemaker') # 分页获取所有SageMaker Studio域 domains_paginator = sagemaker_client.get_paginator('list_domains') domains = [] for page in domains_paginator.paginate(): domains.extend(page['Domains']) for domain in domains: domain_id = domain['DomainId'] domain_name = domain['DomainName'] print(f"\n=== SageMaker Studio域: {domain_name} (ID: {domain_id}) ===") # 分页获取当前域下的所有用户配置 user_profiles_paginator = sagemaker_client.get_paginator('list_user_profiles') user_profiles = [] for page in user_profiles_paginator.paginate(DomainId=domain_id): user_profiles.extend(page['UserProfiles']) for user_profile in user_profiles: user_profile_name = user_profile['UserProfileName'] # 分页获取当前用户下的所有应用 apps_paginator = sagemaker_client.get_paginator('list_apps') apps = [] for page in apps_paginator.paginate(DomainId=domain_id, UserProfileName=user_profile_name): apps.extend(page['Apps']) # 筛选状态为InService的运行中实例 running_apps = [app for app in apps if app['Status'] == 'InService'] if running_apps: print(f" 用户: {user_profile_name}") for app in running_apps: print(f" - 应用名称: {app['AppName']}") print(f" 应用类型: {app['AppType']}") print(f" 实例类型: {app['ResourceSpec']['InstanceType']}") print(f" 状态: {app['Status']}\n") else: print(f" 用户: {user_profile_name} - 无运行中的实例") if __name__ == "__main__": list_running_sagemaker_studio_instances()
脚本说明
- 采用分页器处理大量域、用户或应用的场景,避免因结果过多触发API限制
- 自动遍历所有Sagemaker Studio域,无需手动指定域ID
- 输出信息包含域名称/ID、用户名称、应用名称、应用类型(如JupyterServer、KernelGateway)、实例类型及运行状态
- 若用户无运行中实例,会明确标注
使用方式
- 安装依赖后,将脚本保存为
list_running_sm_instances.py - 在终端运行:
python list_running_sm_instances.py - 终端会打印所有运行中的Sagemaker Studio实例信息
内容的提问来源于stack exchange,提问作者Peter
相关产品推荐
相关产品推荐

