Вы можете отправлять сигналы и подписываться на сигналы непосредственно в extremum.studio. Эта возможность в сочетании с telepresence позволяет отлаживать serverless-функции в среде, приближенной к реальной среде исполнения, взаимодействуя с ними в интерактивном режиме. Тестовые сигналы и подписки описываются в YAML-файлах, что позволяет сохранить их в системе управления исходным кодом; IDE предлагает проверку содержимого этих файлов соответствующим схемам данных, подсветку ошибок и автодополнение
Перейдите в раздел Сигналы расширения администратора и создайте точку обмена сигналами с именем test; не уазывайте для нее JSON-схему полезной нагрузки. Создайте в рабочем пространстве файл с именем, оканчивающимя на .signal.yaml, например, test.signal.yaml. Добавьте в него следующие строки:
kind: regular
exchange: <ID точки обмена test> # test
data:
msg: "test!"
Для того, чтобы не вводить вручную идентификатор точки обмена, просто начните писать “test” после имени свойства “exchange:”, и IDE предложит вам выбрать точку обмена из списка точек содержащих слово test в имени
Для отправки сигнала нажмите на ссылку Отправить сигнал (Send signal) над данными сигнала.
Вы можете включить несколько сигналов в один файл, разделив их строкой “---”, которая является стандартным разделителем документов YAML
kind: regular
exchange: 9e79b1bd-23d7-4b11-82dc-3abd83eced37 # test
data:
msg: "test!"
---
kind: regular
exchange: 35f4a547-c957-45b7-ab84-c35b4301c1f0 # messages
data:
to: all
contents: Hi guys
Вы можете создать один или несколько файлов со списками подписок на сигналы; такие файлы должны иметь имя, заканчивающееся на .sub.yaml. Одновременно может быть активен только один файл подписок. Файл подписок содержит массив идентификаторов подписок.
Попробуйте создать в рабочем пространстве файл с именем test.sub.yaml со следующим содежимым (обратите внимание на дефис в начале строки - он важен):
- <ID точки обмена test> # test
Для того, чтобы не вводить вручную идентификатор точки обмена, просто начните писать “test” после дефиса, и IDE предложит вам выбрать точку обмена из списка точек содержащих слово test в имени
Вы можете включить несколько точек обмена сигналами в один файл подписок. Для подписки нажмите на ссылку Синхронизировать подписки (Synchronize Subscriptions) над первой строкой списка.
Откройте в нижней области экрана вкладку Выходные данные (Output) и выберите в выпадающем списке в правом верхнем углу вкладки категорию Extremum: Сигналы (Extremum: Signals). В основной области окна откройте файл test.signals.yaml и отправьте сигнал. Сигнал будет принят IDE и отображен в в области выходных данных
Если ваша функция оправляет сигналы, подпишитесь на них в IDE. Теперь, если вы развернете и вызовете функцию, вы сможете проверить, что необходимые сигналы отправлены, и что данные в них корректны.
Если ваша функция предназначена для исполнения в качестве обработчика сигналов, разверните ее, запустите под управлением telepresence и назначьте обработчиком для соответствующей точки обмена. Установите точку останова отладчика внутри функции и отправьте сигнал - отладчик должен остановить выполнение функции на точке останова, и вы сможете отладить ее в пошаговом режиме