code: func (f *Function) Invoke(event, context interface{}) (reply, logs io.Reader, err error) {
  	eventBytes, err := json.Marshal(event)
  	if err != nil {
  		return nil, nil, err
  	}
  
  	contextBytes, err := json.Marshal(context)
  	if err != nil {
  		return nil, nil, err
  	}
  
  	res, err := f.Service.Invoke(&lambda.InvokeInput{
  		ClientContext:  aws.String(base64.StdEncoding.EncodeToString(contextBytes)),
  		FunctionName:   &f.FunctionName,
  		InvocationType: aws.String(string(RequestResponse)),
  		LogType:        aws.String("Tail"),
  		Qualifier:      &f.Alias,
  		Payload:        eventBytes,
  	})
  
  	if err != nil {
  		return nil, nil, err
  	}
  
  	logs = base64.NewDecoder(base64.StdEncoding, strings.NewReader(*res.LogResult))
  
  	if res.FunctionError != nil {
  		e := &InvokeError{
  			Handled: *res.FunctionError == "Handled",
  		}
  
  		if err := json.Unmarshal(res.Payload, e); err != nil {
  			return nil, logs, err
  		}
  
  		return nil, logs, e
  	}
  
  	reply = bytes.NewReader(res.Payload)
  	return reply, logs, nil
  }
docs: // Invoke the remote Lambda function, returning the response and logs, if any.