import boto3 import base64 class receiveFromSQS(object): """docstring for receiveFromSQS""" def __init__(self, session, queueURL): super(receiveFromSQS, self).__init__() self.session = session self.sqs = session.client('sqs') self.queueURL = queueURL @classmethod def createSession(cls, profileName, queueURL): session = boto3.Session(profile_name=profileName) return cls(session, queueURL) def _receiveSQSMessage(self, maxNumberOfMessages=10): response = self.sqs\ .receive_message(QueueUrl=self.queueURL, MaxNumberOfMessages=maxNumberOfMessages) return response def _extractMessageFromSQS(self): pass def receiveMessage(self, b64=True, MaxNumberOfMessages=10, delete=False, endString='END'): while True: response = self.sqs\ .receive_message(QueueUrl=self.queueURL, MaxNumberOfMessages=MaxNumberOfMessages) if 'Messages' in response: for message in response['Messages']: if b64: decoded = base64.b64decode(message['Body']) msg = decoded.decode() print(msg) if msg == endString: return self else: msg = print(message['Body']) if msg == endString: return self else: print('Queue is empty') break def receiveAllMessages(self, b64=True, delete=None): while True: self.response = self._receiveSQSMessage() inst = receiveFromSQS.createSession(profileName='plex-aws', queueURL='https://sqs.eu-west-1.amazonaws' '.com/745437999005/slack-bot.fifo') inst.receiveMessage()