#error-handling #azure-data-factory
#обработка ошибок #azure-data-factory
Вопрос:
Во время выполнения я получил приведенную ниже ошибку.
Error
{
"errorCode": "BadRequest",
"message": "Activity parent-control-sp failed: JSON text is not properly formatted. Unexpected character '"' is found at position 0.",
"failureType": "UserError",
"target": "Execute parent Pipeline"
}
Я хочу, чтобы приведенное ниже сообщение отображалось в таблице ошибок
Сбой родительского элемента управления-sp: текст JSON отформатирован неправильно. В позиции 0 обнаружен неожиданный символ ‘»‘.», «failureType»: «Ошибка пользователя», «target»: «Выполнить родительский конвейер» }
Я использовал @{activity('Activity parent-control-sp').error.message}
. Отображается сообщение ниже
Текст в формате JSON отформатирован неправильно. В позиции 0 обнаружен неожиданный символ ‘»‘.», «failureType»: «Ошибка пользователя», «target»: «Выполнить родительский конвейер» }
Как получить верхнее сообщение?
Ответ №1:
Я полагаю, что вы пытаетесь использовать действие Execute Pipeline и на данный момент намереваетесь перехватить любую ошибку из дочернего действия. Я думаю, что приведенное ниже выражение должно вам помочь
@concat(действие (‘Pipeline1’).ошибка.сообщение, ‘Тип сбоя:’, действие (‘Pipeline1’).ошибка.Тип сбоя)
Ответ №2:
Ваше сообщение об ошибке не является JSON-сообщением, поэтому вы не можете использовать выражение ( @{activity('Activity parent-control-sp').error.message}
), чтобы получить то, что вы хотите
Error <<== Remove this firstly!!!
{
"errorCode": "BadRequest",
"message": "Activity parent-control-sp failed: JSON text is not properly formatted. Unexpected character '"' is found at position 0.",
"failureType": "UserError",
"target": "Execute parent Pipeline"
}
Этот код получит подстроку сообщения об ошибке, а затем вы можете использовать выражение.
# the substring
@json(substring(
activity('xxx').error.message,
indexof(activity('xxx').error.message,'{'),
add(sub(lastindexof(activity('xxx').error.message,'}'),indexof(activity('xxx').error.message,'{')),1)
))
# get what you want
.message