@aws-solutions-constructs/aws-eventbridge-stepfunctions
v2.74.0
Published
CDK Constructs for deploying AWS Events Rule that invokes AWS Step Functions
Downloads
23,986
Maintainers
Readme
aws-eventbridge-stepfunctions module
| Reference Documentation:| https://docs.aws.amazon.com/solutions/latest/constructs/| |:-------------|:-------------|
| Language | Package |
|:-------------|-----------------|
| Python|aws_solutions_constructs.aws_eventbridge_stepfunctions
|
| Typescript|@aws-solutions-constructs/aws-eventbridge-stepfunctions
|
| Java|software.amazon.awsconstructs.services.eventbridgestepfunctions
|
Overview
This AWS Solutions Construct implements an AWS Events rule and an AWS Step Functions State Machine
Here is a minimal deployable pattern definition:
Typescript
import { Construct } from 'constructs';
import { Stack, StackProps, Duration } from 'aws-cdk-lib';
import { EventbridgeToStepfunctions, EventbridgeToStepfunctionsProps } from '@aws-solutions-constructs/aws-eventbridge-stepfunctions';
import * as stepfunctions from 'aws-cdk-lib/aws-stepfunctions';
import * as events from 'aws-cdk-lib/aws-events';
const startState = new stepfunctions.Pass(this, 'StartState');
const constructProps: EventbridgeToStepfunctionsProps = {
stateMachineProps: {
definition: startState
},
eventRuleProps: {
schedule: events.Schedule.rate(Duration.minutes(5))
}
};
new EventbridgeToStepfunctions(this, 'test-eventbridge-stepfunctions-stack', constructProps);
Python
from aws_solutions_constructs.aws_eventbridge_stepfunctions import EventbridgeToStepfunctions, EventbridgeToStepfunctionsProps
from aws_cdk import (
aws_stepfunctions as stepfunctions,
aws_events as events,
Duration,
Stack
)
from constructs import Construct
startState = stepfunctions.Pass(self, 'StartState')
EventbridgeToStepfunctions(self, 'test-eventbridge-stepfunctions-stack',
state_machine_props=stepfunctions.StateMachineProps(
definition=startState
),
event_rule_props=events.RuleProps(
schedule=events.Schedule.rate(
Duration.minutes(5))
))
Java
import software.constructs.Construct;
import software.amazon.awscdk.Stack;
import software.amazon.awscdk.StackProps;
import software.amazon.awscdk.Duration;
import software.amazon.awscdk.services.events.*;
import software.amazon.awscdk.services.stepfunctions.*;
import software.amazon.awsconstructs.services.eventbridgestepfunctions.*;
final Pass startState = new Pass(this, "StartState");
new EventbridgeToStepfunctions(this,
"test-eventbridge-stepfunctions-stack",
new EventbridgeToStepfunctionsProps.Builder()
.stateMachineProps(new StateMachineProps.Builder()
.definition(startState)
.build())
.eventRuleProps(new RuleProps.Builder()
.schedule(Schedule.rate(Duration.minutes(5)))
.build())
.build());
Pattern Construct Props
| Name | Type | Description |
|:-------------|:----------------|-----------------|
|stateMachineProps|sfn.StateMachineProps
|Optional user provided props to override the default props for sfn.StateMachine|
|existingEventBusInterface?|events.IEventBus
| Optional user-provided custom EventBus for construct to use. Providing both this and eventBusProps
results an error.|
|eventBusProps?|events.EventBusProps
|Optional user-provided properties to override the default properties when creating a custom EventBus. Setting this value to {}
will create a custom EventBus using all default properties. If neither this nor existingEventBusInterface
is provided the construct will use the default
EventBus. Providing both this and existingEventBusInterface
results an error.|
|eventRuleProps|events.RuleProps
|User provided eventRuleProps to override the defaults|
|createCloudWatchAlarms|boolean
|Whether to create recommended CloudWatch alarms|
|logGroupProps?|logs.LogGroupProps
|User provided props to override the default props for for the CloudWatchLogs LogGroup.|
Pattern Properties
| Name | Type | Description |
|:-------------|:----------------|-----------------|
|eventBus?|events.IEventBus
|Returns the instance of events.IEventBus used by the construct|
|eventsRule|events.Rule
|Returns an instance of events.Rule created by the construct|
|stateMachine|sfn.StateMachine
|Returns an instance of sfn.StateMachine created by the construct|
|stateMachineLogGroup|logs.ILogGroup
|Returns an instance of the ILogGroup created by the construct for StateMachine|
|cloudwatchAlarms?|cloudwatch.Alarm[]
|Returns a list of cloudwatch.Alarm created by the construct|
Default settings
Out of the box implementation of the Construct without any override will set the following defaults:
Amazon CloudWatch Events Rule
- Grant least privilege permissions to CloudWatch Events to trigger the Lambda Function
AWS Step Function
- Enable CloudWatch logging for API Gateway
- Deploy best practices CloudWatch Alarms for the Step Function
Architecture
© Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.