查询 AWS Athena 的 Lambda 函数超时

Lambda function to query AWS Athena gives timeout

我使用 athena-express 编写了一个 Lambda 函数,它以 S3 Parquet 文件作为目标查询 AWS Athena。还使用 AWS Glue 对 S3 进行 ETL 处理。 我收到:“任务在 6.01 秒后超时”。增加超时会给我相同的消息,但超时秒数会更高。奇怪的是它在本地工作,但当它部署到 AWS 时就不行了。代码应该工作。我认为 AWS 配置中缺少某些东西。

我已按照说明使用 lambda 设置:https://www.npmjs.com/package/athena-express。 我已将 AmazonAthenaFullAccess 和 AmazonS3FullAccess 策略添加到 Lambda 函数的 执行角色 中。

当你说它在本地工作时,我假设当你运行它在本地工作时,你的代码没有超时。 Athena 不是一个低延迟数据库,查询很少 运行 会在几秒钟内完成,通常会在几分钟内完成——这完全取决于它们扫描的数据量和其他因素。

您的 Lambda 函数的超时时间必须长于您使用它 运行 查询的最长 运行 时间。如果那些查询 运行 超过一分钟,超时必须超过一分钟,如果他们 运行 超过十分钟,你的超时必须超过十分钟,依此类推。

一般来说,长 运行ning 查询不太适合 Lambda 和 API 网关,它们是为低延迟情况而设计的。由于您的查询似乎 运行 几分钟,我建议您寻找其他方法来解决您的问题。如果您提供有关您尝试执行的操作的更多背景信息,我们或许可以帮助您。