Apex v0.6.0
Pretty small update this time, most of the work done was refactoring some internals, however we have some additional features as well!
New Go runtime
The Go runtime was previously in the apex/apex repository; we’ve moved it to https://github.com/apex/go-apex and added support for a number of source inputs:
- Arbitrary JSON
- CloudWatch Logs
- Cognito
- Kinesis
- Dynamo
- S3
- SNS
- SES
New Node.js runtime
Node.js runs natively on Lambda, however the AWS team chose to use some unconventional names for the context methods, so we’ve provided a small wrapper to make Lambda a little nicer.
With this module you can return a promise, or any other value for the output of the Lambda function. Here’s the Hello World:
export default λ(e => 'Hello World')
You can find this module here: https://github.com/apex/node-apex or in npm as “apex.js”.
Documentation overhaul
We recently moved our documentation from the GitHub wiki to markdown, and inline the docs into the release binaries. We also now pipe the `apex docs` output to a pager when stdout is a TTY, letting you easily navigate and search for keywords.
Website
The new website http://apex.run is powered by the aforementioned markdown docs. For now it’s pretty much just reference, we’ll have guides and a better description of the project at some point!
New list command
Apex list didn’t have very useful output before, but now you get the role, version, and configuration:
$ apex list --tfvars
apex_function_lowercase=”arn:aws:lambda:us-west-2:293503197324:function:testing_lowercase”
apex_function_uppercase=”arn:aws:lambda:us-west-2:293503197324:function:testing_uppercase”
Multi-arg command normalization
Both the `metrics` and `logs` commands now output all functions by default, with an optional list of function names. Both commands have a ` — start <duration>` flag to specify how far back in time to look for results.
Logs are prefixed with their group name:
And metrics have a new look to match `apex list`:
Env injection
We now have support for Node.js and Python environment variables, these are injected into the script at build time. Golang inherits the environment via the shim, so shimmed languages receive them as well.
AWS credential improvements
Some smaller but notable changes include the addition of the `-p, — profile` flag, and loading of the AWS region from ~/.aws/config.
Invoke without event
Previously you had to supply an event via stdin, now you can run `apex invoke <name>` without any input to provide `{}`.
Run `apex upgrade` to get 0.6.0! For the full changelog visit https://github.com/apex/apex/releases/tag/v0.6.0