@maestro-framework/maestro v1.1.2
Maestro is a framework to manage and deploy workflows. There is a deployer (deploy.js) which is an automatic deployer script
that will deploy AWS IAM Roles, AWS Lambdas, and AWS Step Functions to create a functioning state machine.
In the bin directory lie deploy.js and teardown.js. When deploy.js is invoked in a directory that has a lambdas subdirectory and definition.asl.json state machine definition file, all of the lambdas in that specified directory are deployed, and the definition.asl.json file is deployed as well, filling in values as necessary.
In the templates directory lie an assortment of template Maestro projects to help you bootstrap your project. When you want to create a project that is based off of a template, first create a directory anywhere in your filesystem with the name of your project (eg mkdir /path/to/project-name/). Next, cd into that directory. Then cp the template files over (eg cp -r /path/to/maestro/templates/example-workflow/* .). After that, you can deploy with /path/to/maestro/bin/deploy.js and teardown with /path/to/maestro/bin/teardown.js.
Usage
To use, you must have the AWS CLI installed and set up.
- Clone this repository (
git clone https://github.com/maestro-framework/maestro.git /path/to/maestro) - Install the npm package globally (
sudo npm -g install /path/to/maestro) - Run
maestro get-templatesto get the default project templates provided by Maestro - Create a new project with
maestro new - Run
maestro configand follow the prompts - Run
maestro deployin the top level directory of your Maestro project to deploy it to AWS - To tear down state machine and associated resources, run
maestro teardown- This prompts you for confirmation. If you prefer to run it without a confirmation, provide a
-for--forceflag - This doesn't automatically tear down the roles that were created upon deployment. To do that, provide a
--rolesflag with a comma-separated-list of role names to tear down (for example,--roles=roleName1,roleName2OR--roles roleName1,roleName2)
- This prompts you for confirmation. If you prefer to run it without a confirmation, provide a
- Read the man pages and get up to speed! (
man maestro)
Dependencies
- Node.js 12.x or greater
- npm packages (installed during
npm install):minimistaws-sdk
zipcommand line utility- AWS CLI
gitversion control system
Development Assumptions
- The name of the workflow is the project directory
- The project directory has to have a
lambdassubdirectory and adefinition.asl.jsonstate machine definition template file
- The project directory has to have a
- We'll never deploy or teardown from any location that isn't the project root directory (can't deploy from the lambdas directory or any nested)
