Я настроил конвейер в фабрике данных Azure и пытаюсь представить его как шаблон ARM, который можно легко развернуть во всей фабрике. Одно особенно длинное действие «Выражение в хранимой процедуре» прекрасно работает в ADF, но когда я копирую код в свой шаблон ARM и внедряю его через DevOps Azure, выражение заменяется просто [object Object]
.
ХранимоеРассматриваемая процедура выполняется на SQL-сервере Azure (развернутом одновременно с моим шаблоном ARM) и записывает время в будущем, рассчитанное на основе параметров для конвейера. Поскольку параметры позволяют указывать секунды / минуты / часы / дни, выражение вычисления довольно длинное.
Операция хранимой процедуры в моем АПД имеет следующий элемент typeProperties
:
"typeProperties": {
"storedProcedureName": "ctrl.uspInsertTableLog",
"storedProcedureParameters": {
"nextUpdate": {
"type": "DateTime",
"value": {
"type": "Expression",
"value": {
"type": "Expression",
"value": "@string(if(equals(toLower(pipeline().parameters.nextUpdateUnit),'minute'),addminutes(pipeline().TriggerTime,int(pipeline().parameters.nextUpdateLength)),if(equals(toLower(pipeline().parameters.nextUpdateUnit),'hour'),addhours(pipeline().TriggerTime,int(pipeline().parameters.nextUpdateLength)),if(equals(toLower(pipeline().parameters.nextUpdateUnit),'day'),adddays(pipeline().TriggerTime,int(pipeline().parameters.nextUpdateLength)),pipeline().TriggerTime))))"
}
}
},
...
}
}
Я скопировал этот код в свой шаблон ARM и развернул его через конвейеры Azure DevOps. Когда я проверяю свою вновь развернутую операцию хранимой процедуры, строка с длинным выражением была заменена на:
"value": "[object Object]",
Остальная часть шаблона развертывается без заминки.
Я ожидаюкод, который я развертываю, остается в том виде, в котором он был напечатан, и не может быть изменен на этот пустой объект (что приводит к тому, что хранимый процесс вызывает ошибку).
Не хватает ли ограничения на то, что нам разрешено делать с функциямив АПД? Это ошибка в развертывании, или я неправильно понимаю, как мы должны действовать?