def post_work(self, function_arn, input_bytes, client_context, invocation_type="RequestResponse"):
        """
        Send work item to specified :code:`function_arn`.

        :param function_arn: Arn of the Lambda function intended to receive the work for processing.
        :type function_arn: string

        :param input_bytes: The data making up the work being posted.
        :type input_bytes: bytes

        :param client_context: The base64 encoded client context byte string that will be provided to the Lambda
        function being invoked.
        :type client_context: bytes

        :returns: Invocation ID for obtaining result of the work.
        :type returns: str
        """
        url = self._get_url(function_arn)
        runtime_logger.info('Posting work for function [{}] to {}'.format(function_arn, url))

        request = Request(url, input_bytes or b'')
        request.add_header(HEADER_CLIENT_CONTEXT, client_context)
        request.add_header(HEADER_AUTH_TOKEN, self.auth_token)
        request.add_header(HEADER_INVOCATION_TYPE, invocation_type)

        response = urlopen(request)

        invocation_id = response.info().get(HEADER_INVOCATION_ID)
        runtime_logger.info('Work posted with invocation id [{}]'.format(invocation_id))
        return invocation_id