ITADN

Disabled Lambda Event Source Mapping (SQS) still triggers Lambda on every send_message

#9948Closedmaruta9 创建于 2026-04-01
buggood first issue
M
maruta9commented
## Description In `moto/sqs/models.py`, `Queue.add_message()` loops over `lambda_event_source_mappings` and invokes Lambda without checking `esm.enabled`. Even when an ESM is created with `enabled=False` (or disabled via `update_event_source_mapping`), Lambda is still invoked on every SQS message. ## Moto version 5.1.22 ## Steps to reproduce 1. Create a Lambda function and an SQS queue 2. Create an Event Source Mapping with `enabled=False` 3. Send a message to the SQS queue ## Expected behavior Lambda is NOT invoked (ESM is disabled). ## Actual behavior Lambda is invoked despite the ESM being disabled. ## Root cause In `moto/sqs/models.py`, `Queue.add_message()`: ```python for arn, esm in self.lambda_event_source_mappings.items(): # esm.enabled is never checked backend = sqs_backends[self.account_id][self.region] messages = backend.receive_message(self.name, esm.batch_size, ...) ``` ## Proposed fix ```python for arn, esm in self.lambda_event_source_mappings.items(): if not esm.enabled: continue ... ```
关闭于 2026-04-02 0 条评论