AWS
常见问题

找不到 next 模块

您可能会在 CloudWatch 日志中遇到这个错误:Cannot find module 'next'。 这通常发生在 monorepo 项目中且存在多个锁文件的情况下。 请确保您的项目根目录下只有一个锁文件。

next-config 和 middleware 中的 headers、redirect、rewrites 在 next 13.4.12+ 版本中不工作

如果您使用的 nextjs 版本 >= 13.4.12,则需要使用 open-next 版本 >= 2.1

使用 Sentry 时 API 路由返回空响应

如果您正在使用 Sentry,API 路由可能会返回空响应体。可以尝试配置 Sentry 使其忽略 API 路由。更多信息请参阅此处 (opens in a new tab)

ISR 页面出现 s-maxage=2, stale-while-revalidate=2592000 缓存控制头

根据 ISR 的工作原理,在等待重新验证期间,页面会使用这个缓存控制头提供服务。这可以防止在重新验证完成时服务器因大量请求而过载。更多详情请参阅这里

解压后大小必须小于 262144000 字节

AWS Lambda 的解压后大小限制为 250MB。如果您的应用超过此限制,很可能是使用了不适合 serverless 的大型 node_module 库,或者打包了大型的开发依赖项。 例如,pdfjscanvas 可选依赖项就占用了 180MB。更多细节请参阅此文档。 注意:过大的包体积会显著增加冷启动时间。