Как обойти ограничения параметров шаблона ARM фабрики данных Azure?

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

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

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

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

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

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

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


person Paul Cavacas    schedule 18.02.2019    source источник


Ответы (2)


2 способа:

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

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

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

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

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

person 4c74356b41    schedule 19.02.2019
comment
Вы пропустили главный момент, хотя шаблон руки и файл параметров генерируются фабрикой данных, и я не хочу, чтобы вам приходилось вручную редактировать оба этих файла каждый раз, когда вносятся изменения и файл создается повторно. - person Paul Cavacas; 19.02.2019
comment
У нас такая же проблема. У нас есть более 30 триггеров событий blob (плюс некоторые другие параметры), которые имеют собственный набор параметров, которые вы не можете настроить / сжать предложенным способом. - person MarkD; 15.11.2019
comment
в обоих случаях вы ничего не можете сделать. поднять пользовательский голос. - person 4c74356b41; 26.02.2021

Используйте шаблон настраиваемых параметров, как описано в Документация MS: используйте специальные параметры с шаблоном диспетчера ресурсов.

person Triamus    schedule 11.12.2020
comment
Привет, пожалуйста, помогите мне с шаблоном ARM для настройки DevOps - person twinkle hema; 03.05.2021