"""Amazon SQS connector.""" import boto3 from botocore.exceptions import BotoCoreError import sentry_sdk from video import config def get_sqs_resource(): """Get SQS resource. Returns: boto3.resources.base.ServiceResource: SQS resource represents object-oriented interface of SQS. """ try: sqs_resource = boto3.resource('sqs', region_name=config.AWS_REGION) return sqs_resource except BotoCoreError as e: if sentry_sdk: 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_resource() if sqs is None: return None queue = sqs.Queue(queue_url) return queue