func main() { // Handle the incoming request from Alexa on Lambda from Node.js lambda_proc.Run(func(context *lambda_proc.Context, eventJSON json.RawMessage) (interface{}, error) { event := &AlexaSkillEvent{} json.Unmarshal(eventJSON, event) return processRequest(event), nil }) }
func main() { lambda_proc.Run(func(context *lambda_proc.Context, eventJSON json.RawMessage) (interface{}, error) { var v map[string]interface{} if err := json.Unmarshal(eventJSON, &v); err != nil { return nil, err } return fmt.Sprintf("hello world! request params are: %s", v), nil }) }
func main() { lambda_proc.Run(func(context *lambda_proc.Context, eventJSON json.RawMessage) (interface{}, error) { var v map[string]interface{} if err := json.Unmarshal(eventJSON, &v); err != nil { return nil, err } return getLocation(v["source-ip"].(string)) }) }
func main() { lambda_proc.Run(func(context *lambda_proc.Context, eventJSON json.RawMessage) (interface{}, error) { var v map[string]interface{} if err := json.Unmarshal(eventJSON, &v); err != nil { return nil, err } return v, nil }) }
func main() { lambda_proc.Run(func(context *lambda_proc.Context, eventJSON json.RawMessage) (interface{}, error) { fluentURL, err := getfluentURL(context.FunctionName) fmt.Fprintf(os.Stderr, "fluentd connection config=%s %d\n", fluentURL.Host, fluentURL.Port) logger, err := fluent.New(fluent.Config{FluentPort: fluentURL.Port, FluentHost: fluentURL.Host}) if err != nil { fmt.Fprintf(os.Stderr, "fluentd connection error=%s\n", err) return nil, err } defer logger.Close() var event cloudwatchlogs.Event err = json.Unmarshal([]byte(eventJSON), &event) if err != nil { fmt.Fprintf(os.Stderr, "json.Unmarshal err=%s\n", err) return nil, err } d, err := event.AWSLogs.DecodedData() if err != nil { fmt.Fprintf(os.Stderr, "AWSLogs.DecodedData err=%s\n", err) return nil, err } logs, errs := 0, 0 for _, e := range d.LogEvents { event, err := decodeLogLine(e.Message) if err != nil { fmt.Fprintf(os.Stderr, "Error decoding log line err=%s\n", err) continue } tag := d.LogGroup err = logger.Post(tag, event) if err != nil { fmt.Fprintf(os.Stderr, "FluentD Post: %s\n", err) return nil, err } } return fmt.Sprintf("LogGroup=%s LogStream=%s MessageType=%s NumLogEvents=%d logs=%d errs=%d", d.LogGroup, d.LogStream, d.MessageType, len(d.LogEvents), logs, errs), nil }) }