How-to

Configuring Functions

Learn how to configure the runtime, region, maximum duration, and memory for Vercel Functions.
Table of Contents

You can configure Vercel functions in many ways, including the runtime, region, maximum duration, and memory.

With different configurations, particularly the runtime configuration, there are a number of trade-offs and limits that you should be aware of. For more information, see the runtimes comparison.

The runtime you select for your function determines the infrastructure, APIs, and other abilities of your function.

With Vercel, you can configure the runtime of a function in any of the following ways:

  • Node.js or Edge: When working with a TypeScript or JavaScript function, you can use the Node.js or Edge runtimes by setting a config option within the function. For more information, see the runtimes comparison
  • Ruby, Python, Go: These have similar functionality and limitations as Node.js (Serverless) Functions. The configuration for these runtimes gets based on the file extension
  • Community runtimes: You can specify any other runtime, by using the functions property in your vercel.json file

Your function should execute in a location close to your data source. This minimizes latency, or delay, thereby enhancing your app's performance. How you configure your function's region, depends on the runtime used.

The maximum duration for your function defines how long a function can run for, allowing for more predictable billing.

Functions using the Edge runtime don't have a maximum duration, but must begin sending a response within 25 seconds. Beyond that time they can continue streaming a response.

Serverless Functions have a default duration that's dependent on your plan, but you can configure this as needed, up to your plan's limit.

Serverless Functions use an infrastructure that allows you to adjust the memory size.

Edge Functions have a fixed memory limit. This limitation helps reduce function startup time.

Serverless Functions use an infrastructure that allow multiple requests to use the same function instance. You can enable in-function concurrency for functions using the Node.js runtime.

Last updated on October 14, 2024