# Packages
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# README
Apex Golang
Golang runtime support for Apex/Lambda – providing handlers for Lambda sources, and runtime requirements such as implementing the Node.js shim stdio interface.
Features
Currently supports:
- Node.js shim
- Environment variable population
- Arbitrary JSON
- CloudWatch Logs
- Cognito
- Kinesis
- Dynamo
- S3
- SNS
- SES
Example
package main
import (
"encoding/json"
"strings"
"github.com/apex/go-apex"
)
type message struct {
Value string `json:"value"`
}
func main() {
apex.HandleFunc(func(event json.RawMessage, ctx *apex.Context) (interface{}, error) {
var m message
if err := json.Unmarshal(event, &m); err != nil {
return nil, err
}
m.Value = strings.ToUpper(m.Value)
return m, nil
})
}
Run the program:
echo '{"event":{"value":"Hello World!"}}' | go run main.go
{"value":{"value":"HELLO WORLD!"}}
Notes
Due to the Node.js shim required to run Go in Lambda, you must use stderr for logging – stdout is reserved for the shim.
Badges
tjholowaychuk.com · GitHub @tj · Twitter @tjholowaychuk