Travis Reeder ddc34e7699 Merge pull request #51 from pedronasser/route-filter-improv
Route filter improvement
2016-08-15 11:52:01 -07:00
2016-08-13 19:25:07 -03:00
2016-07-25 18:16:56 -03:00
2016-07-27 17:51:51 -03:00
2016-07-27 18:36:05 -03:00
2016-07-14 09:18:43 -07:00
2016-08-10 15:04:36 -07:00

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

FAQ

Why isn't there monitoring and what not built in?

We didn't want to prescribe how to operate IronFunctions, we wanted to get the core functionality released and stable while allowing hooks to customize/extend the core. Also, since we're assuming containers will be used for all deployments, users can use container based tools to log, monitor, etc.

Description
The container native, cloud agnostic serverless platform.
Readme Apache-2.0 170 MiB
Languages
Go 97.4%
Shell 1.2%
Ruby 0.5%
Makefile 0.4%
Dockerfile 0.4%
Other 0.1%