func convertInvokeRequest()

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
}