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

如何在新版Amazon SageMaker Studio中启用自动关闭生命周期配置?

解决新版Amazon SageMaker Studio生命周期配置(LCC)执行失败问题

1. 修复基础测试脚本的问题

你的测试脚本使用了set -eux,其中-e会在任意命令返回非零值时立即终止脚本。而新版Studio的JupyterServer环境在脚本执行阶段可能存在默认的非零返回操作,导致脚本提前退出,进而卡住空间启动流程。

修改测试脚本,调整错误处理逻辑,并将输出写入本地日志文件(方便直接排查):

#!/bin/bash
set -ux
echo "Hello from new Studio" >> /var/log/sagemaker-studio.log

2. 修正Terraform配置中的LCC关联方式

新版SageMaker Studio的**空间(Space)**是独立资源,LCC需要直接绑定到Space资源,而非仅在用户配置的全局jupyter_lab_app_settings中设置。Terraform配置示例:

resource "aws_sagemaker_space" "test_space" {
  domain_id     = aws_sagemaker_domain.main.id
  space_name    = "test-space"

  space_settings {
    jupyter_server_app_settings {
      lifecycle_config_arns = [aws_sagemaker_studio_lifecycle_config.test_lcc.arn]
    }
  }
}

resource "aws_sagemaker_studio_lifecycle_config" "test_lcc" {
  studio_lifecycle_config_name = "test-lcc"
  studio_lifecycle_config_app_type = "JupyterServer"
  studio_lifecycle_config_content = base64encode(<<EOF
#!/bin/bash
set -ux
echo "Hello from new Studio" >> /var/log/sagemaker-studio.log
EOF
  )
}

注意:新版Studio的LCC关联逻辑与Classic版完全不同,必须直接绑定到目标Space资源。

3. 适配自动关闭空闲笔记本的脚本

新版Studio的Kernel管理路径与Classic版不同,原自动关闭脚本需要调整。示例适配脚本:

#!/bin/bash
set -ux

# 设置空闲超时时间(单位:分钟)
IDLE_TIMEOUT=30

# 获取所有运行中的Kernel ID
KERNEL_IDS=$(jupyter kernelspec list --json | jq -r '.kernels[] | .name')

for KERNEL_ID in $KERNEL_IDS; do
  # 获取Kernel最后活动时间
  IDLE_TIME=$(jupyter kernel list --json | jq -r ".kernels[] | select(.id == \"$KERNEL_ID\") | .last_activity")
  # 计算时间差
  CURRENT_TIMESTAMP=$(date +%s)
  KERNEL_TIMESTAMP=$(date -d "$IDLE_TIME" +%s)
  DIFF=$(( (CURRENT_TIMESTAMP - KERNEL_TIMESTAMP) / 60 ))

  if [ $DIFF -ge $IDLE_TIMEOUT ]; then
    echo "Shutting down idle kernel: $KERNEL_ID" >> /var/log/sagemaker-studio.log
    jupyter kernel stop "$KERNEL_ID"
  fi
done

如果环境缺少jq工具,可在脚本开头添加yum install -y jq(针对Amazon Linux环境)。

4. 排查启动卡住的方法

若空间仍无法启动,可通过以下方式排查:

  • 通过SSM会话管理器连接到Studio对应的EC2实例
  • 查看本地日志文件:
    • /var/log/sagemaker-studio.log:Studio应用运行日志
    • /var/log/sagemaker-lcc.log:LCC脚本执行日志
      这些日志会直接显示脚本执行时的错误,比如依赖缺失、权限不足等问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 20:55:22