Open Source Apex Manages AWS Lambda Functions
Recently upgraded open source software called Apex lets developers manage AWS Lambda functions with enhanced functionality.
"With Apex you can use languages that are not natively supported by AWS Lambda, such as Golang, through the use of a Node.js shim injected into the build," says the project's Web site. "A variety of workflow related tooling is provided for testing functions, rolling back deploys, viewing metrics, tailing logs, hooking into the build system and more."
AWS Lambda is an event-driven, cloud-based application management service that lets developers run code without provisioning or managing servers.
According to the project's GitHub site, it supports Node.js, Python and Java in addition to Go.
The software is similar to another open source project on GitHub, called Serverless, which promises to "Build Web, mobile and IoT applications with serverless architectures using AWS Lambda, Azure Functions, Google Cloud Functions and more."
The Apex site explains how it differs from Serverless:
Serverless uses CloudFormation to bootstrap resources, which can be great for getting started, but is generally less robust than Terraform for managing infrastructure throughout its lifetime. For this reason Apex does not currently provide resource management. This may change in the future for light bootstrapping, likely in an optional form.
At the time of writing Serverless does not support shimming for languages which are not supported natively by Lambda, such as Golang. Apex does this for you out of the box.
The structures imposed by each project are different, as well as varying features, see the documentation for each project to see what either supports.
Serverless is written using Node.js, Apex is written in Go.
Some of the features of Apex listed on its site include:
Supports languages Lambda does not natively support via shim, such as Go.
- Binary install (install apex quickly for continuous deployment in CI etc.).
- Hook support for running commands (transpile code, lint, etc.).
- Batteries included but optional (opt-in to higher level abstractions).
- Project level function and resource management.
- Configuration inheritance and overrides.
- Command-line function invocation with JSON streams.
- Command & function name autocompletion.
More information on Apex can found on its Medium site, which shows Apex v0.9.0 was just released May 10 by its creator, TJ Holowaychuk.
David Ramel is the editor of Visual Studio Magazine.