Уведомления Cloud Manager для каналов совместной работы - Microsoft Teams

Cloud Manager позволяет клиентам управлять развертыванием собственного кода в облачных средах, управляемых AEM, с управляемой автоматизацией конвейера и полной гибкостью в отношении сроков или частоты развертывания.

Конвейер Cloud Manager CI / CD выполняет серию шагов по созданию и развертыванию кода в AMS и AEM в качестве облачных платформ AEM. См. Видео ниже, чтобы понять основы Cloud Manager.

Облачный менеджер предоставляет API-интерфейсы для взаимодействия с настройками CM, а для управления конвейером также генерирует различные события при выполнении конвейера.

Adobe I / O вместе с настраиваемыми веб-перехватчиками можно использовать для получения соответствующих событий от Cloud Manager и выполнения необходимых действий. Кроме того, API-интерфейсы Cloud Manager можно вызывать через Adobe I / O для выполнения различных операций в Cloud Manager.

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

Большинству команд нравится уведомление для каналов совместной работы, например Microsoft Teams, Adobe I / O вместе с CM API, Events и Microsoft Teams Webhook можно использовать для отправки уведомления Cloud Manager на канал Microsoft Teams.

Команды Microsoft или другие инструменты Collobrarion помогают включить веб-перехватчики (POST с данными JSON), веб-перехватчик можно использовать для отправки уведомления на определенный канал.

Уведомлением можно управлять с помощью настраиваемого веб-перехватчика или среды выполнения Adobe I / O, среда выполнения Adobe I / O ожидает, что две службы веб-перехватчика будут получать события (из-за этого веб-перехватчик канала совместной работы нельзя напрямую использовать в уведомлении о вводе-выводе Adobe)

  • Сервис GET для получения запроса на вызов и ответа на запрос
  • Служба POST для получения различных сведений о мероприятии

Проверка подписи выполняется как часть службы POST, чтобы гарантировать, что запрос отправляется только из Adobe I / O, и для защиты от проблем с безопасностью.

Некоторые из дополнительных накладных расходов, которые мы обсуждали, например, служба GET для обработки запроса и проверки подписи в рамках службы POST, можно избежать, используя среду выполнения Adobe I / O для связи с внешними веб-перехватчиками.

Мы можем использовать один из следующих вариантов для отправки уведомлений Cloud Manager в каналы совместной работы, например Microsoft Команды

  • Включите уведомление через пользовательские веб-перехватчики, размещенные на Node JS - см. Cloud Manager API и Учебное пособие по Cloud Manager API. Каким-то образом step7-team.js не удалось создать токен JWT с алгоритмом RS256, для решения проблемы обновленный step7-team.js использует jsonwebtoken вместо модуля jarsigner.
  • Включите уведомление через Adobe I / O Runtime - см. Cloud Manager встречает Jenkins
  • Включите уведомление через настраиваемые веб-перехватчики, размещенные на AEM

Давайте теперь посмотрим, как включить настраиваемые веб-перехватчики в AEM для отправки уведомлений конвейера Cloud Manager на канал Microsoft Teams, те же шаги можно повторно использовать с минимальными изменениями для отправки уведомления другим инструментам, например. Слабость.

Вы можете получить все необходимые дополнительные данные, вызвав API-интерфейсы CM, Event JSON будет иметь URL-адреса для получения сведений о выполнении, подробности выполнения впоследствии будут содержать URL-адреса для получения сведений о программе, сведений о конвейере, сведений о шагах, журналах и т. Д. ( Изучите входной JSON, чтобы получить необходимые сведения).

Включите Webhook для канала Teams:

В качестве первого шага давайте зарегистрируем веб-перехватчики для канала Microsoft Teams.
Определите канал для получения уведомлений конвейера CM, перейдите к каналу Teams, для которого должен быть включен Webhook, и щелкните три точки в правом верхнем углу, затем щелкните Connectors.

Настройте «Входящий веб-перехватчик»

Введите имя и нажмите «Создать», при необходимости загрузите собственное изображение для отображения во входящих сообщениях.

Скопируйте URL-адрес веб-перехватчика и нажмите Готово.

Включите Adobe I / O Configurations:

Включим необходимые конфигурации в Adobe I / O, авторизуемся на console.adobe.io

Создайте новый проект, отредактируйте проект и при необходимости укажите собственное имя.

Добавить Cloud Manager API в проект

Теперь «Создайте пару ключей»

Будет загружен «config.zip» с открытым сертификатом и закрытым ключом (необходимо настроить в службе AEM).

Назначьте роль облачного менеджера, чтобы включить необходимые разрешения для API - «Роль облачного менеджера-разработчика» должно быть достаточно для выполнения операций API.

Добавить Cloud Manager Events в проект

Подпишитесь на необходимые события - я подписываюсь только на «Начато выполнение конвейера», текущая служба AEM может обрабатывать только это начальное событие.

Введите URL-адрес службы AEM (/ bin / cmnotification) - я использую ngrok для предоставления внешнего URL-адреса AEM для демонстрации (используйте URL-адрес внешней службы AEM)

Теперь конфигурация Adobe I / O готова, давайте включим сервис в AEM.

Включите пользовательский веб-перехватчик в AEM:

Я разрешаю сервлету ниже принимать запросы от Adobe I / O

  • GET Service для поддержки службы задач
  • Служба POST для принятия деталей события

Почтовая служба:

  • Проверить подпись входящего запроса
  • Анализировать данные о событии
  • Создать подписанный (закрытый ключ) токен носителя JWT
  • Запрос на доступ к токену с токеном носителя JWT
  • Вызов API для получения сведений о выполнении на основе URL-адреса выполнения в данных события
  • Вызов API для получения сведений о конвейере на основе URL-адреса конвейера в сведениях о выполнении (для получения разных данных можно использовать разные URL-адреса из сведений о выполнении)
  • Уведомить канал команд с помощью веб-перехватчика канала Teams

Настройте следующие значения в сервлете (значения можно изменить через консоль OSGI)

Требуемые значения можно получить из консоли Adobe I / O.

ORGANIZATION_ID
TECHNICAL_ACCOUNT_EMAIL
TECHNICAL_ACCOUNT_ID
API_KEY(CLIENT_ID)
CLIENT_SECRET
TEAMS_WEBHOOK — The Webhook URL enabled in Teams

Пакет AEM можно скачать здесь https://github.com/techforum-repo/bundles/tree/master/CMNotificationHandler

Скопируйте файл private.key (из файла config.zip, загруженного ранее) в пакет в папке / META-INF / resources / keys.

Разверните пакет на сервере AEM (mvn clean install -PautoInstallBundle -Daem.port = 4503)

Теперь сервис веб-перехватчика готов

Запустите конвейер с портала Cloud Manager, который вызовет уведомление на канал Teams.

В настоящее время уведомление будет отправляться только при запуске конвейера, расширении пакета для поддержки различных событий и получения дополнительных сведений с разных конечных точек - URL-адреса могут быть взяты из ответа JSON родительских API-интерфейсов. Это поможет нам получать уведомление в канал команды о событиях конвейера. Этот подход может добавить некоторые дополнительные накладные расходы на сервер AEM, но не требуется для поддержки каких-либо дополнительных платформ. Для подхода Adobe I / O требуется лицензия на платформу Adobe I / O.

Не стесняйтесь оставлять свои комментарии.