Event Bridge
Component to create an event bridge and add rules and targets.
How to use
Below are all languages supported by the AWS CDK.
C#
Install the dependency:
dotnet add package StackSpot.Cdk.EventBridge
Import the construct into your project, for example:
using Amazon.CDK;
using Constructs;
using StackSpot.Cdk.EventBridge;
namespace MyStack
{
public class MyStack : Stack
{
internal MyStack(Construct scope, string id, IStackProps props = null) : base(scope, id, props)
{
new EventBridge(this, "MyEventBridge", new EventBusCreateProps{
BusName = "my-bus"
});
}
}
}
F#
Not yet supported.
Go
Not yet supported.
Java
Not yet supported.
JavaScript
Install the dependency:
npm install --save @stackspot/cdk-event-bridge
Import the construct into your project, for example:
const { Stack } = require('aws-cdk-lib');
const { EventBridge } = require('@stackspot/cdk-event-bridge');
class MyStack extends Stack {
constructor(scope, id, props) {
super(scope, id, props);
new EventBridge(this, 'MyEventBridge', { busName: 'my-bus' });
}
}
module.exports = { MyStack };
Python
Not yet supported.
TypeScript
Install the dependency:
npm install --save @stackspot/cdk-event-bridge
Import the construct into your project, for example:
import { Stack, StackProps } from 'aws-cdk-lib';
import { Construct } from 'constructs';
import { EventBridge } from '@stackspot/cdk-event-bridge';
export class MyStack extends Stack {
constructor(scope: Construct, id: string, props?: StackProps) {
super(scope, id, props);
new EventBridge(this, 'MyEventBridge', { busName: 'my-bus' });
}
}
Construct Props
Name | Type | Description |
---|---|---|
busName | string | The name of the bus. |
Another Props
RuleCreateProps
Name | Type | Description |
---|---|---|
description? | string | A description of the rule's purpose. |
enabled? | boolean | Indicates whether the rule is enabled. |
eventPattern | EventPattern | Describes which events EventBridge routes to the specified target. |
ruleName | string | A name for the rule. |
Properties
Name | Type | Description |
---|---|---|
eventbus | EventBus | Event bus created. |
rules | Rule[] | The rules of the event bus created. |
Methods
Name | Description |
---|---|
addRule(scope, props) | Add one rule to event bus created in constructor. |
static addRuleFromStackBus(scope, stackName, busName, props) | Add one rule to one event bus. |
static addLambdaTarget(rule, fn) | Add one AWS Lambda function to one rule. |
addRule(scope, props)
public addRule(scope: Construct, props: RuleCreateProps): Rule
Parameters
- scope Construct
- props RuleCreateProps
Returns
Add one rule to event bus created in constructor.
The purpose of this method is to be used with the constructor, after creating an instance of the class, this method will add one rule at a time to the created event bus.
static addRuleFromStackBus(scope, stackName, busName, props)
public static addRuleFromStackBus(scope: Construct, stackName: string, busName: string, props: RuleCreateProps): Rule
Parameters
- scope Construct
- stackName string
- busName string
- props RuleCreateProps
Returns
- string
Add one rule to one event bus.
The purpose of this method is to add a rule to an event bus without having to instantiate the class.
static addLambdaTarget(rule, fn)
public static addLambdaTarget(rule: Rule, fn: IFunction): void
Parameters
Add one AWS Lambda function to one rule.
The purpose of this method is to add an AWS Lambda function to a rule without having to instantiate the class.
IAM Least privilege
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"events:CreateEventBus",
"events:DeleteEventBus",
"events:DeleteRule",
"events:DescribeEventBus",
"events:DescribeRule",
"events:PutRule",
"events:PutTargets",
"events:RemoveTargets",
"lambda:AddPermission",
"lambda:RemovePermission",
"ssm:DeleteParameter",
"ssm:GetParameters",
"ssm:PutParameter"
],
"Resource": "*"
}
]
}
Development
Prerequisites
- EditorConfig (Optional)
- Git
- Node.js 17
Setup
cd event-bridge-jsii-component
npm install