Как обойти ограничения параметров шаблона ARM Azure Data Factory? - PullRequest
0 голосов
/ 19 февраля 2019

Я создал фабрику данных в Azure с 10-15 конвейерами в ней, и все они работают нормально, и я могу без проблем отлаживать и запускать их на фабрике тестовых данных, которую я настроил.Я также настроил интеграцию Azure DevOps с фабрикой данных с помощью конвейера CI / CD.

Первоначально этот конвейер также работал нормально, и я смог использовать сгенерированный шаблон ARM для воссоздания конвейеров / триггеров / и т. Д. В производственном экземпляре фабрики данных.

Теперь я добавил несколькобольше вещей для фабрики данных, и когда он генерирует шаблон ARM, теперь он создает шаблон с 293 параметрами, который при запуске через конвейер CI / CD дает сбой, потому что только 256 параметров допускаются с шаблоном ARM.

Многие элементы, которые он помещает в файл параметров, не нуждаются в параметризации, например, имена файлов и пути к файлам.Все, что я действительно хочу параметризовать, это различная информация о соединении.

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

Так что мой вопрос, есть ли способ справиться с этим?Я могу думать о том, чтобы создать несколько фабрик данных и иметь только несколько конвейеров в каждом.Мне не очень нравится эта идея, потому что со временем она станет очень большой и громоздкой.Я мог бы вручную удалить шаблоны из файла параметров, а также из самого шаблона, но мне действительно не нравится это решение, так как оно ручное и действительно подвержено ошибкам.

То, чем я в идеале хотел бы бытья могу определить, какие элементы я хочу параметризовать в конвейере, как я упомянул 90% того, что он параметризовал, мне не нужно параметризоваться, но я не могу найти способ сделать это (краткосделать это вручную).

1 Ответ

0 голосов
/ 19 февраля 2019

2 способа:

  1. очевидно - удалить нежелательные параметры
  2. менее очевидно - использовать объекты вместо строк.

позвольте мне объяснить, представьте, что выимеют 5 входных параметров, называемых param1,2,3,4,5.вы можете «сжать» их в один параметр, подобный этому:

"param": {
    "type": object,
    "defaultValue": {
        "param1": "something",
        xxx
        "param5": "otherthing"
    }
}

, если у вас есть 290 параметров, я бы, вероятно, пошел по маршруту объекта, потому что таким образом вы можете логически сгруппировать их.

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

...