调试生命周期配置 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

调试生命周期配置

以下主题介绍了如何获取生命周期配置的相关信息并进行调试。

从 CloudWatch Logs 验证生命周期配置流程

生命周期配置仅记录 STDOUTSTDERR

STDOUT 是 bash 脚本的默认输出。您可以通过在 bash 命令的末尾追加 >&2 来写入 STDERR。例如,echo 'hello'>&2

生命周期配置的日志通过 Amazon CloudWatch 发布到 Amazon Web Services 账户。这些日志可在 CloudWatch 控制台的 /aws/sagemaker/studio 日志流中找到。

  1. 通过 https://console.aws.amazon.com/cloudwatch/ 打开 CloudWatch 控制台。

  2. 从左侧选择日志。从下拉菜单中,选择日志组

  3. 日志组页面上,搜索 aws/sagemaker/studio

  4. 选择日志组。

  5. 日志组详细信息页面上,选择日志流选项卡。

  6. 要查找特定应用程序的日志,请使用以下格式搜索日志流:

    domain-id/user-profile-name/app-type/app-name

    例如,要查找域 d-m85lcu8vbqmz、用户配置文件 i-sonic-js、应用程序类型 JupyterServer 和应用程序名称 test-lcc-echo 的生命周期配置日志,请使用以下搜索字符串:

    d-m85lcu8vbqmz/i-sonic-js/JupyterServer/test-lcc-echo
  7. 选择追加 LifecycleConfigOnStart 的日志流,以查看脚本执行日志。

JupyterServer 应用程序失败

如果您的 JupyterServer 应用程序因附加的生命周期配置出现问题而崩溃,Studio 将在 Studio 启动屏幕上显示以下错误消息。

Failed to create SageMaker Studio due to start-up script failure

选择 View script logs 链接以查看 JupyterServer 应用程序的 CloudWatch 日志。

如果在域、用户配置文件或共享空间的 DefaultResourceSpec 中指定了错误的生命周期配置,那么即使重新启动 Studio,Studio 也会继续使用该生命周期配置。

要解决此错误,请按照 设置默认生命周期配置 中的步骤从 DefaultResourceSpec 中删除生命周期配置脚本,或选择其他脚本作为默认脚本。然后启动一个新的 JupyterServer 应用程序。

KernelGateway 应用程序失败

如果您的 KernelGateway 应用程序因附加的生命周期配置出现问题而崩溃,Studio 将在 Studio 笔记本中显示错误消息。

选择 View script logs 以查看 KernelGateway 应用程序的 CloudWatch 日志。

在这种情况下,生命周期配置是在启动新的 Studio 笔记本时在 Studio 启动程序中指定的。

要解决此错误,请使用 Studio 启动程序选择不同的生命周期配置或选择 No script

注意

DefaultResourceSpec 中指定的默认 KernelGateway 生命周期配置适用于域、用户配置文件或共享空间中的所有 KernelGateway 映像,除非用户从 Studio 启动程序中显示的列表中选择不同的脚本。如果用户选择了 No Script,默认脚本也会运行。有关选择脚本的更多信息,请参阅 步骤 3:使用生命周期配置启动应用程序

生命周期配置超时

生命周期配置超时限制为 5 分钟。如果生命周期配置脚本的运行时间超过 5 分钟,Studio 就会抛出错误。

要解决此错误,请确保生命周期配置脚本在 5 分钟内完成。

为了缩短脚本的运行时间,请尝试以下方法:

  • 减少所需的步骤。例如,限制在哪些 conda 环境中安装大型软件包。

  • 在并行进程中运行任务。

  • 在脚本中使用 nohup 命令可确保忽略挂起信号,并且不会停止脚本的执行。