in src/functions/noproxy/cr_add_users_noproxy.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"]
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 WITH AWSAuthenticationPlugin as 'RDS';"
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)
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