Create a Pipe with source=SQS queue ARN; configure source parameters including BatchSize and a filter criteria JSON pattern to drop unwanted messages before enrichment
Attach a Lambda function as the enrichment step; the Pipe invokes the Lambda synchronously with the filtered batch and uses the Lambda's return value as the event payload sent to the target
Configure the target as an EventBridge event bus with InputTransformer to map the enriched payload to the event detail structure
Assign an IAM role to the Pipe with permissions to read from SQS (sqs:ReceiveMessage, sqs:DeleteMessage, sqs:GetQueueAttributes), invoke the enrichment Lambda, and put events to the bus
Start the Pipe and verify by sending test messages to the SQS queue; check the Pipe's CloudWatch Logs log group for filter and enrichment execution details
Use PipeState to pause the Pipe during maintenance without deleting configuration
Known gotchas
The enrichment Lambda must return a non-empty response to proceed to the target; returning an empty string, empty object, or empty array causes the Pipe to drop the event silently — use this intentionally as a filter but not accidentally
Failed filter criteria are silent drops — messages that do not match the filter are deleted from SQS without going to a DLQ; configure a DLQ on the SQS source queue separately to catch processing failures after the filter
EventBridge Pipes charges per event processed through the Pipe, not per invocation; a batch of 10 SQS messages counts as 10 events for billing
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp