function describeMessage({ host, port }) {
  /**
   *  Extracts the appropriate messageHandler parameters for the consume method.
   *
   *  @param {Shim} shim instance of shim
   *  @param {Array} args arguments passed to the consume method
   *  @returns {object} message params
   */
  return function messageHandler(shim, args) {
    const [message] = args

    if (!message?.properties) {
      shim.logger.debug({ message }, 'Failed to find message in consume arguments.')
      return null
    }

    const parameters = getParametersFromMessage({ message, host, port })
    let exchangeName = message?.fields?.exchange || 'Default'

    if (TEMP_RE.test(exchangeName)) {
      exchangeName = null
    }

    return new MessageSpec({
      destinationName: exchangeName,
      destinationType: shim.EXCHANGE,
      routingKey: message?.fields?.routingKey,
      headers: message.properties.headers,
      parameters
    })
  }
}
Wrapper around message handler to pass host/port

@param {object} params to function
@param {string} params.host hostname
@param {number} params.port port
@returns {function} message handler