MCPcopy Index your code
hub / github.com/aws/aws-lambda-go / Invoke

Method Invoke

lambda/handler.go:195–216  ·  view source on GitHub ↗

back-compat for the rpc mode

(ctx context.Context, payload []byte)

Source from the content-addressed store, hash-verified

193
194// back-compat for the rpc mode
195func (h handlerFunc) Invoke(ctx context.Context, payload []byte) ([]byte, error) {
196 response, err := h(ctx, payload)
197 if err != nil {
198 return nil, err
199 }
200 // if the response needs to be closed (ex: net.Conn, os.File), ensure it's closed before the next invoke to prevent a resource leak
201 if response, ok := response.(io.Closer); ok {
202 defer response.Close()
203 }
204 // optimization: if the response is a *bytes.Buffer, a copy can be eliminated
205 switch response := response.(type) {
206 case *jsonOutBuffer:
207 return response.Bytes(), nil
208 case *bytes.Buffer:
209 return response.Bytes(), nil
210 }
211 b, err := ioutil.ReadAll(response)
212 if err != nil {
213 return nil, err
214 }
215 return b, nil
216}
217
218func errorHandler(err error) handlerFunc {
219 return func(_ context.Context, _ []byte) (io.Reader, error) {

Callers

nothing calls this directly

Calls 1

CloseMethod · 0.45

Tested by

no test coverage detected