2016-09-30 4 views
3

AWS Lambda를 사용하여 Python2.7로 작성된 서비스를 배포했으며 일부 페이지에서 데이터를 추출하고 결과를 웹 응용 프로그램에 전송하는 방법에 대해 설명합니다. 이 서비스는 AWS CloudWatch 이벤트 (고정 속도 5 분)에 의해 트리거됩니다.AWS Lambda 함수가 CloudWatch 이벤트에 의해 두 번 트리거되었습니다.

그러나 때때로 서비스가 한 번에 두 번 트리거되었음을 알았습니다. 나는 두 개의 로그 스트림이 동일한 데이터와 결과를 인쇄했지만 다른 RequestID를 가지고 있기 때문에 이것을 얻었다. 그리고 데이터베이스에 중복 데이터가있어 두 데이터 모두 성공적으로 처리되었습니다. 서비스가 아무 이유없이 거의 동시에 두 번 실행 된 것처럼 보였습니다.

누구나 똑같은 경험이 있습니까? 어떻게 수정합니까? 또는 한 번에 하나의 기능 만 실행하도록 제한하는 방법이 있습니다.

답변

2

예. 일부 AWS 서비스의 경우 SLA가 인 경우 이상이어야합니다. 나는 CloudWatchCloudTrail으로 이것을 경험했다. 당신이 한 번만 그것을 제한 할 수 있는지 모르겠습니다. 데이터가 이미 처리되었는지 확인해야합니다. 데이터를 처리하기 전에 내 파이썬 코드에서 boto3을 호출하여이를 극복했습니다. 상황을 알지 못하면 해결 방법을 제안하기가 어렵습니다.