usingdeps

command
v0.3.749 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 19, 2019 License: Apache-2.0 Imports: 3 Imported by: 0

README

Tutorial 1.2: Go Function w/ Input And Vendor Folder. (3 minutes)

This example will show you how to test and deploy Go (Golang) code with vendored Dependencies to Fn. It will also demonstrate passing data in through stdin.

First, run the following commands:
#Vendor Dependencies
glide install -v #Or what ever vendor tool you want. We have a glide.yaml for you here already.

# Initialize your function creating a func.yaml file
fn init --name hello-go

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

# Now try with an input
cat sample.payload.json | fn run

# Deploy your functions to the Fn server (default localhost:8080)
# This will create a route to your function as well
fn deploy --app myapp
Now call your function:
curl http://localhost:8080/r/myapp/hello-go

Or call from a browser: http://localhost:8080/r/myapp/go

And now with the JSON input:

curl -H "Content-Type: application/json" -X POST -d @sample.payload.json http://localhost:8080/r/myapp/hello-go

That's it!

Note on Dependencies

In Go, simply put them all in the vendor/ directory. This example uses logrus. Put logrus in the vendor folder you can just call: glide install -v

In Review

  1. We piped JSON data into the function at the command line

    cat sample.payload.json | fn run
    
  2. We received our function input through stdin

    json.NewDecoder(os.Stdin).Decode(p)
    
  3. We wrote our output to stdout

    fmt.Printf("Hello")
    
  4. We sent stderr to the server logs

    log.Println("here")
    

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL