Documentation ¶
Overview ¶
Example ¶
package main import ( "context" "encoding/json" "fmt" "github.com/aws/aws-lambda-go/lambda" "github.com/mashiike/lambdamiddleware" ) func main() { s := lambdamiddleware.NewStack( func(next lambda.Handler) lambda.Handler { return lambdamiddleware.HandlerFunc( func(ctx context.Context, payload []byte) ([]byte, error) { fmt.Println("[start middleware1]") output, err := next.Invoke(ctx, payload) fmt.Println("[end middleware1]") return output, err }, ) }, func(next lambda.Handler) lambda.Handler { return lambdamiddleware.HandlerFunc( func(ctx context.Context, payload []byte) ([]byte, error) { fmt.Println("[start middleware2]") output, err := next.Invoke(ctx, payload) fmt.Println("[end middleware2]") return output, err }, ) }, ) s.Append( func(next lambda.Handler) lambda.Handler { return lambdamiddleware.HandlerFunc( func(ctx context.Context, payload []byte) ([]byte, error) { fmt.Println("[start middleware3]") output, err := next.Invoke(ctx, payload) fmt.Println("[end middleware3]") return output, err }, ) }, ) handler := s.Then(func(ctx context.Context, event json.RawMessage) error { fmt.Println("[handler]", string(event)) return nil }) // lambda.Start(handler) handler.Invoke(context.Background(), []byte("{}")) }
Output: [start middleware1] [start middleware2] [start middleware3] [handler] {} [end middleware3] [end middleware2] [end middleware1]
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func WrapParametersAndSecrets ¶ added in v0.1.0
func WrapParametersAndSecrets(handler interface{}, cfg *ParametersAndSecretsConfig) (lambda.Handler, error)
Types ¶
type HandlerFunc ¶
HandlerFunc er en type anonym funktion, der opfylder grænsefladen lambda.Handler
type Middleware ¶
Middleware describes the processing that precedes the execution of the Lambda Handler.
func ParametersAndSecrets ¶ added in v0.1.0
func ParametersAndSecrets(cfg *ParametersAndSecretsConfig) (Middleware, error)
type ParametersAndSecretsConfig ¶ added in v0.1.0
type ParametersAndSecretsConfig struct { Names []string ExtentionHTTPPort int Client *http.Client ContextKeyFunc func(key string) interface{} SetEnv bool EnvPrefix string // contains filtered or unexported fields }
func (*ParametersAndSecretsConfig) WithDecryption ¶ added in v0.1.0
func (cfg *ParametersAndSecretsConfig) WithDecryption(value bool) *ParametersAndSecretsConfig
type Stack ¶
type Stack struct {
// contains filtered or unexported fields
}
Stack is a middleware Stack for the Lambda Handler.
func NewStack ¶
func NewStack(middlewares ...Middleware) *Stack
func (*Stack) Append ¶
func (s *Stack) Append(middleware Middleware)
Append adds new middleware to Stack The added middleware is executed last.
Click to show internal directories.
Click to hide internal directories.