2015-08-22 5 views
0

У меня странная проблема с Amazon SNS. Когда я публикую сообщение с использованием AWS UI (кнопка публикации на тему), сообщения доставляются немедленно.AWS Lambda Publishing для SNS

Но когда я публикую сообщение в том же разделе из лямбда-функции, сообщения либо не будут доставлены, либо будут доставлены после того, как будущие сообщения будут опубликованы после появления новых сообщений лямбда.

Что может быть другим?

Update

Я попытался публикация с AWS CLI прохладной, и отлично работает также.

Я использую библиотеку Java SNS для своей лямбды. Я использую учетные данные по умолчанию для лямбда. Я строю PublishRequest только с темой ARN, сообщением и темой. Вызов публикации возвращается успешно, и я вижу его журналы в журналах cloudwatch.

Что может привести к тому, что сообщение SNS задержит доставку до тех пор, пока не будет отправлено больше сообщений SNS? Я тестирую как подписку на электронную почту, так и подписку SQS - оба ведут себя одинаково.

+1

Возможно, это не так, но убедитесь, что ваш вызов SNS завершен до выхода функции лямбда. Асинхронный материал может привести к завершению работы функции до завершения всех вызовов. –

+0

Да, я обязательно буду ждать все мои асинхронные вещи, прежде чем вернуться. Странно, что сообщения появятся позже, только после того, как я пришлю еще. Почти как они где-то буферизуются. Это было бы ужасно, если бы это было так. Но опять же, это происходит только тогда, когда я отправляю в лямбду. – ademartini

ответ

2

Я понял проблему. Хотя я думал, что жду отправки запроса SNS для публикации, на самом деле я этого не делал. Итак, в нижней строке, убедитесь, что ваш асинхронный материал заканчивается в этих лямбдах, или вы можете видеть странное поведение. Спасибо Джону Ротенштейну выше, указав мне в правильном направлении.

+1

Хорошее объяснение среды AWS Lambda: https://aws.amazon.com/blogs/compute/container-reuse-in-lambda/ –

+0

Прохладный, хороший читать, спасибо! – ademartini

Смежные вопросы