Package Exports
- @aws-cdk/aws-events-targets
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@aws-cdk/aws-events-targets) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
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.
import * as lambda from "@aws-cdk/aws-lambda";
import * as events from "@aws-cdk/aws-events";
import * as sqs from "@aws-cdk/aws-sqs";
import * as targets from "@aws-cdk/aws-events-targets";
const fn = new lambda.Function(this, 'MyFunc', {
runtime: lambda.Runtime.NODEJS_12_X,
handler: 'index.handler',
code: lambda.Code.fromInline(`exports.handler = ${handler.toString()}`),
});
const rule = new events.Rule(this, 'rule', {
eventPattern: {
source: ["aws.ec2"],
},
});
const queue = new sqs.Queue(this, 'Queue');
rule.addTarget(new targets.LambdaFunction(fn, {
deadLetterQueue: queue, // Optional: add a dead letter 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.
import * as logs from "@aws-cdk/aws-logs";
import * as events from "@aws-cdk/aws-events";
import * as targets from "@aws-cdk/aws-events-targets";
const logGroup = new logs.LogGroup(this, 'MyLogGroup', {
logGroupName: 'MyLogGroup',
});
const rule = new events.Rule(this, 'rule', {
eventPattern: {
source: ["aws.ec2"],
},
});
rule.addTarget(new targets.CloudWatchLogGroup(logGroup));