Согласно документации AWS StepFunction, можно настроить повторные попытки для каждой ошибки, но мне интересно, можно ли использовать детали из сообщения об ошибке для определения стратегии повторных попыток?
В моем случае я запускаю Glue ETLзадание, которое может не выполниться с пользовательским исключением NoDataLoadedException
, поэтому я хотел бы распознать его и не повторятьВот мое определение задачи (первый Retry
блок никогда не происходит):
"ExecuteEtl": {
"Type": "Task",
"Resource": "arn:aws:states:::glue:startJobRun.sync",
"Parameters": {
"JobName.$": "$.jobName",
"Arguments.$": "$.jobArguments"
},
"Retry" : [{
"ErrorEquals": [ "NoDataLoadedException" ],
"MaxAttempts": 0
},{
"ErrorEquals": [ "States.Timeout", "States.TaskFailed", "States.Runtime" ],
"MaxAttempts": 4,
"IntervalSeconds": 60,
"BackoffRate": 2
}],
"Next": "ExtractGlueJobExecutionId"
}
Вот вывод ошибки:
{
"resourceType": "glue",
"resource": "startJobRun.sync",
"error": "{\"AllocatedCapacity\":10,\"Arguments\":{},\"Attempt\":0,\"CompletedOn\":1549662956476,\"ErrorMessage\":\" NoDataLoadedException No data loaded from...",
"cause": "States.TaskFailed"
}
Можно ли использовать error.ErrorMessage
для определения стратегии повторениядля задания?