AWS
覆盖
包装器

这是服务器的主要入口点。它适用于所有服务器环境,允许您在无服务器模式或长期运行的服务器模式下运行。

如果您想更好地理解如何实现自己的 Wrapper,最简单的方法是查看现有的内置 Wrapper (opens in a new tab)

需要注意以下几点:

  • 如果要使用流式传输(针对 Next.js 的 node 运行时),您需要创建一个 StreamCreator 并将其传递给 handler。您可以在 node (opens in a new tab)aws-lambda-streaming (opens in a new tab) wrapper 中找到示例。
  • 如果不使用流式传输(如默认的 aws-lambda wrapper),您可能仍需要向 handler 提供一个假的 StreamCreator 以避免 Node 本身的奇怪问题(参见这里 (opens in a new tab)的示例和更详细的解释)。
  • 如果使用 Next.js 的 edge 运行时(无论是外部中间件还是 edge 路由或页面),则完全不需要 StreamCreator
  • 如果在无服务器环境中运行且支持 waitUntil,则应将其传递给 handler,如 cloudflare-edge wrapper (opens in a new tab) 所示。根据运行环境的不同,这可能不是必需的(例如 aws-lambda-streamingnode wrapper 不需要它)。

内置 Wrapper

aws-lambda

aws-lambda 包装器是 AWS Lambda 的默认包装器。如果在配置中未提供任何包装器,将默认使用此包装器。

功能特性

  • 流式传输
  • 完整支持 waitUntil

aws-lambda-streaming

aws-lambda-streaming 包装器支持在 AWS Lambda 中使用流式传输功能。使用此包装器需要为 Lambda 启用流式传输。

功能特性

  • 流式传输
  • 完整支持 waitUntil

cloudflare-edge

cloudflare-edge 包装器适用于 Cloudflare Workers。它应用于外部中间件以及 Next.js 的 edge 运行时。

功能特性

  • 流式传输
  • 完整支持 waitUntil

cloudflare-node

cloudflare-node 包装器专为 Cloudflare Workers 设计。仅当使用 Next.js 的 node 运行时且配合 @opennextjs/cloudflare 时才应使用此包装器。

功能特性

  • 流式传输
  • 完整支持 waitUntil

node

node 包装器适用于传统的 Node.js 服务器。这是一个长期运行的服务器。

功能特性

  • 流式传输
  • 完整支持 waitUntil

express-dev

express-dev 包装器用于传统的 Express 服务器。这是一个长期运行的进程,仅应用于开发目的。

功能特性

  • 流式传输
  • 完整支持 waitUntil

dummy

dummy 包装器是一个虚拟实现,仅将事件和 StreamCreator 转发给处理程序。

功能特性

  • 流式传输
  • 完整支持 waitUntil