Creating rules that react to events in Amazon EventBridge
To take action on events received by Amazon EventBridge, you can
create rules. When an event matches the event pattern defined in your rule, EventBridge sends the
event to the specified target and triggers the action
defined in the rule.
The following video explores creating different kinds of
rules, and how to test them:
The following steps walk you through how to create a rule that EventBridge uses to match events as they are sent to the specified event bus.
Define the rule
First, enter a name and description for your rule to identify it. You must also define
the event bus where your rule looks for events to match to an event pattern.
To define the rule detail
Open the Amazon EventBridge console at https://console.aws.amazon.com/events/.
-
In the navigation pane, choose Rules.
-
Choose Create rule.
-
Enter a Name and, optionally, a
Description for the rule.
A rule can't have the same name as another rule in the same AWS Region and
on the same event bus.
-
For Event bus, choose the event bus to associate with
this rule. If you want this rule to match events that come from your account,
select AWS default event bus. When an AWS service in
your account emits an event, it always goes to your account’s default event
bus.
-
For Rule type, choose Rule with an event
pattern.
-
Choose Next.
Build the event pattern
Next, build the event pattern. To do this, specify the event source, choose the basis
for the event pattern, and define the attributes and values to match on. You can also
generate the event pattern in JSON and test it against a sample event.
To build the event pattern
-
For Event source, choose AWS events or EventBridge
partner events.
-
(Optional) In the Sample events section, choose a
Sample event type against which you want to test your event pattern.
The following sample event types are available:
-
AWS events – Select from events emitted
from supported AWS services.
-
EventBridge partner events – Select from events
emitted from third-party services that support EventBridge, such as
Salesforce.
-
Enter my own – Enter your own event in
JSON text.
You can also use an AWS or partner event as the starting point for creating your own custom event.
Select AWS events or EventBridge partner events.
Use the Sample events dropdown to select the event you want to use as a starting point for your custom event.
EventBridge displays the sample event.
Select Copy.
Select Enter my own for Event type.
Delete the sample event structure in the JSON editing pane, and paste the AWS or partner event in its place.
Edit the event JSON to create your own sample event.
-
Choose a Creation method. You can create an event pattern
from an EventBridge schema or template, or you can create a custom event
pattern.
- Existing schema
-
To use an existing EventBridge schema to create the event pattern, do
the following:
-
In the Creation method section, for
Method, select Use
schema.
-
In the Event pattern section, for
Schema type, select
Select schema from Schema
registry.
-
For Schema registry, choose the
dropdown box and enter the name of a schema registry, such
as aws.events
. You can also select an option
from the dropdown list that appears.
-
For Schema, choose the dropdown box and
enter the name of the schema to use. For example,
aws.s3@ObjectDeleted
. You can also select an
option from the dropdown list that appears.
-
In the Models section, choose the
Edit button next to any attribute to
open its properties. Set the Relationship
and Value fields as needed, then choose
Set to save the attribute.
For information about an attribute's definition,
choose the Info icon next to the
attribute's name. For a reference on how to set
attribute properties in your event, open the
Note section of the attribute
properties dialog box.
To delete an attribute's properties, choose the
Edit button for that attribute,
then choose Clear.
-
Choose Generate event pattern in JSON
to generate and validate your event pattern as JSON text.
-
(Optional) To test the sample event against your test pattern, choose Test pattern.
EventBridge displays a message box stating whether your sample event matches the event pattern.
You can also choose any of the following options:
-
Copy – Copy the event
pattern to your device's clipboard.
-
Prettify – Makes the
JSON text easier to read by adding line breaks,
tabs, and spaces.
- Custom schema
-
To write a custom schema and convert it to an event pattern, do the
following:
-
In the Creation method section, for
Method, choose Use
schema.
-
In the Event pattern section, for
Schema type, choose Enter
schema.
-
Enter your schema into the text box. You must format the
schema as valid JSON text.
-
In the Models section, choose the
Edit button next to any attribute to
open its properties. Set the Relationship
and Value fields as needed, then choose
Set to save the attribute.
For information about an attribute's definition,
choose the Info icon next to the
attribute's name. For a reference on how to set
attribute properties in your event, open the
Note section of the attribute
properties dialog box.
To delete an attribute's properties, choose the
Edit button for that attribute,
then choose Clear.
-
Choose Generate event pattern in JSON
to generate and validate your event pattern as JSON text.
-
(Optional) To test the sample event against your test pattern, choose Test pattern.
EventBridge displays a message box stating whether your sample event matches the event pattern.
You can also choose any of the following options:
-
Copy – Copy the event
pattern to your device's clipboard.
-
Prettify – Makes the
JSON text easier to read by adding line breaks,
tabs, and spaces.
- Event pattern
-
To write a custom event pattern in JSON format, do the
following:
-
In the Creation method section, for
Method, choose Custom pattern
(JSON editor).
-
For Event pattern, enter your custom
event pattern in JSON-formatted text.
-
(Optional) To test the sample event against your test pattern, choose Test pattern.
EventBridge displays a message box stating whether your sample event matches the event pattern.
You can also choose any of the following options:
-
Copy – Copy the event
pattern to your device's clipboard.
-
Prettify – Makes the
JSON text easier to read by adding line breaks,
tabs, and spaces.
-
Event pattern form –
Opens the event pattern in Pattern Builder. If the
pattern can't be rendered in Pattern Builder as-is,
EventBridge warns you before it opens Pattern
Builder.
-
Choose Next.
Select targets
Choose one or more targets to receive events that match the specified pattern. Targets
can include an EventBridge event bus, EventBridge API destinations, including SaaS partners such as
Salesforce, or another AWS service.
To select targets
-
For Target type, choose one of the following
target types:
- Event bus
-
To select an EventBridge event bus, select EventBridge event bus, then do the following:
- API destination
-
To use an EventBridge API destination, select EventBridge API destination, then do one of the following:
-
To use an existing API destination, select Use an existing API destination. Then select an API destination from
the dropdown list.
-
To create a new API destination, select Create a new
API destination. Then, provide the following
details for the destination:
-
Name – Enter a name for
the destination.
Names must be unique within your
AWS account. Names can have up to 64 characters. Valid
characters are A-Z,
a-z, 0-9, and .
_
- (hyphen).
-
(Optional) Description –
Enter a description for the destination.
Descriptions
can have up to 512 characters.
-
API destination endpoint –
The URL endpoint for the target.
The endpoint URL must
start with https
. You can include
the *
as a path parameter
wildcard. You can set path parameters from the target's
HttpParameters
attribute.
-
HTTP method – Select the
HTTP method used when you invoke the endpoint.
-
(Optional) Invocation rate limit per
second – Enter the maximum number
of invocations accepted for each second for this
destination.
This value must be greater than zero. By
default, this value is set to 300.
-
Connection – Choose to use a new or existing connection:
To use an
existing connection, select Use an existing
connection and select the connection from
the dropdown list.
To create a new connection for this
destination select Create a new
connection, then define the connection's
Name, Destination
type, and Authorization
type. You can also add an optional
Description for this
connection.
For more information, see API destinations as targets in Amazon EventBridge.
- AWS service
-
To use an AWS service, select AWS service,
then do the following:
-
For Select a target, select an
AWS service to use as the target. Provide the information
requested for the service you select.
-
For many target types,
EventBridge needs permissions to send events to the target.
In these cases, EventBridge can create the IAM role needed for your rule to run.
For Execution role, do one of the following:
-
(Optional) For Additional settings, specify any of the optional settings available for your target type:
- Event bus
-
(Optional) For Dead-letter queue, choose whether to use a standard
Amazon SQS queue as a dead-letter queue. EventBridge sends events that match this rule to
the dead-letter queue if they are not successfully delivered to the target. Do
one of the following:
-
Choose None to not use a dead-letter
queue.
-
Choose Select an Amazon SQS queue in the current AWS
account to use as the dead-letter queue and then select
the queue to use from the drop-down list.
-
Choose Select an Amazon SQS queue in an other AWS
account as a dead-letter queue and then enter
the ARN of the queue to use. You must attach a
resource-based policy to the queue that grants EventBridge
permission to send messages to it.
For more information, see Granting permissions to the dead-letter queue.
- API destination
-
-
(Optional) For Configure target input, choose how you want to customize the text
sent to the target for matching events. Choose one of the following:
-
Matched events – EventBridge sends the entire
original source event to the target. This is the default.
-
Part of the matched events – EventBridge only sends
the specified portion of the original source event to the target.
Under Specify the part of the matched event, specify
a JSON path that defines the part of the event you want EventBridge to send to the
target.
-
Constant (JSON text) – EventBridge sends only the
specified JSON text to the target. No part of the original source event is
sent.
Under Specify the constant in JSON, specify the JSON
text that you want EventBridge to send to the target instead of the event.
-
Input transformer – Configure an input
transformer to customize the text you want EventBridge send to the target. For more
information, see Amazon EventBridge input transformation.
-
(Optional) Under Retry policy,
specify how EventBridge should retry sending an event to a target
after an error occurs.
-
Maximum age of event –
Enter the maximum amount of time (in hours, minutes,
and seconds) for EventBridge to retain unprocessed events.
The default is 24 hours.
-
Retry attempts – Enter
the maximum number of times EventBridge should retry
sending an event to the target after an error
occurs. The default is 185 times.
-
(Optional) For Dead-letter queue,
choose whether to use a standard Amazon SQS queue as a
dead-letter queue. EventBridge sends events that match this rule to
the dead-letter queue if they are not successfully delivered
to the target. Do one of the following:
-
Choose None to not use a
dead-letter queue.
-
Choose Select an Amazon SQS queue in the
current AWS account to use as the dead-letter
queue and then select the queue to use
from the drop-down list.
-
Choose Select an Amazon SQS queue in an other
AWS account as a dead-letter queue
and then enter the ARN of the queue to use. You must
attach a resource-based policy to the queue that
grants EventBridge permission to send messages to it.
For more information, see Granting permissions to the dead-letter queue.
- AWS service
-
Note that EventBridge may not display all of the following fields for a given AWS service.
-
(Optional) For Configure target input, choose how you want to customize the text
sent to the target for matching events. Choose one of the following:
-
Matched events – EventBridge sends the entire
original source event to the target. This is the default.
-
Part of the matched events – EventBridge only sends
the specified portion of the original source event to the target.
Under Specify the part of the matched event, specify
a JSON path that defines the part of the event you want EventBridge to send to the
target.
-
Constant (JSON text) – EventBridge sends only the
specified JSON text to the target. No part of the original source event is
sent.
Under Specify the constant in JSON, specify the JSON
text that you want EventBridge to send to the target instead of the event.
-
Input transformer – Configure an input
transformer to customize the text you want EventBridge send to the target. For more
information, see Amazon EventBridge input transformation.
-
(Optional) Under Retry policy,
specify how EventBridge should retry sending an event to a target
after an error occurs.
-
Maximum age of event –
Enter the maximum amount of time (in hours, minutes,
and seconds) for EventBridge to retain unprocessed events.
The default is 24 hours.
-
Retry attempts – Enter
the maximum number of times EventBridge should retry
sending an event to the target after an error
occurs. The default is 185 times.
-
(Optional) For Dead-letter queue,
choose whether to use a standard Amazon SQS queue as a
dead-letter queue. EventBridge sends events that match this rule to
the dead-letter queue if they are not successfully delivered
to the target. Do one of the following:
-
Choose None to not use a
dead-letter queue.
-
Choose Select an Amazon SQS queue in the
current AWS account to use as the dead-letter
queue and then select the queue to use
from the drop-down list.
-
Choose Select an Amazon SQS queue in an other
AWS account as a dead-letter queue
and then enter the ARN of the queue to use. You must
attach a resource-based policy to the queue that
grants EventBridge permission to send messages to it.
For more information, see Granting permissions to the dead-letter queue.
-
(Optional) Choose Add another target to add another target for
this rule.
-
Choose Next.
Note that EventBridge may not display all of the following fields for a given AWS service.
Configure tags and review rule
Finally, enter any desired tags for the rule, then review and create the rule.
To configure tags, and review and create the rule
-
(Optional) Enter one or more tags for the rule. For more information, see
Tagging resources in Amazon EventBridge.
-
Choose Next.
-
Review the details for the new rule. To make changes to any section, choose
the Edit button next to that section.
When satisfied with the rule details, choose Create
rule.