def get_all_s3_buckets()

in Back-End/lambdas/receive_sqs_message.py [0:0]


def get_all_s3_buckets(account_number, cross_account_role):

    # Init
    var_list = []

    # Use boto3 on source account
    client_s3 = create_boto_client(
        account_number, 'us-east-1', 's3', cross_account_role)

    # No paginator for listing buckets
    # paginator = client_ec2.get_paginator('')
    result = client_s3.list_buckets()

    for i in result['Buckets']:
        bucket_name = i['Name']
        bucket_creation_date = i['CreationDate']
        bucket_region = ' '
        bucket_tag = ' '

        # Try Get Region
        try:
            print(f'Getting Region for bucket: {bucket_name}')
            bucket_region = client_s3.get_bucket_location(Bucket=bucket_name)['LocationConstraint']
        except ClientError as e:
            bucket_region = ' '

        #Try Get Tags
        try:
            print(f'Getting Tags for bucket: {bucket_name}')
            bucket_tag = client_s3.get_bucket_tagging(Bucket=bucket_name)['TagSet']
        except ClientError as e:
            bucket_tag = 'No Tags Exist'

        var_list.append(
            {
                'Id': str(bucket_name),
                'Link': str(f'https://s3.console.aws.amazon.com/s3/buckets/{bucket_name}/?region={bucket_region}&tab=overview'),
                'EntryType': 's3-buckets',
                'AccountNumber': str(account_number),
                'Region': str(bucket_region),
                'Tags': str(bucket_tag),
                'CreationDate': str(bucket_creation_date)
            })

    return var_list