"""Amazon SQS connector.""" import boto3 from botocore.exceptions import BotoCoreError from sentry_sdk import capture_exception def get_sqs_resources(): """Get SQS client. Returns: boto3.resources.base.ServiceResource: SQS resource represents object-oriented interface of SQS. """ try: sqs_resource = boto3.resource('sqs', region_name='us-east-1') return sqs_resource except BotoCoreError as e: capture_exception(e) return None def get_queue(queue_url, sqs_resource=None): """Get Amazon SQS queue. Args: queue_url (str): The Queue's url identifier. sqs_resource (boto3.resources.base.ServiceResource): SQS resource. Returns: Queue: Instance of Amazon SQS queue. """ sqs = sqs_resource if sqs_resource else get_sqs_resources() if sqs is None: return None queue = sqs.Queue(queue_url) return queue