Длинное выражение в конвейере ADF заменяется пустым объектом при развертывании через шаблон ARM - PullRequest
0 голосов
/ 09 октября 2019

Я настроил конвейер в фабрике данных 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]",

Остальная часть шаблона развертывается без заминки.

Я ожидаюкод, который я развертываю, остается в том виде, в котором он был напечатан, и не может быть изменен на этот пустой объект (что приводит к тому, что хранимый процесс вызывает ошибку).

Не хватает ли ограничения на то, что нам разрешено делать с функциямив АПД? Это ошибка в развертывании, или я неправильно понимаю, как мы должны действовать?

...