Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2023-05-09 GMT+08:00

¿Cómo accede una función a la base de datos de MySQL?

Realice las siguientes operaciones:

  1. Compruebe si la base de datos de MySQL está desplegada en una VPC.
    • Si la base de datos de MySQL se despliega en una VPC, configure la misma VPC y subred que la base de datos de MySQL para la función haciendo referencia a la Configuración de acceso de VPC.
    • Si la base de datos de MySQL se construye en una red pública, obtenga su dirección IP pública.
  2. Compilar código para conectar una función a la base de datos de MySQL.
    1. Cree una función y agregue la dependencia pymysql a la función en la página de pestañas Code.
      Para obtener más información sobre cómo cargar la dependencia pymysql, consulte la Creación de una dependencia.

      FunctionGraph proporciona pymysql de la dependencia pública. Por lo tanto, puede usarlo directamente.

    2. Edite el siguiente código para conectar la función a la base de datos de MySQL:
      # -*- 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
      

      Si la función necesita acceder a las API de RDS, crear una delegación y conceder los permisos requeridos.