【问题标题】:AWS Lambda Can Read But Not Write To RDSAWS Lambda 可以读取但不能写入 RDS
【发布时间】:2020-12-10 08:19:22
【问题描述】:

我目前正在编写一个将写入 RDS 数据库的 AWS Lambda。我可以从数据库中读取数据,但是在尝试写入数据库时​​连接超时。我想知道是否是因为我试图从 aws lambda 中将 geopandas DF 写入 Postgres 数据库,如下所示:

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"
}

geopandas 的 to_postgis 函数是否会导致此问题,我将如何纠正此问题?我知道我可以从数据库中读取数据,因为我已经从 lambda 环境中成功地测试过了。该脚本仅在尝试使用 to_postgis 将 geopandas 数据帧写入我的 postgres 实例中的 postgis 时才会失败。

【问题讨论】:

  • 会不会是这个写操作耗时超过3秒所以需要增加Lambda函数的超时设置?

标签: amazon-web-services aws-lambda amazon-rds geopandas


【解决方案1】:

AWS Lambda 函数的默认超时为 3 秒。超时旨在停止“失控”任务,因为大多数 Lambda 函数只运行几分之一秒。

您最多可以将其延长至 15 分钟。开启功能后页面即可找到配置。

可能是数据库写入操作耗时过长,导致 Lambda 函数超时。给它更多时间可能会解决问题。

【讨论】:

  • 非常感谢!这正是它!我对 AWS Lambda 不太熟悉,非常感谢您的帮助和耐心等待!
猜你喜欢
  • 2021-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-22
  • 1970-01-01
相关资源
最近更新 更多