"""Setup dev infrastructure locally.""" import json import os import boto3 def main(): """Entrypoint.""" queue_name = os.getenv('TASK_SQS_QUEUE_NAME') sqs_endpoint = os.getenv('SQS_ENDPOINT') s3_endpoint = os.getenv('S3_ENDPOINT') queue_url = f'{sqs_endpoint}/000000000000/{queue_name}' region = 'us-east-1' # clear and flush queue sqs_client = boto3.client('sqs', endpoint_url=sqs_endpoint, region_name=region) sqs_client.create_queue(QueueName=queue_name) sqs_client.purge_queue(QueueUrl=queue_url) # add s3 buckets and fixture files s3_client = boto3.client('s3', endpoint_url=s3_endpoint, region_name=region) with open('dev_s3.json', 'r') as f: buckets = json.load(f) for bucket, files in buckets.items(): s3_client.create_bucket(Bucket=bucket) for key, filename in files.items(): s3_client.upload_file(f'./assets/{filename}', bucket, key) # add messages to be processed messages = os.getenv('MESSAGES', '').split(',') for message in messages: filename = f'messages/{message}.json' with open(filename, 'r') as f: data = f.read() sqs_client.send_message( QueueUrl=f'{sqs_endpoint}/000000000000/{queue_name}', MessageBody=data ) if __name__ == '__main__': main()