SQS запускает лямбду при индивидуальной задержке доставки сообщения - PullRequest
0 голосов
/ 05 октября 2018

Я создал ресурсы ниже, используя CloudFormation

  • SQS (DelayDelivery: 0)
  • Lambda
  • Роли
  • LambdaFunctionEventSourceMapping (SQS запускает лямбдуфункция)
  • Журналы

Ресурсы созданы успешно.

Когда я отправляю сообщение в SQS с задержкой доставки в течение 30 секунд, SQS мгновенно запускает Lambda.Вместо этого он должен иметь триггер через 30 секунд.К вашему сведению: я отправляю сообщение с помощью консоли AWS.

Согласно приведенной ниже ссылке, он должен был переопределить задержку SQS на задержку отдельного сообщения.https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-timers.html

Есть ли другой способ добиться этого.

1 Ответ

0 голосов
/ 19 февраля 2019

Возможно, это ошибка в консоли AWS, потому что я сталкиваюсь с подобной проблемой (лямбда вызывается мгновенно), когда я отправляю сообщение в SQS через консоль AWS.Однако я могу добиться желаемого поведения, если отправлю сообщение в SQS через CLI:

aws sqs send-message --queue-url https://sqs.ap-southeast-1.amazonaws.com/{account}/{sqs} --message-body "msg 1 delay 60 secs" --delay-seconds 60

aws sqs send-message --queue-url https://sqs.ap-southeast-1.amazonaws.com/{account}/{sqs} --message-body "msg 2 delay 30 secs" --delay-seconds 30

Тогда вот что я вижу в лямбда-журнале Cloudwatch:

2019-02-19T02:26:36.189Z    510df77b-d1e5-5297-b0a0-a39eba727c61    msg 2 delay 30 secs
2019-02-19T02:26:36.189Z    510df77b-d1e5-5297-b0a0-a39eba727c61    sent 2019-02-19T02:26:06.124Z
2019-02-19T02:26:36.189Z    510df77b-d1e5-5297-b0a0-a39eba727c61    1st receive 2019-02-19T02:26:36.124Z

2019-02-19T02:26:57.729Z    fedcb590-2e14-596a-bc4b-e17545a46d91    msg 1 delay 60 secs
2019-02-19T02:26:57.729Z    fedcb590-2e14-596a-bc4b-e17545a46d91    sent 2019-02-19T02:25:57.667Z
2019-02-19T02:26:57.729Z    fedcb590-2e14-596a-bc4b-e17545a46d91    1st receive 2019-02-19T02:26:57.667Z

Как выИз журнала видно, что доставка сообщений задерживается, и лямбда-сообщения вызываются только после получения сообщения.

...