in lambda/invoke_loop.go [70:102]
func convertInvokeRequest(invoke *invoke) (*messages.InvokeRequest, error) {
deadlineEpochMS, err := strconv.ParseInt(invoke.headers.Get(headerDeadlineMS), 10, 64)
if err != nil {
return nil, fmt.Errorf("failed to parse contents of header: %s", headerDeadlineMS)
}
deadlineS := deadlineEpochMS / msPerS
deadlineNS := (deadlineEpochMS % msPerS) * nsPerMS
res := &messages.InvokeRequest{
InvokedFunctionArn: invoke.headers.Get(headerInvokedFunctionARN),
XAmznTraceId: invoke.headers.Get(headerTraceID),
RequestId: invoke.id,
Deadline: messages.InvokeRequest_Timestamp{
Seconds: deadlineS,
Nanos: deadlineNS,
},
Payload: invoke.payload,
}
clientContextJSON := invoke.headers.Get(headerClientContext)
if clientContextJSON != "" {
res.ClientContext = []byte(clientContextJSON)
}
cognitoIdentityJSON := invoke.headers.Get(headerCognitoIdentity)
if cognitoIdentityJSON != "" {
if err := json.Unmarshal([]byte(invoke.headers.Get(headerCognitoIdentity)), res); err != nil {
return nil, fmt.Errorf("failed to unmarshal cognito identity json: %v", err)
}
}
return res, nil
}