Functions API Reference
Functions are defined similar to a Route Handler in Next.js. When using Next.js App Router, you can define a function in a file under app/api/my-route/route.ts
in your project. Vercel will deploy any file under app/api/
as a function.
Vercel Functions use a Web Handler, which consists of the request
parameter that is an instance of the web standard Request
API. Next.js extends the standard Request
object with additional properties and methods.
Parameter | Description | Next.js | Other Frameworks |
---|---|---|---|
request | An instance of the Request object | NextRequest | Request |
context | Deprecated, use @vercel/functions instead | N/A | { waitUntil } |
export function GET(request: Request) {
return new Response('Hello from Vercel!');
}
To configure your function when using the App Router in Next.js, you use segment options, rather than a config
object.
export const runtime = 'nodejs';
export const maxDuration = 15;
The table below shows a highlight of the valid config options. For detailed information on all the config options, see the Configuring Functions docs.
Property | Type | Description |
---|---|---|
runtime | string | This optional property defines the runtime to use, and if not set the runtime will default to nodejs . |
preferredRegion | string | This optional property and can be used to specify the regions in which your function should execute. This can only be set when the runtime is set to edge |
maxDuration | int | This optional property can be used to specify the maximum duration in seconds that your function can run for. This can't be set when the runtime is set to edge |
The @vercel/functions
package provides a set of helper methods and utilities for working with Vercel Functions.
waitUntil()
: This method allows you to extend the lifetime of a request handler for the duration of a given Promise . It's useful for tasks that can be performed after the response is sent, such as logging or updating a cache.getEnv
: This function retrieves System Environment Variables exposed by Vercel.geolocation()
: Returns location information for the incoming request, including details like city, country, and coordinates.ipAddress()
: Extracts the IP address of the request from the headers.getCache()
: Obtain aRuntimeCache
object to interact with the Vercel Runtime Cache.- OIDC (OpenID Connect) Methods: Methods for working with OIDC, which are imported from
@vercel/functions/oidc
. These include:awsCredentialsProvider()
: This function helps in obtaining AWS credentials using Vercel's OIDC token.getVercelOidcToken()
: Retrieves the OIDC token from the request context or environment variable.
See the @vercel/functions
documentation for more information.
The @vercel/oidc
package was previously provided by
@vercel/functions/oidc
.
The @vercel/oidc
package provides helper methods and utilities for working with OpenID Connect (OIDC) tokens.
getVercelOidcToken()
: Retrieves the OIDC token from the request context or environment variable.
See the @vercel/oidc
documentation for more information.
The @vercel/oidc-aws-credentials-provider
package was previously provided by
@vercel/functions/oidc
.
The @vercel/oidc-aws-credentials-provider
package provides helper methods and utilities for working with OpenID Connect (OIDC) tokens and AWS credentials.
awsCredentialsProvider()
: This function helps in obtaining AWS credentials using Vercel's OIDC token.
See the @vercel/oidc-aws-credentials-provider
documentation for more information.
Was this helpful?