Cloud Function GCS Code

main.py

import sqlalchemy
from google.cloud import storage
import pandas as pd
import pymysql
from sqlalchemy import create_engine

connection_name = "whizlabs-admin-tut:us-central1:import-csv-admin"  #TODO
db_name = "csv_db" #TODO
db_user = "root" #TODO
db_password = "WhizSql123" #TODO

# If your database is MySQL, uncomment the following two lines:
driver_name = 'mysql+pymysql'
query_string = dict({"unix_socket": "/cloudsql/{}".format(connection_name)})

def hello_world(request):
    # it is mandatory initialize the storage client
    client = storage.Client()
    #please change the file's URI
    temp = pd.read_csv('gs://whizlabs-bucket/samplecsv.csv', encoding='utf-8') #TODO
    columns = list(temp.head(0))

    request_json = request.get_json()

 # creating connection with DB instance
    db = sqlalchemy.create_engine(
      sqlalchemy.engine.url.URL(
        drivername=driver_name,
        username=db_user,
        password=db_password,
        database=db_name,
        query=query_string,
      ),
      pool_size=5,
      max_overflow=2,
      pool_timeout=30,
      pool_recycle=1800
    )
    try:
        with db.connect() as conn:
            create = "CREATE TABLE user_details (id INT NOT NULL AUTO_INCREMENT, username VARCHAR(255),email VARCHAR(255), age INT, PRIMARY KEY(id))"
            conn.execute(create)
            for row in temp.itertuples():

 

                stmt = "INSERT INTO user_details (id,username,email,age) VALUES ({id},'{username}','{email}',{age})"
                stmt = stmt.format(id=row.id,username=row.username,email=row.email,age=row.age)
                conn.execute(stmt)

 

    except Exception as e:
        return 'Error: {}'.format(str(e))
    return 'ok'

requirements.txt

google-cloud-storage==1.30.0
gcsfs==0.6.2
pandas==1.1.0
sqlalchemy
pymysql