您如何在Windows上编写SageMaker的生命周期配置?

问题描述

我正在尝试为SageMaker素描本(它最终只是一个.sh文件)设置启动生命周期配置,无论执行什么操作,笔记本似乎都在启动时超时。我尽可能地简化了所有内容,以至于注释掉了#!/bin/bash之外的所有内容,但我仍然超时。检查cloudwatch,这会显示在日志中:

/bin/bash: /tmp/OnStart_2020-08-11-07-01jgfhhkwa: /bin/bash^M: bad interpreter: No such file or directory

通过测试,我还发现,如果我在#!/bin/bash之前添加回车符,则会在日志中得到:

/tmp/OnStart_2020-08-11-06-444y3fobzp: line 1: $'\r': command not found

基于this on the \r errorthis on the ^M error,这似乎是Windows和Unix格式文本之间的不兼容。但是,我正在通过Windows计算机上的aws编辑生命周期配置:

screenshot of editing the lifecycle config

有什么方法可以通过AWS在Windows机器上编辑此字段,但另一端可以用unix正确编写?

解决方法

实际上,这与基于this的不同操作系统中的特殊字符表示有关,您可以使用notepad ++轻松地将dos表示形式转换为unix表示形式,然后只需“粘贴为纯文本”即可,效果很好

  • 复制到记事本++视图
  • 显示符号
  • 显示所有符号
  • 将没有任何CRLF的“ / r”替换为LF,在UNIX中有效
  • 复制并粘贴为纯文本

这样做可以解决问题