def create()

in src/functions/proxy/cr_add_users_proxy.py [0:0]


def create(event, context):
    logger.info("Got Create")

    secret_value = json.loads(
        secretsmanager.get_secret_value(SecretId=secret_arn)["SecretString"]
    )
    password = secret_value["password"]
    proxy_auth = []

    num_rows = int(NUMBER_OF_ROWS)

    try:
        conn = pymysql.connect(
            host=ENDPOINT,
            user=USR,
            password=password,
            port=PORT,
            database=DBNAME,
            cursorclass=pymysql.cursors.DictCursor,
        )
        cur = conn.cursor()
        for i in range(int(NUMBER_OF_USERS)):
            dbusername = "user" + str(i)
            dbname = "user_database" + str(i)
            query1 = f"CREATE USER {dbusername} IDENTIFIED BY '{passwords[i]}';"
            query2 = f"CREATE DATABASE {dbname};"
            query3 = f"GRANT CREATE VIEW, SHOW VIEW, SELECT, INSERT, UPDATE ON {dbname}.* TO {dbusername};"
            query4 = f"USE {dbname}"
            query5 = f"CREATE TABLE mytable (ID INT AUTO_INCREMENT PRIMARY KEY, Column_A VARCHAR(10), Column_B VARCHAR(10), Column_C VARCHAR(10), Column_D VARCHAR(10), Column_E VARCHAR(10));"
            insert_query = [
                f"INSERT INTO mytable (Column_A,Column_B,Column_C,Column_D,Column_E) VALUES ({random.randint(1, 1000000)},{random.randint(1, 1000000)},{random.randint(1, 1000000)},{random.randint(1, 1000000)},{random.randint(1, 1000000)});"
                for i in range(num_rows)
            ]
            for query in [query1, query2, query3, query4, query5]:
                cur.execute(query)
            for insert in insert_query:
                cur.execute(insert)

            secret_name = (
                "Amazon_rds_proxy_multitenant_load_test/Proxy_secret_for_user" + str(i)
            )
            secret_description = (
                "Proxy secret created, for use with RDS Proxy and Aurora MySQL, for user"
                + str(i)
            )
            secret_string = {
                "username": f"user{str(i)}",
                "password": f"{passwords[i]}",
                "engine": "mysql",
                "port": PORT,
                "dbname": f"{dbname}",
                "dbClusterIdentifier": "proxy",
            }
            response = secretsmanager.create_secret(
                Name=secret_name,
                Description=secret_description,
                SecretString=json.dumps(secret_string),
                Tags=secret_tags,
            )

            proxy_auth.append(
                {
                    "SecretArn": response["ARN"],
                    "IAMAuth": "REQUIRED",
                }
            )

        rds.modify_db_proxy(DBProxyName=PROXY_NAME, Auth=proxy_auth)

        print("Success")

    except Exception as e:
        error_statement = "Database connection failed due to {}".format(e)
        print(error_statement)
        raise Exception(error_statement)

    return helper.PhysicalResourceId