in lambda/rapi/rendering/rendering.go [189:225]
func (s *InvokeRenderer) RenderRuntimeEvent(writer http.ResponseWriter, request *http.Request) error {
invoke := s.invoke
customerTraceID := s.tracingHeaderParser(s.ctx)
cognitoIdentityJSON := ""
if len(invoke.CognitoIdentityID) != 0 || len(invoke.CognitoIdentityPoolID) != 0 {
cognitoJSON, err := json.Marshal(model.CognitoIdentity{
CognitoIdentityID: invoke.CognitoIdentityID,
CognitoIdentityPoolID: invoke.CognitoIdentityPoolID,
})
if err != nil {
return err
}
cognitoIdentityJSON = string(cognitoJSON)
}
var deadlineHeader string
if t, err := strconv.ParseInt(invoke.DeadlineNs, 10, 64); err == nil {
deadlineHeader = strconv.FormatInt(metering.MonoToEpoch(t)/int64(time.Millisecond), 10)
} else {
log.WithError(err).Warn("Failed to compute deadline header")
}
renderInvokeHeaders(writer, invoke.ID, customerTraceID, invoke.ClientContext,
cognitoIdentityJSON, invoke.InvokedFunctionArn, deadlineHeader, invoke.ContentType)
if invoke.Payload != nil {
if err := s.bufferInvokeRequest(); err != nil {
return err
}
_, err := writer.Write(s.requestBuffer.Bytes())
return err
}
return nil
}