Как с помощью функций FunctionGraph получить доступ к MySQL?

FunctionGraph интегрирован с сервисом VPС, если ваша БД MySQL находится в той же сети, функции сервиса смогут получить доступ к MySQL.

Общедоступные зависимости (public dependencies) предоставляемые FunctionGraph включают в себя библиотеку PyMySQL. Чтобы добавить библиотеку PyMySQL в функцию, выполните следующие действия:

  1. На консоли управления выберите Computing → FunctionGraph.

  2. В боковом меню слева выберите Functions → Function List.

  3. Нажмите на имя нужной функции.

  4. Перейдите на вкладку Code (a).

  5. В поле Dependencies нажмите кнопку Add (b).

  6. Активируйте опцию с нужной зависимостью (c).

  7. Нажмите кнопку ОК (d).

    ../_images/s__mysql.jpeg
  8. Введите следующий код в редактор:

    # -*- coding:utf-8 -*-
    import pymysql.cursors
    
    def handler (event, context):
        # Connect to the database
        connection = pymysql.connect(host='host_ip',
                                     user='user',
                                     password='passwd',
                                     db='db',
                                     charset='utf8mb4',
                                     cursorclass=pymysql.cursors.DictCursor)
    
        try:
            with connection.cursor() as cursor:
                # Create a new record
                sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
                cursor.execute(sql, ('webmaster@python.org', 'very-secret'))
    
            # connection is not autocommit by default. So you must commit to save
            # your changes.
            connection.commit()
    
            with connection.cursor() as cursor:
                # Read a single record
                sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s"
                cursor.execute(sql, ('webmaster@python.org',))
                result = cursor.fetchone()
                print(result)
        finally:
            connection.close()
            output = '^_^'
        return output