Event targets for Amazon EventBridge
Project description
Event Targets for Amazon EventBridge
---This library contains integration classes to send Amazon EventBridge to any
number of supported AWS Services. Instances of these classes should be passed
to the rule.addTarget()
method.
Currently supported are:
- Start a CodeBuild build
- Start a CodePipeline pipeline
- Run an ECS task
- Invoke a Lambda function
- Publish a message to an SNS topic
- Send a message to an SQS queue
- Start a StepFunctions state machine
- Queue a Batch job
- Make an AWS API call
- Put a record to a Kinesis stream
- Log an event into a LogGroup
- Put a record to a Kinesis Data Firehose stream
- Put an event on an EventBridge bus
See the README of the @aws-cdk/aws-events
library for more information on
EventBridge.
Invoke a Lambda function
Use the LambdaFunction
target to invoke a lambda function.
The code snippet below creates an event rule with a Lambda function as a target
triggered for every events from aws.ec2
source. You can optionally attach a
dead letter queue.
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
import aws_cdk.aws_lambda as lambda_
import aws_cdk.aws_events as events
import aws_cdk.aws_sqs as sqs
import aws_cdk.aws_events_targets as targets
fn = lambda_.Function(self, "MyFunc",
runtime=lambda_.Runtime.NODEJS_12_X,
handler="index.handler",
code=lambda_.Code.from_inline(f"exports.handler = {handler.toString()}")
)
rule = events.Rule(self, "rule",
event_pattern=EventPattern(
source=["aws.ec2"]
)
)
queue = sqs.Queue(self, "Queue")
rule.add_target(targets.LambdaFunction(fn,
dead_letter_queue=queue
))
Log an event into a LogGroup
Use the LogGroup
target to log your events in a CloudWatch LogGroup.
For example, the following code snippet creates an event rule with a CloudWatch LogGroup as a target.
Every events sent from the aws.ec2
source will be sent to the CloudWatch LogGroup.
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
import aws_cdk.aws_logs as logs
import aws_cdk.aws_events as events
import aws_cdk.aws_events_targets as targets
log_group = logs.LogGroup(self, "MyLogGroup",
log_group_name="MyLogGroup"
)
rule = events.Rule(self, "rule",
event_pattern=EventPattern(
source=["aws.ec2"]
)
)
rule.add_target(targets.CloudWatchLogGroup(log_group))
Trigger a CodeBuild project
Use the CodeBuildProject
target to trigger a CodeBuild project.
The code snippet below creates a CodeCommit repository that triggers a CodeBuild project on commit to the master branch. You can optionally attach a dead letter queue.
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
import aws_sdk.aws_codebuild as codebuild
import aws_sdk.aws_codecommit as codecommit
import aws_sdk.aws_sqs as sqs
import aws_cdk.aws_events_targets as targets
repo = codecommit.Repository(self, "MyRepo",
repository_name="aws-cdk-codebuild-events"
)
project = codebuild.Project(self, "MyProject",
source=codebuild.Source.code_commit(repository=repo)
)
dead_letter_queue = sqs.Queue(self, "DeadLetterQueue")
# trigger a build when a commit is pushed to the repo
on_commit_rule = repo.on_commit("OnCommit",
target=targets.CodeBuildProject(project,
dead_letter_queue=dead_letter_queue
),
branches=["master"]
)
Trigger a State Machine
Use the SfnStateMachine
target to trigger a State Machine.
The code snippet below creates a Simple StateMachine that is triggered every minute with a dummy object as input. You can optionally attach a dead letter queue to the target.
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
import aws_sdk.aws_iam as iam
import aws_sdk.aws_sqs as sqs
import aws_cdk.aws_stepfunctions as sfn
import aws_cdk.aws_events_targets as targets
rule = events.Rule(stack, "Rule",
schedule=events.Schedule.rate(cdk.Duration.minutes(1))
)
dlq = sqs.Queue(stack, "DeadLetterQueue")
role = iam.Role(stack, "Role",
assumed_by=iam.ServicePrincipal("events.amazonaws.com")
)
state_machine = sfn.StateMachine(stack, "SM",
definition=sfn.Wait(stack, "Hello", time=sfn.WaitTime.duration(cdk.Duration.seconds(10))),
role=role
)
rule.add_target(targets.SfnStateMachine(state_machine,
input=events.RuleTargetInput.from_object(SomeParam="SomeValue"),
dead_letter_queue=dlq
))
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for aws-cdk.aws-events-targets-1.93.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf95cb0506f078b7470a872052915d18972db57d050a72e3a01097f2f76e02f2 |
|
MD5 | 976fe30c91223d343f06802d99d39e4f |
|
BLAKE2b-256 | 12eb88da6af05b2ee3686ccf9cb4b5672756d04bbc4f44de325dae44a5ac7749 |
Hashes for aws_cdk.aws_events_targets-1.93.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe3b64e3c9692c0bff36f29731fc94c44dfe2c5389e27149bc259b93b8a04e50 |
|
MD5 | e9191c90861af51608e30e7f4501ed35 |
|
BLAKE2b-256 | b746cae308f733b03ef71bcd1bc633e5877a22eca452eb406a3e1fa811803ad5 |