App Engine flexible environment for Node.js release notes

You can see the latest product updates for all of Google Cloud on the Google Cloud page, browse and filter all release notes in the Google Cloud console, or programmatically access release notes in BigQuery.

To get the latest product updates delivered to you, add the URL of this page to your feed reader, or add the feed URL directly.

November 19, 2024

July 30, 2024

In the App Engine page in the Google Cloud console, you can now filter your existing App Engine versions by runtime lifecycle stages. After you apply this filter, the console displays a warning icon for App Engine versions that are approaching end of support, have reached end of support, are deprecated, and are decomissioned.

July 12, 2024

Deployments for new projects might be impacted from the following changes to org policies:

  • Starting in May 2024, Google Cloud enforces secure-by-default organization policies for all organization resources. This policy prevents App Engine from granting the Editor role to the App Engine default services accounts by default.
  • Starting in June 2024, Cloud Build has changed the default behavior for how Cloud Build uses service accounts in new projects. This change is detailed in Cloud Build Service Account Change. As a result of this change, new projects deploying versions for the first time may be using the default App Engine service account with insufficient permissions for deploying versions.

If you are impacted by this change, you can do the following:

  • Review the Cloud Build guidance on changes to the default service account and opt out of these changes.
  • Grant the Editor role to the App Engine default service account.

July 10, 2024

Node.js version 16 and earlier have reached end of support. You cannot re-deploy versions that use runtimes after their end of support date. We recommend that you upgrade your app to use the latest version of Node.js.

May 17, 2024

Node.js .22 is now available in preview.

December 21, 2023

A warning message now appears before you publish a container image to a public repository.

August 07, 2023

Accessing a service that's prohibited by the Internal or Internal and Cloud Load Balancing ingress setting now results in a 404 rather than 403 error code.

June 26, 2023

Node.js 20 is now generally available. Note that Node.js 20 enters long-term support (LTS) in October and is the Node.js "Current" version until that time. We encourage you to explore the new features and benefits included in this release to evaluate their potential impact on your applications. For more information, see the Node.js 20 announcement .

June 01, 2023

For Node.js runtimes version 18 and version 20 (preview), you can use the Pnpm package manager to configure dependencies for Node.js runtimes. Learn how to configure your runtime.

May 22, 2023

Node.js 20 is now available in preview. Note that Node.js 20 enters long-term support (LTS) in October and is the Node.js "Current" version until that time. We encourage you to explore the new features and benefits included in this release to evaluate their potential impact on your applications. For more information, see the Node.js 20 announcement .

April 11, 2023

Node.js 18 is now generally available. This version requires you to specify an operating system version in your app.yaml. Learn more.

March 24, 2023

You can now use ssh to log in to App Engine flexible environment instances that use only internal IP addresses.

February 28, 2023

The Node.js 18 runtime is now available in preview, and is built on a modern and secure operating system (Ubuntu 22). This new runtime version uses Google Cloud's buildpacks and requires updates to your app.yaml. Learn more.

December 13, 2022

You can now use any configured service account in your Cloud project as the app-level default service account, while creating and updating your App Engine applications.

November 09, 2022

The option to set IP mode to internal for App Engine flexible environment instances is now generally available.

May 23, 2022

You can now disable external ephemeral IP addresses for App Engine Flex services. Read our documentation to learn how. This feature is at the Preview launch stage.

May 18, 2022

Specifying a user-managed service account for each App Engine version during deployment is now generally available.

July 19, 2021

Specifying a user-managed service account for each App Engine version during deployment is now available in preview. This feature lets you grant different privileges to each version, based on the specific tasks it performs, and avoid granting more privileges than necessary.

June 30, 2021

