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

如何列出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)、实例类型及运行状态
  • 若用户无运行中实例,会明确标注

使用方式

  1. 安装依赖后,将脚本保存为list_running_sm_instances.py
  2. 在终端运行:python list_running_sm_instances.py
  3. 终端会打印所有运行中的Sagemaker Studio实例信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 05:37:02