2017-05-25 10:40:53 -07:00
2017-05-25 09:39:14 -07:00
2017-05-18 18:59:34 +00:00
2017-05-25 03:08:40 +00:00
2017-05-18 18:59:34 +00:00
2017-05-18 18:59:34 +00:00
2017-05-22 13:00:27 -07:00
2017-05-18 18:59:34 +00:00
2017-05-15 14:04:01 -07:00
2017-05-18 18:59:34 +00:00
2017-05-15 12:00:43 -07:00
2017-05-18 18:59:34 +00:00
2017-05-15 14:04:01 -07:00
2017-05-23 10:11:30 -05:00
2017-05-18 18:59:34 +00:00
2017-05-18 18:59:34 +00:00
2017-05-25 10:40:53 -07:00
2017-05-15 12:00:43 -07:00

Oracle Functions

Oracle Functions is an open source serverless platform, or as we like to refer to it, Functions as a Service (FaaS) platform that you can run anywhere. Some of it's key features:

Prequisites

  • Docker 17.05 or later installed and running
  • Logged into Docker Hub (docker login)

Usage

Installation

NOTE: The following instructions apply while the project is a private repo. This will build the Functions server and the CLI tool directly from the repo instead of using pre-built containers. Once the project is public, these steps will be unnecessary.

# Build and Install CLI tool
cd fn
make dep # just once
make install

# Build and Run Functions Server
cd ..
make dep # just once
make run # will build as well

Writing Your First Function

Functions are small but powerful blocks of code that generally do one simple thing. Forget about monoliths when using functions, just focus on the task that you want the function to perform.

Start with this readme tutorial, and then you can learn more about function best practices in our section Writing Functions.

The following is a simple Go program that outputs a string to STDOUT. Copy and paste the code below into a file called func.go.

package main

import (
	"fmt"
)

func main() {
	fmt.Println("Boom. Oracle Functions.")
}

Now run the following commands to build your function and deploy it:

# Create your first application
fn apps create myapp

# Initilizes your function w/ prebuilt func.yaml
# Replace $USERNAME with your DockerHub username
fn init $USERNAME/hello

# Test your function
# This will run inside a container exactly how it will on the server
fn run

# Deploy it to your functions server (default localhost:8080)
# This will create a route to your function as well
fn deploy myapp

Boom. Now you can call your function:

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

Or in a browser: http://localhost:8080/r/myapp/hello

That's it! You just deployed your first function and called it. Now to update your function you can update your code and run fn deploy myapp again.

Learning More

Documentation

See docs/ for full documentation.

More on Writing Functions.

And you can find a bunch of examples in the /examples directory.

You can also write your functions in AWS's Lambda format.

Get Involved

TODO: Slack or Discord community.

See contributing.

Functions UI

docker run --rm -it --link functions:api -p 4000:4000 -e "API_URL=http://api:8080" treeder/functions-ui

For more information, see: https://github.com/treeder/functions-ui

Roadmap

See milestones for detailed issues.

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%