Запуск конвейера Azure с пустыми полезными данными из Azure EventGrid
у меня естьAPI Management service
что я хотел бы вызвать конвейер Azure при возникновении изменений в APIM.
Событие в APIM позволяет создать веб-перехватчик черезEventGrid
. однако я рассматриваю, как вызвать конечную точку с пустой полезной нагрузкой JSON.
Согласно Runs — Run Pipeline мы можем запустить конвейер через RestApi. Я настраиваю эту конечную точку с правильными заголовками.
ОтPostman
Я могу вызвать конечную точку Run Pipeline, используя приведенное ниже:
curl --location --request POST 'https://dev.azure.com/organization/project/_apis/pipelines/pipelineId/runs' \
--header 'Accept: api-version=7.0' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic PAT'
--data '{}'
В APIM => Создать подписку на событие => Свойства доставки Пользовательские свойства доставки EventGrid я не смог найти способ добавить пустую полезную нагрузку. Эта пустая полезная нагрузка необходима при отправке запроса от почтальона.
Итак, как добавить пустую полезную нагрузку в запрос, как указано выше вEventGrid Webhook?
1 ответ
При использовании доставки событий WebHook Event Grid выполняет согласование, как описано в документации, для его работы и всегда включает полезную нагрузку.
Вам следует проксировать запрос, используя другой сервис. Вот несколько вариантов
1. Использовать APIM. Это означает использование одного и того же экземпляра APIM для получения события сетки событий и его пересылки в API DevOps.
Вот пример пользовательской политики для начала.
2. Используйте функции Azure. Привязка для функций Azure сделает это за вас, и, поскольку это основано на коде, вы можете выполнить любое другое действие или обработку, необходимую перед вызовом DevOps API.
Ознакомьтесь с официальной документацией, чтобы узнать, как функции Azure можно использовать в качестве обработчика событий .