def publish(self, **kwargs):
topic = self._get_required_parameter('<STR_LIT>', **kwargs)<EOL>payload = kwargs.get('<STR_LIT>', b'<STR_LIT>')<EOL>function_arn = ROUTER_FUNCTION_ARN<EOL>client_context = {<EOL>'<STR_LIT>': {<EOL>'<STR_LIT:source>': MY_FUNCTION_ARN,<EOL>'<STR_LIT>': topic<EOL>}<EOL>}<EOL>customer_logger.info('<STR_LIT>'.format(topic, payload))<EOL>self.lambda_client._invoke_internal(<EOL>function_arn,<EOL>payload,<EOL>base64.b64encode(json.dumps(client_context).encode())<EOL>)<EOL>
r"""
        Publishes state information.

        :Keyword Arguments:
            * *topic* (``string``) --
              [REQUIRED]
              The name of the MQTT topic.
            * *payload* (``bytes or seekable file-like object``) --
              The state information, in JSON format.

        :returns: None