Запуск конвейера Jenkins при добавлении нового файла в хранилище больших двоичных объектов

У меня есть корзина хранилища BLOB-объектов Azure с некоторыми видеофайлами. Мне нужно запускать конвейер Jenkins всякий раз, когда файл добавляется в корзину. Я думал, что мог бы иметь микросервис в функциях Azure для мониторинга корзины и запуска Jenkins, но было бы здорово, если бы я мог делать это напрямую, без дополнительных микросервисов. Есть ли способ заставить Дженкинса запускать конвейер на основе моего ведра? Плагин или скрипт или что-то в этом роде? PS: я нашел этот вопрос, но я ищу для чего-то другого.


person Judy T Raj    schedule 14.11.2019    source источник


Ответы (1)


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

Но если вам нужны параметры сборки, вам придется преобразовать полезную нагрузку, поступающую из события blob, перед вызовом Jenkins API.

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

  1. Если у вас есть API Jenkins за шлюзом API, например Azure APIM, вы можете преобразуйте тело перед отправкой запроса Дженкинсу.

  2. Используйте простое приложение логики для запуска событие, а затем вызовите Jenkins API, передав параметры, извлеченные из события, по мере необходимости.

  3. Подобно тому, что упоминалось в другом вопросе, который вы связали, Функции Azure.

Если у вас нет APIM (или чего-то подобного), Logic Apps - отличное решение, учитывая вариант использования, почти не требующий написания кода.

person PramodValavala-MSFT    schedule 25.11.2019