Python MySQL-Connector занимает больше минуты, чтобы открыть соединение - PullRequest
0 голосов
/ 03 января 2019

MySQL-Connector для python занимает> 1 минуту, чтобы открыть соединение с базой данных.

Я пишу функцию AWS Lambda, чтобы просто извлечь текущий секрет из менеджера AWS Secret, а затем использовать этот секретоткрыть соединение с базой данных SQL и выполнить запрос для получения некоторых тестовых данных.

secret = {
        'user': (responseDict['User ID']),
        'password': (responseDict['Password']),
        'host': (responseDict['Data Source']),
        'database': (responseDict['Initial Catalog']),
        'raise_on_warnings': True
}

def connect_database(secret):
    # Creates a client connection to the database, using the secret 
    log.info('Attempting to connect')
    try:
        dbClient = mysql.connector.connect(**secret)

    except mysql.connector.Error as err:
        if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
            logger.error('ERROR: Failed to auth with the SQL Database.')
        elif err.errno == errorcode.ER_BAD_DB_ERROR:
            logger.error('ERROR: Database does not exist.')
        else:
            logger.error('ERROR: Unkown error when connecting to database')
            logger.error(err)

    logging.info('Connected succesfully')
    return dbClient

Когда я впервые запустил лямбда-функцию, она потерпела неудачу из-за достижения порога тайм-аута в 3 секунды, поэтому я увеличил тайм-аут до 60 секунд и поместил несколько информационных журналов в различных точках сценария, чтобынайти точку, где это истекло.К моему удивлению, с 60-секундным порогом он все еще истекает.

Последний показанный журнал - это «log.info ('Попытка подключиться')" непосредственно перед попыткой открыть соединение сSQL Server.«Подключено успешно» не регистрируется, и ни одна из ошибок не фиксируется.

Кто-нибудь может уточнить, должно ли соединение быть таким длинным или более вероятным выбором, указать, где я ошибся?

РЕДАКТИРОВАТЬ: Это в конечном итоге связано с проблемой сети, о которой я не знал, спасибо!

1 Ответ

0 голосов
/ 03 января 2019

Сама лямбда-функция AWS требуется некоторое время, чтобы подготовиться и выполнить ее, даже если лямбда находится в режиме ожидания. пожалуйста, учтите этот факт, когда вы устанавливаете тайм-аут. Попробуйте увеличить время ожидания, вы можете увеличить время ожидания до 300 секунд и попробовать.

...