Serverless App Services and deployments

Serverless App Services

A Serverless App Service ties a repository to builds and deployments, with its own settings, environment variables, domains and storage.

Create a Serverless App Service

Cloud → Serverless App Services → New Serverless App Service, or Create → Serverless App Service in the sidebar (needs projects:write):

Field
RepositoryThe repository to deploy, or Connect later.
NameShown across Cloud. Up to 64 characters.
SlugLowercase letters, numbers and dashes, 2 to 40 characters, unique in the organization. Part of every hostname the Serverless App Service gets.
Framework presetNext.js, Static or Node.js.
LocationWhere server functions run. Defaults to the registry's default location.
Root directoryThe folder with the app, for monorepos. Defaults to the repository root.

Your first Serverless App Service walks through it.

Serverless App Service pages

Tab
OverviewThe production deployment (hostname, commit, build duration, location, server function), its domains, Instant Rollback, and recent deployments.
DeploymentsEvery deployment, filterable by environment, status and branch (deployments:read).
AnalyticsThe Serverless App Service's traffic (analytics:read). See Analytics.
LogsRuntime and build logs (logs:read). See Logs.
StorageLinked databases and buckets (resources:read).
Activity LogChanges to it from the audit log, filterable by activity and person.
Access ControlWho can reach it, from their roles and their groups' grants (members:read).
TagsIts tags and resource group.
SettingsThe settings below.

Databases and buckets have the same header and the same last four tabs. Pin to Dashboard in the header adds it, or its traffic or deployments, to one of your dashboards.

Settings

Changing settings needs projects:write. Build settings apply to the next deployment.

General

SettingDefault
Serverless App Service nameShown across Cloud.
Framework presetNext.jsHow the Serverless App Service is built. See Frameworks.
Build commanddetectedStatic Serverless App Services: replaces the detected build script.
Output directorydetectedStatic Serverless App Services: the folder to upload, relative to the root directory.
Install commanddetectedReplaces the detected install for every framework, and runs in the root directory.
Root directory.The folder in the repository that contains the app. Builds run from here.

Turn an override off to go back to detection. The Node.js version is the platform's (22), for builds and server functions. Serverless App Service ID is the id the API and builds (PROJECT_ID) use.

Domains: the Serverless App Service's custom domains (domains:read).

Environment Variables: environment variables (env:read).

Git

  • Connected Repository: pushes to it deploy the Serverless App Service. Connect, change or disconnect it. A repository can be connected to several Serverless App Services; one push then deploys each of them, for example two apps in a monorepo with different root directories.
  • Production Branch (default main): pushes to it deploy to production and update your domains; other branches get previews.
  • Ignored Build Step: which pushes build, from the root directory's si.json watch. See Skipped pushes.

Functions: the Function Region, the location server functions of new deployments run in, and Function Resources: memory (default 1,024 MB) and max duration (default 30 seconds, at most 60). Existing deployments keep what they were created with; the next push builds and applies a change. Every server function runs arm64 and Node.js 22.

Cron Jobs: the crons the production deployment's si.json declares, their next run and last result, and pausing. See Crons.

Deployment Protection: require a sign-in on deployment URLs, and a bypass secret for automation. See Deployment protection.

Advanced

  • Slug: changing it changes the production hostname and the hostnames of new deployments. The new production hostname serves right away and the old one stops.
  • Transfer Serverless App Service: moves the Serverless App Service to another organization where you have org:write (needed in both). Deployments, domains, environment variables (re-encrypted for the new organization) and crons move with it. The repository stays and is disconnected, linked databases and buckets must be unlinked first, and the target organization can't have a Serverless App Service with the same slug.
  • Delete Serverless App Service: removes the Serverless App Service with its deployments, server functions, build outputs and caches, domains (routes and certificates), environment variables and crons. Linked databases and buckets are unlinked, not deleted, and the repository is kept. Can't be undone.

Transfer and delete wait until no deployment is in progress.

Frameworks

FrameworkBuildServes
Next.jsOpenNext (@opennextjs/aws 3)A server function (Node.js 22, arm64) for dynamic routes, static files from the edge.
StaticYour build script, if anyFiles only.
Node.js serverYour build script, if anyA server function (Node.js 22, arm64) running your server behind the AWS Lambda Web Adapter; every request, files included, goes to it.

See The build pipeline for what each build does.