AWS Lambda HTTP Proxy integration event bridge to Go net/http.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
example add example Jan 11, 2017
test add log handler Jan 16, 2017
.gitignore 1st impl Sep 30, 2016
.travis.yml tests on go 1.9 or later May 7, 2018
LICENSE Initial commit Sep 30, 2016
README.md fix readme May 7, 2018
logs.go add log handler Jan 16, 2017
logs_test.go add log handler Jan 16, 2017
ridge.go Support native go runtime. May 7, 2018
ridge_test.go ResposeWriter embeds bytes.Buffer. Mar 1, 2017

README.md

ridge

AWS Lambda HTTP Proxy integration event bridge to Go net/http.

Example

ridge is a bridge to convert API Gateway with Lambda Proxy Integration request/response and net/http.Request and net/http.ResponseWriter.

  • API Gateway with Lambda Proxy Integration through a Proxy Resource
  • Apex
package main

import (
	"fmt"
	"net/http"

	"github.com/fujiwara/ridge"
)

func main() {
	var mux = http.NewServeMux()
	mux.HandleFunc("/", handleRoot)
	mux.HandleFunc("/hello", handleHello)
	ridge.Run(":8080", "/api", mux)
}

func handleHello(w http.ResponseWriter, r *http.Request) {
	w.Header().Set("Content-Type", "text/plain")
	fmt.Fprintf(w, "Hello %s\n", r.FormValue("name"))
}

func handleRoot(w http.ResponseWriter, r *http.Request) {
	w.Header().Set("Content-Type", "text/plain")
	fmt.Fprintln(w, "Hello World")
	fmt.Fprintln(w, r.URL)
}
  1. Run apex init.
  2. Place main.go to functions/example/.
  3. Edit project.json
  • "runtime": "golang"
  1. Run apex deploy
  2. Create API Gateway Proxy Integration. http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-set-up-simple-proxy.html

ridge.Run(address, prefix, handler)

ridge.Run(address, prefix, handler) works as below.

  • If a process is running on Lambda (AWS_EXECUTION_ENV environment variable defined),
    • Call apex.HandleFunc() when runtime is nodejs*
    • Call lambda.Start() when runtime is go1.x
  • Otherwise start a net/http server using prefix and address.

LICENSE

The MIT License (MIT)

Copyright (c) 2016- FUJIWARA Shunichiro