我正在通过 AWS Systems Manger 在自动化文档中运行 Python 脚本 - 也称为运行手册。该脚本通过操作aws:executeScript调用,所选运行时为 python3.7。
所有可用示例仅显示如何从脚本返回数据。我怎么能表明脚本已经失败了?这似乎是无证的。
我尝试过sys.exit(1)
,也尝试过raise Exception('oh noes')
。两者都使执行程序崩溃。不幸的是,这完全隐藏了脚本的所有标准输出/标准错误,并给我留下了以下信息:
当轮询操作状态为完成时,步骤失败。Traceback(最近一次调用最后一次):文件“/tmp/some-path/customer_script.py”,第 23 行,在 main sys.exit(1) SystemExit - 1。有关更多诊断详细信息,请参阅自动化服务故障排除指南。
处理程序方法需要两个参数 (events
和context
)。同样,这些对象的内容可能是什么似乎完全没有记录。events
似乎是一个带有传递给脚本的参数的字典。context
是某个对象,但根据dir(context)
该对象是否没有有用的方法可以让我返回失败状态:
['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']