Migrating from Application Motor Users to Cloud Identity Platform (Module 21)

Posted by Wesley Chun (@wescpy), Developer Advocate, Google Cloud
How to migrate the App Engine People to Cloud Identity System

Understanding the over-all migration

General, Module 21 functions major changes to the Module 20 sample application, utilizing a go from Application Engine bundled services (NDB & People) to standalone Cloud services (Cloud Datastore & Identity Platform). Identification System isn’t going to know nearly anything about App Engine admins, so that need to be built, demanding the use of the Cloud Resource Manager API. Apps dependent on Python 2 have more expected updates. Let’s talk about in a little bit extra depth.

Migration “elements”

The adhering to changes to the sample app are expected:

  • Migrate from Application Motor Buyers (server-facet) to Cloud Id System (consumer-aspect)

  • Migrate from App Motor NDB, the other bundled company employed in Module 20, to Cloud NDB (calls for use of the Cloud Datastore API)
  • Use the Cloud Useful resource Manager* (by way of its API) to fetch the Cloud project’s IAM make it possible for policy to collate the established of App Engine admin buyers for the application.
  • Use the Firebase Admin SDK to validate whether the person is an App Engine admin
  • Migrate from Python 2 to 3 (and perhaps again to Python 2 [more on this below])


*At the time of this crafting, the Useful resource Manager documentation only characteristics setup instructions for accessing the API from the decrease-stage Google APIs consumer library somewhat than the Source Supervisor consumer library. To discover how to set up the latter, go to the Resource Manager shopper library documentation instantly. The reduce-level consumer library should only be made use of in instances when a Cloud shopper library will not exist or will not have the attributes your application requires. Just one this sort of use circumstance is Python 2, and we will be covering that soon.


Shift from App Engine bundled expert services to standalone Cloud products and services

The NDB to Cloud NDB migration is similar to the Module 2 migration articles, so it can be not coated in-depth listed here in Module 21. The main focus is on switching to Id Platform to proceed supporting user logins as well as utilizing use of the Useful resource Supervisor and Firebase Admin SDK to establish a proxy for recognizing App Engine admin end users as offered by the Consumers support. Under is pseudocode implementing the vital adjustments to the primary application in which new or updated strains of code are bolded:

Table showing changes in code 'Before'(Module 20) and 'After'(Module 21)
Migrating from Application Motor People to Cloud Identification System(click on to enlarge)

The crucial dissimilarities to observe:

  1. The server-aspect End users company code vanishes from the major software, transferring into the (consumer-facet) world wide web template (not proven here).
  2. Practically all of the new code in the Module 21 application earlier mentioned is for recognizing App Engine admin customers. There are no improvements to application functions or info styles other than Cloud NDB necessitating use of Python context supervisors to wrap all Datastore code (utilizing Python with blocks).

Total versions of the application right before and following the updates can be observed in the Module 20 (Python 2) and Module 21 (Python 3) repo folders, respectively. In addition to the video, be guaranteed to verify out the Identification System documentation as well as the Module 21 codelab which prospects you stage-by-step as a result of the migrations talked over.

Apart from the vital coding variations as nicely as transferring from server-side to customer-facet, note that the Customers support use is covered by Application Engine’s pricing product while Identity System is an impartial Cloud assistance billed by MAUs (month-to-month active consumers), so expenses need to be taken into account if migrating. Additional facts can be found in the Identification System pricing documentation.

Python 2 concerns

With the sunset of Python 2, Java 8, PHP 5, and Go 1.11, by their respective communities, Google Cloud has assured consumers by expressing ongoing extensive-term support of these legacy Application Engine runtimes, together with maintaining the Python 2 runtime. So though there is no latest requirement for customers to migrate, developers by themselves are expressing curiosity in updating their programs to the most up-to-date language releases.
The major Module 21 migration instantly incorporates a port from Python 2 to 3 as that’s exactly where most builders are headed. For all those with dependencies necessitating remaining on Python 2, some additional effort is demanded:

The codelab handles this backport in-depth, so test out the unique portion for Python 2 users if you might be in this predicament. If you really don’t want to consider about it, just head to the repo for a doing the job Python 2 version of the Module 21 application.


Module 21 options migrations of App Motor bundled services to appropriate standalone Cloud expert services. Whilst we endorse customers modernize their Application Motor apps by relocating to the most up-to-date choices from Google Cloud, these migrations are not demanded. In Drop 2021, the Application Motor group extended help of numerous of the bundled companies to 2nd era runtimes (that have a 1st generation runtime), indicating you you should not have to migrate to standalone providers ahead of porting your app to Python 3. You can keep on applying App Motor NDB and People in Python 3 so lengthy as you retrofit your code to obtain bundled companies from next-technology runtimes. Then really should you choose to migrate, you can do so on your personal timeline.

If you might be using other App Engine legacy solutions be certain to check out the other Migration Modules in this sequence. All Serverless Migration Station articles (codelabs, videos, supply code [when available]) can be accessed at its open resource repo. While our content material to begin with focuses on Python consumers, the Cloud workforce is working on covering other language runtimes, so stay tuned. For added video information, test out our broader Serverless Expeditions collection.

Source connection

Add a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.