Requests from internal services to the App Engine flexible environment no longer originate from 10.0.0.1. The IP ranges are as follows:

  • Cron requests from newly created or updated App Engine Cron jobs sent to the App Engine flexible environment now come from 0.1.0.2. For Cron jobs created with older gcloud versions (earlier than 326.0.0), Cron requests will come from 0.1.0.1. Previously, these requests only came from both 0.1.0.1 and 10.0.0.1.
  • For other Cloud Scheduler jobs and Cloud Tasks queues (including App Engine Task Queues), requests sent to the App Engine flexible environment now only come from 0.1.0.2. Previously, these requests came from both 0.1.0.2 and 10.0.0.1.
  • For URL Fetch, requests sent to the App Engine flexible environment now only come from 0.1.0.40. Previously, these requests came from both 0.1.0.40 and 10.0.0.1.

For more information, see Understanding the App Engine firewall.

June 14, 2021

App Engine is now available in the us-west1 (Oregon), asia-southeast1 (Singapore), and asia-east1 (Taiwan) regions.

April 13, 2021

App Engine is now available in the europe-central2 region (Warsaw).

November 12, 2020

You can use network ingress controls so your app only receives requests that are sent from your project's VPC or that are routed through the Cloud Load Balancing load balancer. This feature is now generally available.

September 25, 2020

You can use network ingress controls so your app only receives requests that are sent from your project's VPC or that are routed through the Cloud Load Balancing load balancer.

July 08, 2020

External HTTP(S) Load Balancing is now supported for App Engine via Serverless network endpoint groups. Notably, this feature allows you to use Cloud CDN with App Engine.
This feature is available in Beta.

June 08, 2020

App Engine is now available in the asia-southeast2 region (Jakarta).

May 14, 2020

To get a fine-grained view of billing data for each resource used by your App Engine services, you can apply labels to the services, export your billing data to BigQuery, and run queries. For more information, see Labeling App Engine resources.

April 20, 2020

App Engine is now available in the us-west4 region (Las Vegas, NV).

April 13, 2020

Quotas for sockets have been removed. There is no longer a limit on the number of socket connections or the amount of data you can send and receive through a socket.

March 13, 2020

App Engine is now available in the asia-northeast3 region (Seoul).

March 06, 2020

App Engine is now available in the us-west3 region (Salt Lake City, Utah).

February 11, 2020

App Engine is changing the URLs that you use to send requests to your apps. URLs now include a region ID to help Google route your requests more efficiently and reliably. For example, an app can receive requests at https://PROJECT_ID.REGION_ID.r.appspot.com. This new URL is optional for existing apps and is provided for all new apps.

To ensure a smooth transition, we are slowly updating App Engine to use region IDs. If we haven't updated your Google Cloud project yet, you won't see a region ID for your app. Since the ID is optional for existing apps, you don't need to update URLs or make other changes once the region ID is available for your existing apps.

April 18, 2019

  • App Engine is now available in the asia-northeast2 region (Osaka, Japan).

April 15, 2019

  • App Engine is now available in the europe-west6 region (Zürich, Switzerland).

April 09, 2019

Cloud Tasks is now GA and can be used to set up tasks to be performed asychronously, outside of user requests.

March 04, 2019

Cloud Scheduler is now GA and can be used to set up scheduled units of work (cron jobs).

January 07, 2019

October 22, 2018

  • App Engine is now available in the asia-east2 region (Hong Kong).

July 10, 2018

  • App Engine is now available in the us-west2 region (Los Angeles).

May 04, 2018

  • Applications in the App Engine flexible environment currently use a Debian 8 "Jessie" operating system. The Debian 8 "Jessie" OS will lose full support from the Debian maintainers in June 2018. In advance of this change, Google will migrate customers to an Ubuntu-based OS starting on May 30, 2018. To update your application to the Ubuntu 16.04 OS, re-deploy your application after May 30, 2018.

    If for some reason you need to opt-out of this automatic upgrade, you can pin your application to the old Debian 8 "Jessie" OS.

January 10, 2018

  • App Engine is now available in the northamerica-northeast1 region (Montréal, Canada).

December 14, 2017

