Публикации AWS SNS из браузера

У меня есть лямбда-функция, которую я хочу вызвать со стороны клиента. Я собирался использовать шлюз API, но мне пришло в голову, что очередность, которую предоставляет SNS, может быть удобной.

После исследования оказалось, что единственный способ публикации в SNS через Javsacript SDK — это авторизация через google/facebook или AWS Cognito. Я бы хотел, чтобы пользователи (точнее, события) могли нажимать без аутентификации, так что это не вариант.

Последний вариант — это жесткое кодирование ключа AWS. Это довольно явно не рекомендуется в документации, но после изучения, похоже, что я могу создать условия безопасности для определенного ключа и ограничить его публикацией только в одной теме.

Другими словами, он якобы имитирует REST API, не так ли?

Единственный недостаток, о котором я могу думать, это злонамеренная рассылка спама в SNS. Я знаю, что AWS API позволяет регулировать скорость, но не смог найти ничего подобного в SNS.

Итак, 2 сопутствующих вопроса:

  1. Есть ли способ предотвратить вредоносный спам в теме SNS?

  2. Существуют ли другие недостатки использования SNS вместо API AWS для вызова лямбда-выражений?


person Brandon    schedule 20.03.2016    source источник


Ответы (1)


Какую очередь вы хотите получить от темы SNS? Я думаю, вы можете путать SNS с SQS.

Я не вижу преимуществ использования SNS->Lambda в этом случае по сравнению с API->Lambda. Однако я вижу несколько недостатков использования SNS в этом случае, поскольку это добавляет ненужные сложности, а также создает ненужные риски безопасности.

Вы буквально не получаете никаких преимуществ от использования SNS здесь, в то время как вы получаете несколько преимуществ от использования API Gateway, таких как ограничение скорости и поддержка ключей API. Не говоря уже о том, что к конечным точкам API Gateway намного проще получить доступ из браузера, чем к разделам SNS. Это предполагаемое использование API Gateway, зачем пытаться взломать какой-то метод, используя SNS и жестко закодированные ключи AWS?

person Mark B    schedule 20.03.2016
comment
спасибо Марк! Я думал о SNS, так как SNS повторит попытку доставки, если вызов лямбда будет отменен из-за ограничений параллелизма или других причин сбоя выполнения. я ошибся, что это было уникально для SNS, хотя, как кажется, сама лямбда будет повторять функции и обеспечивает некоторый уровень гарантии выполнения. в конечном счете, я думаю, что это был просто случай преждевременной оптимизации с моей стороны. - person Brandon; 20.03.2016