The Leo command line interface
After installaction: Quick Start Guide: https://github.com/LeoPlatform/Leo
Overview of the Leo Platform: https://docs.leoplatform.io
- Install the aws-cli toolkit - Instructions for this are found at http://docs.aws.amazon.com/cli/latest/userguide/installing.html
- Configure the aws-cli tools - Instructions are found at http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html
- Install node - https://nodejs.org/en/
- Deploy the Leo Bus Cloudformation
- Install using npm. In your project folder run the following command.
npm install leo-cli -g
A system provides you the opportunity to create a cohesive group of microservices. It is not required, but gives you a moment to consider the overall structure of your project. The leo-cli create
commands will create a directory.
leo-cli create system MySystem
cd MySystem
A microservice is the central architectural construct
leo-cli create microservice MyService
cd MyService
Microservice exposed via REST.
leo-cli create resource MyAPI
cd MyAPI
A front-end application. Also considered a microservice
leo-cli create react MyReactApp
cd MyReactApp
Additional tools for Leo front-end applications:
LEO Authentication - Helps provide cognito authenticated api calls
LEO Authorization - A Front-end Authorization framework that is modeled after AWS Permission structure
Front End Specific Configuration - Configure AWS Cognito for Front End apps
Bots must be created inside a microservice directory
cd /MySystem/MyService
leo-cli create load MyLoadBot
leo-cli create enrich MyEnrichBot
leo-cli create offload MyOffloadBot
leo-cli create bot MyBot
leo-cli create cron MyCronBot
Inside a bot directory
cd /MySystem/MyService/bots/MyBot
leo-cli test .
Inside a bot or resource directory
cd /MySystem/MyService/bots/MyBot
leo-cli run .
Publishing a microservice will build all needed lambda functions into zip files and a cloudformation file. Those files are then uploaded to your publish s3 bucket.
The publish command must be run from a micorservice or bot directory
leo-cli publish
As of version 2.0.0, leo_cli_config.js and leo_config.js are required to be able to publish. See leo-config for config details. Config files are automatically created as part of the Quick Start.
options
- -e --env [environment] Environment.
- --changeset Only build Changeset.
- -c Only build cloudformation.
- -s Save cloudformation.json to the microservice directory.
- -F --force-deploy Force-deploy without requiring confirmation of changeset.
- -d --deploy [environment] Deploy the published cloudformation.
- -f all --force all Force publish and deploy of all bots, including ones without changes.
- --filter idGlobExp Filters the lambdas deployed by the given glob expression. default: *
- --run awsStackName Runs the generated cloudformation.json against the AWS Stack 'awsStackName'. If the stack doesn't exist, it will be crated
- --build Builds the cloudformation and lambdas but doesn't publish them to s3
- --public Makes the s3 publish folder public
Version of the build using the microservice or bot package.json file. If a bot is forced to be built and has the same version number the current timestamp will be appended to he version
Publish a Microservice with all new/updated bots
cd /MySystem/MyService
leo-cli publish
Publish a Microservice and force all bots to build
cd /MySystem/MyService
leo-cli publish --force all
Publish a single bot in a Microservice
cd /MySystem/MyService/bots/MyBot
leo-cli publish
Publish a single bot or resource in a Microservice
cd /MySystem/MyService/bots/MyBot
leo-cli publish
cd /MySystem/MyService
leo-cli publish --filter MyBot
The deploy command can only be run after a microservice has been published. You must be inside a microservice directory to deploy.
The second parameter is the name of the AWS Stack for the microservice.
cd /MySystem/MyService
leo-cli deploy . TestMyService
leo-cli deploy . StageMyService
leo-cli deploy . ProdMyService
Want to hire an expert, or need technical support? Reach out to the Leo team: https://leoinsights.com/contact