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.
December 21, 2023
A warning message now appears before you publish a container image to a public repository.
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.
February 06, 2020
You can no longer apply new spending limits to projects. Existing spending limits will continue to work. For more information on how you can limit app costs, see Limiting Costs.
December 11, 2019
Serverless VPC Access is now GA.
July 30, 2019
The AppCfg tooling and the legacy standalone App Engine SDK, delivered through the GoogleAppEngineLauncher.dmg
, GoogleAppEngine.msi
, and google_appengine.zip
files, are now deprecated. Google will shut down and remove support on July 30, 2020.
The functionalities of the App Engine SDK is delivered exclusively through Cloud SDK. For more information, see Migrating to Cloud SDK.
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
Serverless VPC Access is now in beta. Serverless VPC Access enables your app to connect to internal resources in your VPC network, such as Compute Engine VM instances, Cloud Memorystore instances, and more.
December 21, 2018
Added select
, mmap
, grp
, fcntl
, spwd
modules to the Python interpreter.
Added fork
, waitpid
, chown
, execv
, fchmod
, fchown
, ftruncate
, kill
, lchown
, lstat
, readline
, setuid
functions to the os
module.
December 14, 2018
The Python 3.7 runtime for the App Engine standard environment is now GA.
December 12, 2018
All apps have been switched to BSD network sockets. No changes to apps are required.
The Sockets API is now GA.
November 16, 2018
nginx is now the default web server. No changes to apps are required.
November 08, 2018
Minor bug fixes.
October 31, 2018
The Python 3 runtime supports recursive entries in the requirements.txt
file.
October 25, 2018
Minor bug fixes.
October 22, 2018
App Engine is now available in the asia-east2
region (Hong Kong).
October 15, 2018
All apps on the Python 2.7 runtime now run in the gVisor sandbox.
All Python 2.7 apps now run on 64-bit Python interpreter.
September 26, 2018
Allow using locally installed grpcio
as a workaround for import failures on dev_appserver.
September 05, 2018
Started rolling out Cloud Datastore Emulator as the default local datastore emulation when using the dev_appserver
local development server.
August 24, 2018
Shutdown of Cloud Endpoints Frameworks v1 is approaching
Cloud Endpoints Frameworks v1 for the App Engine standard environment was deprecated on August 2, 2017. The service is scheduled to be shutdown on September 3, 2018, and the documentation will be removed. To avoid an outage, you must migrate your v1 application. For information on migrating your application to Endpoints Frameworks v2, see the Python Migration Guide.
August 14, 2018
Minor bug fixes.
August 08, 2018
The Python 3.7 runtime for the App Engine standard environment is now in beta.
A list of differences between Python 2.7 and Python 3.7 runtimes is available.
July 12, 2018
Fix a crush that happened when dev_appserver speaked to a running Cloud Datastore Emulator. Previously, the crush happened when the environment variable "DATASTORE_PROJECT_ID" existed in the shell that ran dev_appserver.
The local development server now prints the process ID of the running process on startup. You can use the process ID when debugging your app.
July 10, 2018
App Engine is now available in the us-west2
region (Los Angeles).
July 02, 2018
Fixed a bug in auto scaling configuration where App Engine was aggressively shutting down instances when the max_instances
setting was used.
June 28, 2018
Purged the DATASTORE_PROJECT_ID
environment variable from the local development server (dev_appserver
) process. Now dev_appserver
can run alongside the Cloud Datastore Emulator.
The local development server will now print the process ID of the app process on startup.
June 21, 2018
Minor bug fixes.
May 24, 2018
Migrated SSL library from version 2.7 to version 2.7.11 for all apps. See the Python SSL version 2.7 shutdown docs details.
May 17, 2018
Minor bug fixes.
May 15, 2018
Completed a gradual rollout of an upgrade to the automatic scaling system:
Improved efficiency resulting generally in lower instance cost (up to 6% reduction for many users) and up to 30% reduction for loading requests, which are the first request to a new instance.
New max instances setting allows you to cap the total number of instances to be scheduled.
New min instances setting allows you to specify a minimum number of instance to keep running for your app.
New target CPU utilization setting lets you optimize between latency and cost.
New target throughput utilization setting lets you optimize for the number of concurrent requests at which new instances are started.
No more resident instances in auto scaling. Previously, if you used the min_idle_instances
setting, the minimum idle instances were labelled as Resident in the Cloud Console, with the remainder of the instances labelled as Dynamic. The new scheduler simply labels all instances as Dynamic with auto scaling. However, the underlying behavior remains similar to previous behavior. If you use min_idle_instances
and enable warmup requests, you will see at least that many dynamic instances running even during periods with no traffic.
For more details, see the auto scaling documentation.
April 11, 2018
Python runtime notes
Added PyTz version 2017.3 to the built-in third-party libraries.
April 03, 2018
Minor bug fixes.
January 23, 2018
Fixes the ipaddr library import issue when starting PHP app with the local development server.
December 20, 2017
- Added SetupTools version 36.6.0 to the built-in third-party libraries.
December 14, 2017
Improved access control documentation around deploying apps with IAM roles and service accounts:
December 09, 2017
Known problem: Werkzeug 0.13 update adds a module that is not supported by App Engine that results in a ImportError: cannot import name SpooledTemporaryFile
error. You can downgrade or pin your app to an earlier version of werkzeug to fix the error. See the linked issue for details.
December 05, 2017
For all incoming HTTP requests, dev_appserver.py
now requires that all HTTP requests must have an HTTP Host
header and its value is either localhost
, an IPv4 or IPv6 loopback address, or if specified, the value passed in via --host
. For HTTP/1.0 only, requests with no Host
header are still allowed. To disable host checking, set the --enable_host_checking
flag to false
. However, it is strongly recommended to leave host checking enabled, as it guards against DNS rebinding attacks.
Introduced additional security-header related behavior to the dev_appserver.py
admin console:
* Inbound requests containing an Origin
header are rejected.
* Added the following headers to all responses:
* X-Frame-Options=SAMEORIGIN
* X-XSS-Protection=1; mode=block
* Content-Security-Policy=default-src 'self'; frame-ancestors 'none'
November 15, 2017
Announced the deprecation of the Python SSL library version 2.7. Applications should migrate to use SSL version 2.7.11.
October 31, 2017
App Engine is now available in the asia-south1
region (Mumbai, India).
October 25, 2017
Minor bug fixes
October 11, 2017
Announced general availability of App Engine firewall.
September 21, 2017
Updated pytz
to 2017.2
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.
If you have an existing domain mapping and SSL certificate, then it continues to function as expected. You can also upgrade to managed SSL certificates.
The gcloud
commands and Admin API methods used to map custom domains are now generally available. This includes gcloud domains verify
and apps.authorizedDomains.list
. However, if you want to use managed SSL certificates, use the beta commands and methods that are specified in Securing Custom Domains with SSL.
September 05, 2017
App Engine is now available in the southamerica-east1
region (São Paulo, Brazil).
- Release includes minor bug fixes.
August 28, 2017
This release adds client support for gRPC so that you can connect to gRPC servers from your App Engine application. For more information on how to request and install the grpcio
library, see Using third-party libraries.
This release does not include support for Google Cloud Client Libraries or for gRPC server requests.
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).
June 27, 2017
Added Django v1.11 to the built-in third-party libraries.
June 21, 2017
Added the following new libraries to the built-in third party libraries:
- ujson v1.35
- lxml v3.7.3
- flask v0.12.
Search API: increased the maximum facet discovery value limit to 100.
June 15, 2017
For MySQLdb, you can now use the utf8mb4
character set.
For SSL 2.7.11
, if you don't specify the certificate root path, the default is set to /etc/ca-certificates.crt
.
You can use the PWD module for the Unix password database.
June 06, 2017
App Engine is now available in the europe-west2
region (London).
You can now use the beta-level features in the Admin API and gcloud
command-line tool to create and manage your custom domains and SSL certificates.
May 15, 2017
Updated the Python runtime to Python 2.7.12.
Modified the SSL certificate validation behavior in the SSL module versioned as 2.7.11
to not validate certificates. This behavior can be controlled by an environment variable PYTHONHTTPSVERIFY
, which can be set to 1
to require certificate validation.
To ensure application compatibility, removed the fix for https://bugs.python.org/issue22221 for the tokenizer, which would ensure PEP-263 is correctly handled.
May 09, 2017
App Engine is now available in the us-east4
region (North Virginia).
April 27, 2017
In preparation for the Go 1.8 beta, Go api_version
s are mapped to specific GOROOT
directories.
April 05, 2017
Fixed a bug preventing Server Name Indication (SNI) from working for remote API shell.
March 20, 2017
Support Server Name Indication (SNI) for remote API shell.
January 23, 2017
Fixed a bug that caused the remote_api_shell.py
tool to not work on Cloud Shell.
December 01, 2016
Includes pycrypto update to 2.6.1.
Includes pytz update to 2016.4.
October 27, 2016
The Channel and XMPP services are now deprecated. These services will be turned down on October 31, 2017.
August 01, 2016
Admin API notes * Version 1 of the Admin API is now generally available.
Version 1.9.42
Python 2 runtime notes
- This release does not include a new Python 2 SDK. Python 2 users should continue to use the 1.9.40 SDK.
July 18, 2016
Version 1.9.40 (Version 1.9.39 was skipped).
LeaseTasksByTag requests will be limited to 25 requests per second.
Server Errors and Client Errors now more accurately reflect per-URL status errors in the App Engine dashboard.
New App Engine guided walkthrough in the GCP Console. Pick your preferred language and launch an interactive tutorial directly in the console.
Increases the maximum cron tasks limit to 250.
Python runtime notes
- Python Endpoints accepts all valid Google ID token issuers.
July 01, 2016
Cloud Datastore
New Cloud Datastore Pricing is now in effect.
May 25, 2016
Version 1.9.38 released.
The error returned by URL Fetch for a request to a port outside of the permitted ranges (80-90, 440-450, 1024-65535) will now always return INVALID_URL
as documented.
Cloud Datastore
- When committing a cross-group transaction, version numbers returned for new or updated entities are all the same. With the previous behavior, entities within the same group committed as part of a cross-group transaction, had the same version number, but entities in different groups might have had different version numbers. This change ensures all new and updated entities have an identical version number, regardless of their entity group, when committed as part of a cross-group transaction. As before, entities that are not updated will not have a new version number.
May 04, 2016
Version 1.9.37
General bug fixes and improvements.
Python runtime notes
- Includes a new version of the third_party library "ssl" based on Python 2.7.11. The library can be selected with version: "2.7.11" in the
libraries
section of theapp.yaml
file.
May 02, 2016
App Engine flexible environment
- The Ruby runtime is now available for the App Engine flexible environment.
April 18, 2016
Version 1.9.36
In response to your requests, the App Engine Users API joins the rest of App Engine in supporting IAM roles and group expansion. This means that any user who is a project Owner, Editor or Viewer or an App Engine Admin is considered an "admin" by the Users API, regardless of whether the user was granted the role directly or by membership in a group. * This release populates error details, when available, in error messages associated with the "OverQuota" exception type.
Python runtime notes
- Google no longer accepts quota increase requests for the mail service. Customers should use Sendgrid instead.
March 24, 2016
Version 1.9.35
App Engine Managed VMs is renamed to App Engine flexible environment.
Fixes trace timestamps to match log timestamps.
March 04, 2016
Version 1.9.34
Increases default quota for URL fetch for billed apps. Refer to the Quotas page for details.
February 17, 2016
Version 1.9.33
The URL path "/form" is now allowed and will be forwarded to applications. Previously, this path was blocked.
February 03, 2016
Version 1.9.32
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. 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
.
January 14, 2016
Version 1.9.31
App Engine now supports Google Groups: Adding a Google Group as a member of a project grants the members of the group access to App Engine. For example, if a Google Group is an Editor on a project, all members of the group now have Editor access to the App Engine application.
November 30, 2015
Version 1.9.30
Headers for push queue requests made for Task Queue tasks with no payload will now contain a Content-Length entry set to '0'. Previously headers for such requests contained no Content-Length entry.
Python runtime notes
- Stackdriver Debugger is enabled automatically for Python applications running on App Engine. Try it.
Version 1.9.29
Stop calculating and storing queue depth for non-existent queues, queues marked for deletion, and in the case of queue table outages.
For developers using the endpoints API, added a discoverable boolean parameter to the @Api annotation to allow users to disable API discovery. Using this feature will prevent some client libraries (e.g. JavaScript) and the API Explorer from working, as they depend on discovery.
October 29, 2015
Version 1.9.28
The Prospective Search API, which was deprecated on July 14, 2015, is now restricted to existing users. It will fully shutdown on December 1, 2015.
Improved accuracy of Geo filtering in Search queries.
Python runtime notes
- Allow use of quoted numbers within comparison clauses of Search queries.
- https://issuetracker.google.com/issues/35899722
September 25, 2015
Version 1.9.27
Applications that are newly enabled for billing now default to an unlimited daily budget, and no longer default to a maximum daily budget of $0. This prevents unwanted outages due to running out of budget. To set a ceiling on your application's daily cost, after you enable billing, set a budget in the app engine settings. For more information, see Setting a daily budget.
Datastore
Bugfix: Repeated numeric facets are now allowed.
Faceted Search is now GA.
August 27, 2015
Version 1.9.26
oauth2client library upgraded to version 1.4.2
Adds "show in context" menu for MVM application logs that have thread_id or request_id as a field in their log entry. This allows sorting app logs based on either field.
Capability to provision applications for current load and configure elastic provisioning based on both VM and application level metrics.
Remote API can now be accessed using OAuth2 credentials using https://developers.google.com/identity/protocols/application-default-credentials
Use RequestPayloadTooLargeException for URLFetch requests with payloads that are too large.
August 14, 2015
Version 1.9.25
Added PyAMF version 0.7.2 (Beta).
Admin Console menus start redirecting to GCP Console. Select services such as the Admin Logs will continue to be available in the Admin Console.
Datastore now allows properties to represent the empty list.
Failed tasks in queues configured with a retry_limit
of zero will no longer be retried.