Chris Collins

Tools · cloud

EventBridge pattern tester

Test EventBridge event patterns against events and see why each field matches or not — exact values, prefix and suffix (with equals-ignore-case), every anything-but form, numeric ranges, exists, IP CIDR, wildcards, $or and array semantics, following the AWS content-filtering rules — plus input transformers (InputPathsMap and InputTemplate) and a library of sample events.

Added

How to use it

An EventBridge rule either fires or it doesn’t, and the console’s sandbox tells you which but not why. This page evaluates the pattern field by field, says which matcher matched which value (or why none did), checks the pattern the way PutRule would, and shows what an input transformer would send to the target.

How to use it

  1. Pick a sample event — S3 Object Created, an EC2 state change, a CodePipeline execution state change, a scheduled event, an AWS API call via CloudTrail, or a custom application event — or paste your own (Open file… loads one). Each sample comes with a pattern and a transformer that exercise different operators.

  2. Edit the Event pattern. The verdict updates as you type; Why — field by field lists every leaf of the pattern with the event’s value and each matcher’s result: "uploads/…PNG" ends with ".png" (ignoring case), "10.0.4.27" starts with the excluded "10.", 5 > 0 and 5 ⇐ 5. Nested $or alternatives and objects inside arrays are shown as groups.

  3. Pattern problems lists what EventBridge would reject (a value that isn’t an array, an empty array, unknown operators, a bad CIDR, ** in a wildcard, mixed anything-but lists, more than 1,000 $or combinations, numbers beyond ±253) and warnings (a key given twice — only the last counts — and operators that work on event buses but not in Pipes filters).

  4. This pattern against every sample event shows which of the samples it would route — a quick check that a rule isn’t broader than you meant. Click one to load that event and keep your pattern.

  5. Under Input transformer, give InputPathsMap (name → JSON path) and an InputTemplate. The output shows exactly what the target would receive, whether it’s valid JSON, and warnings for paths that aren’t in the event.

The matching rules

These follow the EventBridge User Guide’s pages on event patterns, comparison operators, arrays, and null values (read October 2026), and AWS’s open-source matching engine, Event Ruler, where the guide is silent:

  • Each leaf in a pattern is a list; the field matches if any entry matches. If the event’s value is an array, it matches if any element matches.

  • Objects inside an array are matched one element at a time: two fields of one pattern object must be satisfied by the same element.

  • exists only sees leaf values — a field that holds an object counts as absent. A missing field matches nothing except {"exists": false}, so anything-but needs the field to be present.

  • prefix, suffix, equals-ignore-case and wildcard only match strings; numeric only JSON numbers (not numeric strings), compared as doubles within ±253; null and "" are different values.

  • $or takes an array of at least two objects; anything else is an ordinary field called $or.

Input transformers follow the guide’s input transformation page: strings get quotes added when the placeholder is outside a JSON string and go in raw inside one, objects and arrays go in as JSON (losing their inner quotes inside a string), nothing is escaped, a path that isn’t in the event creates no variable, and the predefined <aws.events.rule-arn>, <aws.events.rule-name>, <aws.events.event.ingestion-time>, <aws.events.event> (without detail) and <aws.events.event.json> are available. The tests reproduce every row of the guide’s template table.

To start a workflow from a rule, try its input on the Step Functions workbench; for costs of buses and fan-out see serverless sizing and the AWS architecture builder. Lambda event-source filters on SQS, Kinesis and DynamoDB streams use the same pattern syntax (with the Pipes subset of operators).

Browser support

Any current browser.

Privacy

Everything runs in this page; patterns and events are saved in this browser and go into a share link only when you make one. Nothing is sent anywhere.

Runs entirely in your browser; nothing you type leaves this page.