Quickstart using App Engine

Learn how to do the following:

  1. Deploy a Python App Engine application by using Cloud Shell.
  2. View an error in your application using Error Reporting.
  3. Configure Error Reporting to send notifications.

For step-by-step guidance on this task directly in Cloud Console, click Guide me:

Guide me

The following sections take you through the same steps as clicking Guide me.

Before you begin

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud Console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Cloud project. Learn how to confirm that billing is enabled for your project.

  4. Open a Cloud Shell for your project. While it starts, the message Connecting is displayed.

    Open Cloud Shell.

Getting started

In this section, you download and deploy an application to App Engine:

  1. Download and configure the application from the GitHub project python-docs-samples:

    1. Clone the project to your Cloud Shell:

      git clone https://github.com/GoogleCloudPlatform/python-docs-samples

      Git returns a message similar to this:

      git clone https://github.com/GoogleCloudPlatform/python-docs-samples
      Cloning into 'python-docs-samples'...
    2. Create an isolated Python environment and activate it:

      cd python-docs-samples/appengine/standard_python3/hello_world
      virtualenv env -p python3
      source env/bin/activate
    3. Install dependencies:

      pip install -r requirements.txt
  2. Verify that the application installation and configuration are successful:

    1. Run the application:

      python main.py
    2. To view the application on a local web page, click the link displayed in Cloud Shell. The web page displays Hello World!.

    3. To stop your running application, in Cloud Shell enter Ctrl-C.

  3. Upload your application to App Engine:

    gcloud app deploy

    If prompted for a deployment region, select one near you. Enter Y when asked if you want to continue. After a few moments, the upload is complete.

  4. View your application in a browser by running the following command in Cloud Shell:

    gcloud app browse

    If the Cloud SDK can't find your browser, the previous command displays an error message and a link. Click the displayed link. The message Hello, World! is displayed in the browser.

Introduce an error

In the next steps, you create an error that Error Reporting catches and displays:

  1. Edit main.py and change

    return 'Hello World!


    return 'Hello World!' + 1000

    When executed, this change causes a Python TypeError exception because it is illegal to concatenate a string and an integer.

  2. Upload the modified application to App Engine:

    gcloud app deploy
  3. Return to the browser tab containing the running application, and reload the page. Because of your change, instead of the page displaying Hello, World!, it displays an error message:

    Internal Server Error
    The server encountered an internal error and was unable to complete your
    request. Either the server is overloaded or there is an error in the

    If you don't see this message, wait a minute and reload it again. It might take a few moments before the new version is activated.

View the error in Error Reporting

The error message displayed in the web page isn't that useful because it doesn't provide enough details to resolve the issue. However, if you use Error Reporting, you can get detailed information about the error and the number of times it has occurred:

  1. Go to Error Reporting:

    Go to Error Reporting

    The Error Reporting dashboard displays a summary of each error found and the number of occurrences of each error. By default, Error Reporting automatically reloads the error list every 5 seconds, but to force an immediate reload click Auto reload.

    For this quickstart, the dashboard displays one error with the description "TypeError: can only concatenate str (not "int") to str". You may have to wait a minute and refresh the page to see the error:

    The user interface showing the test error.

  2. Generate the same error again by reloading the application in your browser.

    Because the stack trace of the new error is similar to the first error, Error Reporting batches them together by updating the number of Occurrences and the time graph:

    The user interface showing batched occurences of
   the test error.

  3. To view the error details page, which contains all of the available information about an error, including links to the source code, click the error name:

    The user interface showing the
     test error details page.

Configure notifications

You can configure Error Reporting to notify you when a new type of error arrives. Notifications aren't sent when there are new occurrences of existing errors:

  1. Go to Error Reporting:

    Go to Error Reporting

  2. To enable email notifications, click More and select Turn on new error notifications for project from the drop-down list.

  3. In main.py, change

    return 'Hello World!` + 1000


    return 'Hello World!'.punctuate()

    When executed, this change causes a Python AttributeError exception because the attribute punctuate() doesn't exist.

  4. Upload the modified file to App Engine:

    gcloud app deploy
  5. Generate the new error by reloading the application in your browser.

    • The browser displays the message Internal Server Error.

    • The Error Reporting dashboard displays an error with the description "AttributeError: 'str' object has no attribute 'punctuate'.

    • Your email includes a new notification that contains details about the error, including the:

      • Project ID
      • An error description, in this case, it includes "AttributeError: 'str' object has no attribute 'punctuate'
      • Service
      • Application version

Clean up

To avoid incurring charges to your Google Cloud account for the resources used in this quickstart, follow these steps.

  1. In the Cloud Console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

What's next