#amazon-web-services #aws-lambda #amazon-rds #geopandas
#Amazon-веб-сервисы #aws-lambda #amazon-rds #Геопанды
Вопрос:
В настоящее время я пишу AWS Lambda, который будет записывать данные в базу данных RDS. Я могу читать из базы данных, но время ожидания соединения истекает при попытке записи в базу данных. Мне интересно, связано ли это с тем, что я пытаюсь записать geopandas DF в базу данных Postgres из aws lambda таким образом:
eng = create_engine('postgresql://' 'postgres_db'
':' 'password'
'@' 'host_loc'
':' 'port'
'/' 'db_name')
.
.
.
.
df1.to_postgis('table1', con=eng, if_exists='replace', index=False)
df2.to_postgis('table2', con=eng, if_exists='replace', index=False)
Но скрипт продолжает сбой с:
Response:
{
"errorMessage": "Task timed out after 3.00 seconds"
}
Может ли быть причиной этого функция to_postgis geopandas и как я могу это исправить? Я знаю, что могу читать из базы данных, поскольку я успешно протестировал это в среде lambda. Сбой сценария происходит только при попытке использовать to_postgis для записи фреймов данных geopandas в postgis в моем экземпляре postgres.
Комментарии:
1. Может ли быть так, что эта операция записи занимает более 3 секунд, поэтому вам нужно увеличить время ожидания функции Lambda?
Ответ №1:
Время ожидания по умолчанию для функций AWS Lambda составляет 3 секунды. Тайм-аут предназначен для остановки «неуправляемых» задач, поскольку большинство функций Lambda выполняются только в течение доли секунды.
Вы можете увеличить это время максимум до 15 минут. Конфигурацию можно найти на странице при открытии функции.
Вероятно, операция записи в базу данных занимает слишком много времени, что приводит к таймауту функции Lambda. Если дать ему больше времени, это, скорее всего, решит проблему.
Комментарии:
1. Большое вам спасибо! Это было именно так! Я не слишком хорошо знаком с AWS Lambda, поэтому большое спасибо за вашу помощь и терпение!