@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-eventbridgeImport 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-eventbridgeImport 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): RuleParameters
- 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): RuleParameters
- 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): voidParameters
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