Отслеживание сообщения в нескольких AWS SQS очередях - PullRequest
0 голосов
/ 07 марта 2020

У меня есть около 3 AWS лямбда-функций, имеющих следующую форму:

  • Лямбда-функция 1: читает из очереди SQS и помещает сообщение в очередь SQS (форматы входящих и исходящих сообщений
  • Лямбда-функция 2: считывает сообщение из лямбда-функции 1 и помещает сообщение в очередь SQS (форматы входящих и исходящих сообщений различаются)
  • Лямбда-функция 3: считывает сообщение от лямбда-функции 3 и хранилище обновлений.

В нем задействованы 3 очереди, и формат сообщения (структура) в каждой очереди различен, однако у них есть один uniqueId, который одинаков и могут быть использованы друг с другом. Так много вопросов, есть ли какой-либо способ отслеживания сообщений в SQS или каком-либо другом инструменте, на что я специально обращаю внимание, например:

  • Время, когда сообщение было введено в очередь
  • Время, когда сообщение было обработано лямбда-функцией для обработки

Моя проблема в том, что 3 лямбда-функции по отдельности выполняются в течение пары миллисекунд, но время, затрачиваемое на сквозное выполнение Это слишком долго, я подозреваю, что сообщения слишком долго в пути.

Я открыт для любых других идей по оптимизации.

1 Ответ

2 голосов
/ 07 марта 2020

AWS Шаговые функции специально предназначены для передачи информации между лямбда-функциями и организации всего процесса.

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

Поскольку ваше единственное реальное желание - выяснить, почему это занимает "слишком много времени", тогда AWS Рентген должен быть хорошим способом собрать эту информацию . Он может отслеживать одну транзакцию сквозной через каждый процесс. Я думаю, что это просто вопрос включения библиотеки и активации X-Ray.

См .: AWS Lambda и AWS X-Ray - AWS X-Ray

Или просто начните ручные исследования в файлах журналов . Журнал показывает, сколько времени занимает выполнение каждой функции, поэтому вы сможете определить, составляет ли время в определенной лямбда-функции или время, потраченное между функциями, ожидая их срабатывания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...