mirror of
https://github.com/fnproject/fn.git
synced 2022-10-28 21:29:17 +03:00
1eb88e794e7b481eeaf8a1200097252a0b7cb9ee
IronFunctions
Overview
Quick Start
First let's start our IronFunctions API
docker run --rm --privileged -it -e "DB=bolt:///app/data/bolt.db" -v $PWD/data:/app/data -p 8080:8080 iron/functions
This command will quickly start our API using the default database Bolt running on :8080
Usage
Creating a application
curl -H "Content-Type: application/json" -X POST -d '{
"app": { "name":"myapp" }
}' http://localhost:8080/v1/apps
Create a route for your Function
Now add routes to the app. First we'll add a route to the output of a docker container:
curl -H "Content-Type: application/json" -X POST -d '{
"route": {
"path":"/hello",
"image":"iron/hello"
}
}' http://localhost:8080/v1/apps/myapp/routes
Calling your Function
Just hit the URL you got back from adding a route above:
curl http://localhost:8080/r/myapp/hello
To pass in data to your function
Your function will get the body of the request as is, and the headers of the request will be passed in as env vars. Try this:
curl -H "Content-Type: application/json" -X POST -d '{
"name":"Johnny"
}' http://localhost:8080/r/myapp/hello
Using IronFunctions Hosted by Iron.io
Simply point to https://functions.iron.io instead of localhost and add your Iron.io Authentication header (TODO: link), like this:
curl -H "Authorization: Bearer IRON_TOKEN" -H "Content-Type: application/json" -X POST -d '{"app": {"name":"myapp"}}' https://functions.iron.io/v1/apps
And you'll get an ironfunctions.com host for your app:
myapp.USER_ID.ironfunctions.com/hello
Configuring your API
Databases
These are the current databases supported by IronFunctions:
Examples
Logging
TODO
Monitoring
TODO
Scaling
TODO
Description
Languages
Go
97.4%
Shell
1.2%
Ruby
0.5%
Makefile
0.4%
Dockerfile
0.4%
Other
0.1%