2016-09-30 2 views
3

Я развернул службу, написанную на Python2.7, с использованием AWS Lambda, и это касается извлечения данных с некоторых страниц и отправки результатов в веб-приложение. Услуга инициируется событием AWS CloudWatch (фиксированная скорость 5 минут).Функция AWS Lambda дважды запускалась с помощью события CloudWatch

Однако, я обнаружил, что иногда услуга запускалась дважды за раз. Я получил это, потому что два потока журналов печатали одни и те же данные и результат, но с разными RequestID. И в базе данных были дублированные данные, которые показали, что оба успешно работали. Похоже, что услуга запускалась дважды почти одновременно без каких-либо причин.

Кто-нибудь испытывает одно и то же, и как вы его исправить? Или, есть ли способ ограничить только одну функцию, которая может быть выполнена одновременно.

ответ

2

Да. Некоторые услуги AWS имеют SLA , по крайней мере, после доставки. Я испытал это с CloudWatch и CloudTrail. Я не знаю, можете ли вы ограничить его только один раз. Вы должны проверить, были ли данные уже обработаны. Я преодолел это, сделав вызовы boto3 в моем коде на Python перед обработкой данных. Не зная вашей ситуации, сложно предложить решение.