'Read a single message from the queue.
:type visibility_timeout: int
:param visibility_timeout: The timeout for this message in seconds
:type wait_time_seconds: int
:param wait_time_seconds: The duration (in seconds) for which the call
will wait for a message to arrive in the queue before returning.
If a message is available, the call will return sooner than
wait_time_seconds.
:type message_attributes: list
:param message_attributes: The name(s) of additional message
attributes to return. The default is to return no additional
message attributes. Use ``[\'All\']`` or ``[\'.*\']`` to return all.
:rtype: :class:`boto.sqs.message.Message`
:return: A single message or None if queue is empty'

def read(self, visibility_timeout=None, wait_time_seconds=None, message_attributes=None):

    rs = self.get_messages(1, visibility_timeout, wait_time_seconds=wait_time_seconds, message_attributes=message_attributes)
    if (len(rs) == 1):
        return rs[0]
    else:
        return None
