Как вызвать лямбда-функцию AWS из внешней очереди SQS - PullRequest
1 голос
/ 15 января 2020

Я пытаюсь настроить лямбда-функцию для использования из очереди SQS, для которой у меня есть разрешения на чтение и удаление, которой я не владею / не имею конфигурации. Есть ли способ использовать функцию триггера SQS для лямбды для очереди, которая не существует в моей учетной записи AWS?

Если нет, то какие есть альтернативы, которые не включают проверку очереди по запланированному событию? ,

1 Ответ

0 голосов
/ 15 января 2020

Если владелец очереди SQS дает вам необходимые разрешения (см. документацию по установке , чтобы узнать, что это за разрешения), вы можете сделать это. Но, вы не должны .

Подписка на чужую очередь SQS - это анти-шаблон. Это связано с тем, что очередь представляет собой невыполненную работу, а неявная функциональность заключается в том, что все, что входит, в конечном итоге выходит. Все, что делает очередь, это отделяет входной поток от выходного потока (данные могут поступать как быстрее, так и медленнее, чем они выходят).

Однако эта идея потока означает, что когда что-то выходит, это больше не в очереди . (Предупреждение: здесь есть обходные пути, но они обычно не предпочитаются). Однако потребитель всегда стремится обработать все в очереди . Это может быть сделано несколькими потоками под управлением одного потребителя, но конечный результат все равно заключается в том, что все обрабатывается. Если есть несколько потребителей, то они по необходимости конкурируют друг с другом, и ни одному из них не удается обработать все в очереди.

Как мы можем гарантировать, что не будет нескольких потребителей? Просто: потребитель владеет очередью. Ни один другой потребитель не получает разрешения на чтение. Вполне возможно, что кто-то, кроме потребителя, контролирует заполнение очереди (получая разрешения на запись) - и AWS имеет идеальное решение для этого:

Темы SNS: SNS topi c является источником данных . По сути, это издатель . Когда кто-то еще хочет, чтобы вы имели доступ к его данным, он позволяет вам стать подписчиком на их топи c. Когда в SNS topi c публикуется новое сообщение, каждый, кто подписан на topi c, получает копию. Что происходит с этой копией, решает подписчик: на нее можно воздействовать напрямую, сохранять для последующего действия или косвенно, например, помещая в очередь. Это модель Pub-Sub . Он отделяет сведения об одном объекте (издателе), который создает сообщения и рассылает их многим другим, от индивидуального решения каждого получателя (подписчика) о том, как использовать эти сообщения.


TL; DR: get кто бы ни владел в настоящее время очередью, чтобы опубликовать sh для SNS topi c, а затем настроить очередь (или что вы предпочитаете), подписанную на эту топи c.

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