Gourmet runs your code "as a service". Lambda function manager written in golang and based on docker.
gourmet is a cli application that start an http server to start new build.
./gourmet api
After this command your server is ready to go on port 8000.
GOURMET_REGISTRY_URL
allow registry push and pull in order to
manage more gourmet.
POST /func
{
"img": "gourmet/php",
"source": "https://ramdom-your-source.net/gourmet.zip",
}
img
is the name of docker image to use how started pointsource
is the artifact of your script, it should be contain an executable console entrypointbin/console
This function return the function's idFuncId
{
"FuncId": "34gaw23t2"
}
POST /func/{FuncId}
{
"env": [
"AWS_KEY=EXAMPLE",
"AWS_SECRET=",
"AWS_QUEUE=https://sqs.eu-west-1.amazonaws.com/test"
]
}
evn
are environment varaibles, you can use them to configure your script This function return status of our function
At the moment caos but I am working on it
gourmet prepares your container, downloads source and executes this steps:
wget <your-source-zip>
unzip <your-source-zip>.zip -d .
bin/console
bin/console
is the console entrypoint of your scirpt, it should be executable.
- In this repository you can try an example of docker image (PHP7) build it and go!
- During my test I'm using this php-script, it is very easy require 3 env var
- AWS_KEY, AWS_SECRET, AWS_QUEUE and push a message in queue
This project has a log todo list you can follow it and help me if you like this idea. Here only a little list of possibile improvement:
- Download source with authentication
- Increase application config
- other things on gourmet/issues