October 31, 2017

  • App Engine is now available in the asia-south1 region (Mumbai, India).
  • The Node.js runtime now defaults to the latest Node.js v8 LTS release. If your application is not pinned to a specific version, your runtime will change from Node.js v6 to v8, which might cause issues. To specify a Node.js version, use the engines field in your package.json file.

October 11, 2017

October 02, 2017

  • For the App Engine flexible environment, all responses are now compressed with gzip by default once you redeploy your app. No changes need to be made to your app.yaml file.

September 26, 2017

  • For the App Engine flexible environment, billing increments for instances are reduced from per-minute increments to per-second increments. Additionally, the minimum usage cost for instance resources is reduced from 10 minutes to 1 minute.

September 18, 2017

  • Updated health checks are now the default for new projects. To upgrade a project from legacy health checks, run the command gcloud app update --split-health-checks.

Legacy health checks will no longer be available after September 30th, 2018.

September 13, 2017

  • You can now use managed certificates to add SSL to your custom domain. Once you map your custom domain to your application, App Engine provisions an SSL certificate automatically and handles renewing the certificate before it expires and revoking it if you remove the custom domain. Managed certificates are in beta. For more information, see Securing Custom Domains with SSL.

September 05, 2017

  • App Engine is now available in the southamerica-east1 region (São Paulo, Brazil).

August 23, 2017

August 01, 2017

  • App Engine is now available in the europe-west3 region (Frankfurt, Germany).

July 18, 2017

  • App Engine is now available in the australia-southeast1 region (Sydney, Australia).

July 12, 2017

  • You can now use updated health checks, which allow you to use separate checks to confirm that your instance is running and ready to serve content. You must enable updated health checks, which are currently in Beta. For more information, see Health checks.
  • If you use updated health checks, deployments will fail if your application does not reach a ready state.

June 06, 2017

  • App Engine is now available in the europe-west2 region (London).

May 09, 2017

  • App Engine is now available in the us-east4 region (North Virginia).

April 11, 2017

  • Added information about upgrading from the App Engine Task Queue API in the compat runtimes to using Cloud Tasks in the flexible environment and added information for how to verify requests from the Task Queue API.

March 28, 2017

March 09, 2017

  • The App Engine flexible environment is now generally available (GA). You can run Node.js, Ruby, Python, Java, and Go applications with a 99.95% SLA.
  • The PHP 7 runtime for the App Engine flexible environment is now in Beta.

December 06, 2016

  • New applications that have not been deployed in the flexible environment must specify env: true in the app.yaml file instead of vm:true. Applications that were previously deployed can continue to use vm:true but will need to switch to env:true in the future. For more details, see upgrade guide.

November 15, 2016

There is a new release of the App Engine flexible environment. To choose this environment, use env:flex instead of vm:true in your app.yaml configuration file. You can learn more about the details of this release by visiting the upgrade guide.

This release includes a few key new features:

  • Multi-zonal deployment support.
  • A modern networking stack with increased throughput.
  • Custom machine types.
  • Asia-Northeast1 region availability.

This release also marks the deprecation of a few features:

There are also a few breaking changes:

  • HTTP headers have been changed.
  • Environment variables have been changed.
  • There are multiple changes to the app.yaml schema.

For details and a full list of changes, visit the upgrade guide.

May 02, 2016

  • The Ruby runtime is now available for the App Engine flexible environment.

March 24, 2016

February 03, 2016

  • Container construction choices for Managed VMs

    The gcloud preview app deploy (and mvn gcloud:deploy) commands upload your artifacts to our servers and build a container to deploy your app to the Managed VM environment.

    There are two mechanisms for building the container image remotely. The default behavior is to build the container on a transient Compute Engine Virtual Machine which has Docker installed. Alternatively, you can use the Cloud Build service, which is in Beta. To use the Cloud Build service, follow these steps:

    1. Activate the Cloud Build API for your project.
    2. Use the command gcloud config set app/use_cloud_build True. This will cause all invocations of gcloud preview app deploy to use the service. To return to the default behavior, use the command gcloud config set app/use_cloud_build False.