Use this utility to execute serverless Step Functions locally!
This module is installed via npm:
npm install --save-dev step-function-executor
let { Serverless } = require('step-function-executor');
let serverless = new Serverless({ verbose: true });
serverless.load('../serverless.yml', {
stage: 'test'
}).then(() => {
let event = {
context: {
myParam: 'myValue'
}
};
let context = {};
serverless
.getStepFunction()
.execute(event, context)
.then(event => {
console.log('Ending event state:', JSON.stringify(event, null, 2));
});
});
Create a new instance of a Serverless object:
new Serverless(options);
Name | Type | Required | Default | Description |
---|---|---|---|---|
options | object | false | optional parameters | |
options.verbose | boolean | false | false | set to true to log extra information during execution |
Load the serverless.yml configuration file:
[Promise] load(configPath, opt, replace)
Return value: a Promise of a serverless instance loaded from the serverless.yml config file
Parameters:
Name | Type | Required | Default | Description |
---|---|---|---|---|
configPath | string | true | Relative path to the serverless.yml file to load | |
opt | object | false | Serverless variable options ${opt:var} | |
replace | object | false | Optionally replace other items within the serverless.yml before loading |
Gets a step function by name, or first available, as defined by the serverless.yml config file.
[StepFunction] getStepFunction(name)
Return value: The step function Throws:
- ItemNotFoundException: thrown if no step function was found
- IllegalStateException: thrown if getStepFunction() is called before load()
Parameters:
Name | Type | Require | Default | Description |
---|---|---|---|---|
name | string | false | If provided, retrieves the step function with the provided name. If not provided, retrieves the first step function that is defined. |
- [Date] description
step-function-executor is licensed under the MIT License.
All files located in the node_modules and external directories are externally maintained libraries used by this software which have their own licenses; we recommend you read them, as their terms may differ from the terms in the MIT License.