如何解决步骤功能:批处理总是在异常抛出时返回 State.TaskFailed 错误
我有以下批处理配置:
python 脚本(图像)和作业定义通过 gitlab 部署到 AWS ECR 并用作 step 函数中的任务。整个脚本被 try except 包含自定义错误类的块包围。
错误类别的例子
class CustomException(Exception):
def __init__(self,message):
self.message = message
主函数示例
try:
...
except Exception as ex
raise CustomException(f"An exception occurred. Exception {str(ex)}")
此任务的步骤函数定义为:
"Batch": {
"Type": "Task","Resource": "arn:aws:states:::batch:submitJob.sync","Parameters": {
"JobDeFinition": "...","JobName": ".....","JobQueue": ".....","Parameters": {
"parameters.$": "States.JsonToString($)"
},"ContainerOverrides": {
"Command": [
"Ref::parameters"
]
}
},"Retry": [
{
"ErrorEquals": [
"CustomException"
],"IntervalSeconds": 60,"MaxAttempts": 3
}
],"Catch": [
{
"ErrorEquals": [
"CustomException"
],"ResultPath": "$.errorMessage","Next": "Failed or Success?"
},{
"ErrorEquals": [
"States.ALL"
],"Next": "Failed or Success?"
}
],"ResultPath": null,"Next": "...."
}
错误处理的主要原因当然是发送到自定义位置的适当消息,以及自定义异常的重试策略。
"errorMessage": {
"Error": "States.TaskFailed","Cause": "{\"Attempts\":[{\"Container\":{\"ContainerInstanceArn\":\".....\",\"ExitCode\":1,\"LogStreamName ........}
为什么使用以下错误覆盖异常。这种行为是预期的还是有办法处理的?
如何克服这个 States.TaskFailed
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。