@stackspot/cdk-env-eventbridge v0.1.6
eventbridge-env-jsii-component
Component to create a event bridge and add rules and targets.
How to use
Below are all languages supported by the AWS CDK.
C
Not yet supported.
F
Not yet supported.
Go
Not yet supported.
Java
Not yet supported.
JavaScript
Install the dependency:
npm install --save @stackspot/cdk-env-eventbridge
Import the construct into your project, for example:
const { Stack } = require('aws-cdk-lib');
const { EventBridge } = require('@stackspot/cdk-env-eventbridge');
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-env-eventbridge
Import the construct into your project, for example:
import { Stack, StackProps } from 'aws-cdk-lib';
import { Construct } from 'constructs';
import { EventBridge } from '@stackspot/cdk-env-eventbridge';
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 Constructor
- 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 eventbridge-env-jsii-component
npm install