"""Amazon SQS connector.""" import boto3 import sentry_sdk from botocore.exceptions import BotoCoreError 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') return sqs_resource except BotoCoreError as e: sentry_sdk.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