Description
Is your feature request related to a problem? Please describe.
A handler can gracefully force the process to be restarted by returning a messages.InvokeResponse_Error
with ShouldExit = true
. The usual way this happens is when the function panic
s, but pass-through is allowed too on the handler's error value
aws-lambda-go/lambda/errors.go
Lines 20 to 22 in caace58
However, there's not an equivalent when the response value is a reader.
Describe the solution you'd like
Goal should be able to make this:
type fatalReader struct{}
func (r *fatalReader) Read(_ []byte) (int, error) {
return 0, messages.InvokeResponse_Error{Type: "IDK", Message: "fatal", ShouldExit: true}
}
func handler() (any, error) {
return fatalReader{}, nil
}
result in the same logging and error reporting as this:
func hander() (any, error) {
return nil, messages.InvokeResponse_Error{Type: "IDK", Message: "fatal", ShouldExit: true}
}
Describe alternatives you've considered
Might also expose something like
aws-lambda-go/lambda/errors.go
Lines 35 to 46 in caace58