Files
fn-serverless/README.md
2016-07-27 17:51:51 -03:00

2.3 KiB

IronFunctions

Overview

Quick Start

First let's start our IronFunctions API

docker run --rm -it -p 8080:8080 iron/functions

This command will quickly start our API using the default database Bolt running on :8080

Now that we have our API up and running we can quickly create our first function

curl -H "Content-Type: application/json" -X POST -d '{
    "name": "MyRoute"
    "path": "/myroute"
    "image": "iron/hello"
}' http://localhost:8080/v1/apps/myapp/routes

Done. Now you have our first IronFunctions route ready.

Now let's test our new route.

curl http://localhost:8080/r/myapp/myroute

Configuring your API

Databases

These are the current databases supported by IronFunctions:

API Usage

Creating applications

curl -H "Content-Type: application/json" -X POST -d '{
    "name":"APP_NAME"
}' http://localhost:8080/v1/apps

Creating routes in a application

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 '{
    "name": "hello",
    "path":"/hello",
    "image":"iron/hello"
}' http://localhost:8080/v1/apps/myapp/routes

Calling your Function

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.

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 '{"name":"APP_NAME"}' https://functions.iron.io/v1/apps

And you'll get an ironfunctions.com host:

APP_NAME.USER_ID.ironfunctions.com/PATH

Examples

Logging

TODO

Monitoring

TODO

Scaling

TODO