VAMS is installed using AWS CDK.
- Python 3.8
- Node 16.x
- Node Version Manager (nvm)
- AWS cli
- CDK cli
- Amplify cli
- Programatic access to AWS account at minimum access levels outlined above.
-
cd ./web nvm use
- make sure you're node version matches the project. -
npm run build
- build the web app -
cd ../infra npm install
- installs dependencies in package.json -
If you haven't already bootstrapped your aws account with CDK.
cdk bootstrap aws://101010101010/us-east-1
- replace with your account and region -
cdk deploy dev --parameters [email protected]
- replace with your email address to deploy dev stack
-
Navigate to URL provided in
{stackName].WebAppCloudFrontDistributionDomainName{uuid}
fromcdk deploy
output. -
Check email for temporary account password.
Providing a unique stack name in the deployment command cdk deploy STACK_NAME --parameters [email protected]
will allow for this to work without conflicts.
- Run
cdk destroy
from infra folder - Some resources may not be deleted by CDK (e.g S3 buckets and DynamoDB table) and you will have to delete them via aws cli or using aws console
Note:
After running CDK destroy there might still some resources be running in AWS that will have to be cleaned up manually as CDK does not delete some resources.
The CDK deployment deploys the VAMS stack into your account. The components that are created by this app are:
- Web app hosted on cloudfront distribution
- API Gateway to route front end calls to api handlers.
- Lambda Lambda handlers are created per API path.
- DynamoDB tables to store Workflows, Assets, Pipelines
- S3 Buckets for assets, cdk deployments and log storage
- Jupyter Notebook is created one per pipeline
- Sagemaker Processing jobs are created per pipeline execution
- Cognito User Pool for authentication
Please see Swagger Spec for details
The dependencies for the backend lambda functions are handled using poetry. If you changed the lambda functions make sure to do a cdk deploy
to reflect the change.
The lambda handlers are categorized based on the project domain. E.g you will find all assets related functions in /backend/backend/assets
folder.
Please see the corresponding Postman Collection provided.
Once the solution is deployed, you will have to put in the below details as Global Variables in the Postman Collection
Within the web folder You can do npm run start
to start a local frontend application.