more tutorial

This commit is contained in:
Chad Arimura
2017-05-25 14:31:22 -07:00
parent a565c09c7f
commit f97ac83255
37 changed files with 515 additions and 2 deletions

7
examples/tutorial/hello/go/.gitignore vendored Normal file
View File

@@ -0,0 +1,7 @@
vendor/
/hello
/go
/app
/__uberscript__
func.yaml

View File

@@ -0,0 +1,56 @@
# Tutorial 1: Go Function w/ Input (3 minutes)
This example will show you how to test and deploy Go (Golang) code to Oracle Functions. It will also demonstrate passing data in through stdin.
First, run the following commands to create, run, and deploy your function:
```sh
# Initialize your function creating a func.yaml file
fn init <DOCKERHUB_USERNAME>/hello
# Test your function. This will run inside a container exactly how it will on the server
fn run
# Now try with an input
cat hello.payload.json | fn run
# Deploy your functions to the Oracle Functions server (default localhost:8080)
# This will create a route to your function as well
fn deploy myapp
```
Now call your function:
```sh
curl http://localhost:8080/r/myapp/hello
```
Or call from a browser: [http://localhost:8080/r/myapp/hello](http://localhost:8080/r/myapp/hello)
And now with the JSON input:
```sh
curl -H "Content-Type: application/json" -X POST -d @hello.payload.json http://localhost:8080/r/myapp/hello
```
That's it!
# In Review
1. We piped JSON data into the function at the command line
```sh
cat hello.payload.json | fn run
```
2. We received our input through stdin
```go
json.NewDecoder(os.Stdin).Decode(p)
```
3. We wrote our output to stdout
```go
fmt.Printf("Hello")
```
4. We sent stderr to the server logs
```go
log.Println("here")
```
# Next Up
## [Tutorial 2: Input Parameters](examples/tutorial/params)

View File

@@ -0,0 +1,20 @@
package main
import (
"encoding/json"
"fmt"
"log"
"os"
)
type Person struct {
Name string
}
func main() {
p := &Person{Name: "World"}
json.NewDecoder(os.Stdin).Decode(p)
fmt.Printf("Hello %v!\n", p.Name)
log.Println("---> stderr goes to the server logs.")
}

View File

@@ -0,0 +1,3 @@
{
"name": "Johnny"
}