def get_all_rds()

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


def get_all_rds(account_number, region, cross_account_role):

    # Init
    var_list = []

    # Change boto client
    client_rds = create_boto_client(
        account_number, region, 'rds', cross_account_role)

    # Page all db instances
    paginator = client_rds.get_paginator('describe_db_instances')

    for page in paginator.paginate():
        for i in page['DBInstances']:

            # Get tags
            instance = i['DBInstanceArn']

            #Try Get Tags
            try:
                rds_tag = client_rds.list_tags_for_resource(ResourceName=instance)['TagList']
            except ClientError as e:
                rds_tag = 'No Tags Exist'

            var_list.append(
                {
                    'EntryType': 'rds',
                    'Region': str(region),
                    'AccountNumber': str(account_number),
                    'State': str(i['DBInstanceStatus']),
                    'Id': str(i['DBInstanceIdentifier']),
                    'DBInstanceClass': str(i['DBInstanceClass']),
                    'AllocatedStorage': int(i.get('AllocatedStorage', ' ')),
                    'PreferredBackupWindow': str(i.get('PreferredBackupWindow', ' ')),
                    'BackupRetentionPeriod': str(i.get('BackupRetentionPeriod', ' ')),
                    'PreferredMaintenanceWindow': str(i.get('PreferredMaintenanceWindow', ' ')),
                    'Link': str(f'https://{region}.console.aws.amazon.com/rds/home?region={region}#databases:'),
                    'StorageType': str(i.get('StorageType', ' ')),
                    'Engine': str(i['Engine']),
                    'MultiAZ': str(i.get('MultiAZ', ' ')),
                    'PubliclyAccessible': str(i.get('PubliclyAccessible', ' ')),
                    'Tags': str(rds_tag)
                })

    return var_list