Отправка обработанных данных из правила CEL в Cumulocity во внешнюю службу REST.

Мой вариант использования таков: в Cumulocity многие события от устройств собираются и обрабатываются некоторыми сценариями «Cumulocity Event Language». Теперь мне нужно, чтобы эти данные обрабатывались в некоторых бэкофисных и аналитических системах. Моя идея состоит в том, чтобы отправить данные с помощью CEL-скрипта Time-Window-Boxed в эти «внешние» системы, написав собственную (например,) функцию JavaScript (см. «https://www.cumulocity.com/guides/event-language/advanced/') и отправляйте собранные данные с помощью вызова REST к этому системы (которые должны иметь соответствующую службу).

Вопрос: 1) может ли эта идея сработать? 2) могу ли я загрузить вспомогательные библиотеки (в моем случае на JS) в модуль CEL? 3) могу ли я повторить попытку нажатия, если она не удалась?

Спасибо МБ


person mbader    schedule 27.06.2016    source источник


Ответы (1)


Вы не можете создавать запросы непосредственно из CEL, но есть и другие способы добиться этого:

  1. Вы можете использовать Zapier для пересылки данных в другую службу REST (проверьте приложение «Webhooks by Zapier» в Zapier). Вот небольшое введение о том, как подключить Cumulocity к Zapier http://cumulocity.com/guides/users-guide/saas-integration/ (см. пример «Хранить данные CEL в Google Spreadsheet». Если вы замените Google Spreadhsheets приложением Webhooks, это должно быть то, что вы ищете)

  2. Вы можете реализовать свой собственный коннектор. Вывод каждого оператора CEL доступен в API уведомлений в реальном времени (http://cumulocity.com/guides/reference/real-time-statements/#notifications). Вы можете подключиться туда и перенаправить полученные данные в свой REST-сервис. Примерно так же работает коннектор Zapier. Здесь вы также можете добавить логику повторения для неудачных попыток.

Я бы рекомендовал начать с Zapier. Вы можете очень быстро создать прототип своей идеи, и для тестирования бесплатной версии Zapier должно хватить. Если это не подходит всем, вы все равно можете переключиться, чтобы сделать это с собственной реализацией.

person TyrManuZ    schedule 27.06.2016
comment
Спасибо. Насколько я понимаю, механизм основан на «Байе»; пример использования этого протокола: «пожалуйста, немедленно сообщите мне, если произойдет какое-то событие»; для этого он выполняет http-long-polling. Но мой вариант использования таков: «отправьте мне все измерения — может быть, 1k/s — в мою службу REST. Итак, мой вопрос: * этот «протокол Baye: ux» масштабируется по горизонтали? Я ожидаю много серверов C8y и много серверов бэк-офиса... * Могу ли я создать несколько клиентов Bayeux одновременно? * если да: каждое событие передается только один раз? * Что делать, если перевод сломался посередине? - person mbader; 18.07.2016
comment
Да, в CometD есть кластерное решение под названием Oort. Конечно, вы можете подключить столько клиентов, сколько хотите, но если вы подпишетесь на одни и те же каналы, все клиенты получат все, поэтому вам придется разделить подписки. Для обеспечения передачи данных CometD имеет расширение подтверждения сообщения - person TyrManuZ; 20.07.2016