Most of the functionality provided by the legacy bundled services is now provided by the Cloud Client Libraries. For more information, see the recommended alternatives listed below.
If migrating to an unbundled solution is not an option for your project, then you may be able to continue using legacy bundled services in your apps as a fallback. This approach gives you flexibility to move to unbundled services later in the migration cycle.
Migration paths for App Engine bundled services
You can serve images from Cloud Storage, serve them directly, or use a third-party content delivery network (CDN).
The App Engine Images service also provided functionality to avoid dynamic requests to your application by handling image resizing using a serving URL. If you want similar functionality, you can generate the re-sized images ahead of time and upload them to Cloud Storage for serving. Alternatively, you could use a third-party content delivery network (CDN) service that offers image resizing.
We recommend that you update your app to use Cloud Logging, which supports
features such as viewing logs in the Logs Explorer, downloading logs,
filtering messages by severity, and correlating app messages with specific
requests. Alternatively, if you prefer simplicity over data accuracy, you can write structured logs to
For more information, see
Writing and viewing logs.
To send email, use a third-party mail provider such as SendGrid, Mailgun, or Mailjet. All of these services offer APIs to send emails from applications. A recommended third-party alternative for inbound messaging is not available at this time.
To cache application data, use Memorystore for Redis.
To obtain information and modify your application's running services, use a combination of environment variables and the App Engine Admin API:
|Service information||How to access|
|Current application ID||
|Current project ID||
|Current service name||
|Current service version||
|Current instance ID||
|Default hostname||Admin API
|List of services||Admin API
|List of versions for a service||Admin API
|Default version for a service, including any traffic splits||Admin API
|List of running instances for a version||Admin API
For more information about the data available about your application's running services, see runtime environment.
Host any full-text search database such as Elasticsearch on Compute Engine and access it from your service.
Queue tasks for asynchronous code execution using the Cloud Tasks REST API, RPC API, or the Cloud Client Libraries, and use a App Engine standard service as a Push target. For more information, see Migrating from Task Queues to Cloud Tasks.
In many cases where you might use pull queues, such as queuing up tasks or messages that will be pulled and processed by separate workers, Pub/Sub can be a good alternative as it offers similar functionality and delivery guarantees.
For an alternative to the Users API, use any of the following HTTP-based authentication mechanisms:
- Cloud Identity Platform is based on Firebase Auth and adds a number of enterprise features including multi-factor authentication, OIDC & SAML SSO support, multi-tenancy, 99.95% SLA, and more. For more information, see Differences between Identity Platform and Firebase Authentication. Both these products have significantly more features than the functionality provided by the Users service.
- Firebase Authentication provides authentication using username/password and federated identity using Google, Facebook, Twitter, and more.
- Google Identity Services, provides many options for authentication and authorization of Google user accounts.
- OAuth 2.0 and OpenID Connect provide federated identity from the provider of your choice. Google is an OpenID Connect identity provider. There are also several other providers available.
- Auth0 provides authentication with various identity providers and single sign-on features.