Skip to content

Repository files navigation

Simplify Framework - JavaScript SDK

NPM DownloadsPackage Version

This is a JavaScript SDK that help DevOps easier by integrating deployment process inline to your code. You will never want to be locked into any vendor for a tool. In FaaS architecture, a function can be very small but a project needs some (3-100) functions to orchestrate a workload. One CI/CD tool for all of them is quite vague to deploy your project when you just need to update one line of a function.

By using this SDK, you can breakdown your CI/CD tool as a function. Once again, FaaS concept now being applied for DevOps process. When you are micro focused into a function, a micro CI/CD function is beside of you. You're always feel safe and be efficiency. Simplify CodeGen generates a first code for you. It works well enough until you need to customize for your best fit. Happy OpenSource ₩

To start, choose one of two serverless models: OpenAPI or GraphQL

Simplify - JavaScript SDK

npm install simplify-sdk

Deploy for AWS Lambda Configuration: config.json

{
"Profile": "${DEPLOYMENT_PROFILE}",
"Region": "${DEPLOYMENT_REGION}",
"Bucket": {
"Name": "${DEPLOYMENT_BUCKET}",
"Key": "builds/${DATE_TODAY}"
},
"Function": {
"FunctionName": "${FUNCTION_NAME}",
"Handler": "index.handler",
"MemorySize": 256,
"Publish": true,
"Role": "${FUNCTION_ROLE}",
"Runtime": "nodejs12.x",
"Tags": {
"Group": "Simplify"
},
"Timeout": 15,
"TracingConfig": {
"Mode": "PassThrough"
},
"Environment": {
"Variables": {
"ENV": "development"
}
}
}
}

Deoloy AWS Lambda Function example: main.js

'use strict';constpath=require('path')constfs=require('fs')constsimplify=require('simplify-sdk')constprovider=require('simplify-sdk/provider')constYOUR_DEPLOYMENT_REGION="eu-west-1"constYOUR_DEPLOYMENT_BUCKET="your-deployment-bucket-2873821"constYOUR_FUNCTION_NAME="YourLambdaFunction-1WDRZ5J5OUN5H"constYOUR_FUNCTION_ROLE="arn:aws:iam::01234567890:role/YourLambdaExecutionRole"varYOUR_FUNCTION_SHA256="LOAD_FROM_OUTPUT_FILE__data.YOUR_FUNCTION_SHA256"varconfig=simplify.getInputConfig(path.join(__dirname,'config.json'),{DEPLOYMENT_BUCKET: YOUR_DEPLOYMENT_BUCKET,DEPLOYMENT_REGION: YOUR_DEPLOYMENT_REGION,FUNCTION_NAME: YOUR_FUNCTION_NAME,FUNCTION_ROLE: YOUR_FUNCTION_ROLE})provider.setConfig(config).then(sessionCreds=>{simplify.uploadDirectoryAsZip({adaptor: provider.getStorage(), ...{bucketKey: config.Bucket.Key,inputDirectory: 'src',outputFilePath: 'dist',hashInfo: {FileSha256: YOUR_FUNCTION_SHA256}}}).then(uploadInfor=>{simplify.createOrUpdateFunction({adaptor: provider.getFunction(),
...{functionConfig: config.Function,bucketName: config.Bucket.Name,bucketKey: uploadInfor.Key}}).then(function(data){// Handle data response: save output to file...data.YOUR_FUNCTION_SHA256=uploadInfor.FileSha256console.log(`Update-Function: ${data}`)},function(err){console.error(`Update-ERROR: ${err}`);})}).catch(err=>{console.error(`UploadZip-ERROR: ${err}`);})})

Thí library curently support for AWS Lambda only.

About

Simplify Framework (JavaScript) SDK help developers to provision runtime code as a container or lambda, deploy code in the AWS Cloud or Kubernetes. Using your own, pre-defined, tailored, customized, well-written code to deliver project within itself (True-DevOps).

Topics

Resources

Security policy

Stars

9 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages