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

不使用Python脚本实现AWS Sagemaker闲置实例自动关停方案咨询

AWS SageMaker实例离线闲置1小时自动关停实现方案

完全可以通过本地bash脚本结合cron任务实现,无需拉取任何外部代码,所有依赖均为SageMaker实例默认预装组件,适配无外网环境。

1. 编写本地闲置检测关停脚本

在实例中创建路径/home/ec2-user/auto_stop_idle.sh,写入以下内容:

#!/bin/bash
# 闲置时间阈值,单位秒,此处配置为1小时
IDLE_THRESHOLD=3600
# 获取当前时间戳
CURRENT_TIME=$(date +%s)
# 初始化最后活跃时间为当前时间,避免无会话时误判
LAST_ACTIVE=$CURRENT_TIME

# 检测Jupyter Notebook/Kernel活跃会话的最后活跃时间
SESSIONS=$(curl -s http://localhost:8888/api/sessions)
if [ -n "$SESSIONS" ]; then
  SESSION_TIMES=$(echo "$SESSIONS" | grep -o '"last_activity":"[^"]*"' | cut -d'"' -f4)
  for TIME in $SESSION_TIMES; do
    SESSION_TIMESTAMP=$(date -d "$TIME" +%s 2>/dev/null)
    if [ $SESSION_TIMESTAMP -gt $LAST_ACTIVE ]; then
      LAST_ACTIVE=$SESSION_TIMESTAMP
    fi
  done
fi

# 可选:检测终端活跃状态,避免后台运行终端任务时被误关停
WHO_OUTPUT=$(who -u)
if [ -n "$WHO_OUTPUT" ]; then
  while read -r LINE; do
    IDLE_STR=$(echo "$LINE" | awk '{print $6}')
    # 终端闲置时间为.表示当前活跃,格式为m:s表示闲置不足1小时
    if [[ "$IDLE_STR" == "." || "$IDLE_STR" == *:* ]]; then
      LAST_ACTIVE=$CURRENT_TIME
      break
    fi
  done <<< "$WHO_OUTPUT"
fi

# 计算总闲置时长
IDLE_DURATION=$((CURRENT_TIME - LAST_ACTIVE))
if [ $IDLE_DURATION -ge $IDLE_THRESHOLD ]; then
  # 从本地元数据获取当前实例名称和所属区域
  INSTANCE_NAME=$(grep '"ResourceName"' /opt/ml/metadata/resource-metadata.json | cut -d'"' -f4)
  REGION=$(grep '"ResourceArn"' /opt/ml/metadata/resource-metadata.json | cut -d'"' -f4 | cut -d':' -f4)
  # 执行关停操作
  aws sagemaker stop-notebook-instance --notebook-instance-name "$INSTANCE_NAME" --region "$REGION"
fi

2. 配置执行权限与定时任务

  • 给脚本添加可执行权限:
chmod +x /home/ec2-user/auto_stop_idle.sh
  • 编辑cron任务,设置每10分钟执行一次检测(可按需调整执行频率):
    执行crontab -e,在打开的编辑器末尾添加以下行:
*/10 * * * * /bin/bash /home/ec2-user/auto_stop_idle.sh >> /var/log/auto_stop_idle.log 2>&1

保存退出后cron会自动加载新任务,所有运行日志会写入/var/log/auto_stop_idle.log方便排查问题。

3. 配置IAM权限

你需要给当前SageMaker实例绑定的执行角色添加sagemaker:StopNotebookInstance权限,否则脚本无法执行关停操作。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 01:48:03