<br />

> [!NOTE]
> **Note:** If you are deploying a new Python web service to Google Cloud, we recommend getting started with [Cloud Run](https://docs.cloud.google.com/run/docs/quickstarts/build-and-deploy/deploy-python-service).

To deploy your app to App Engine, you must create a Google Cloud project
and your App Engine application resources.

The Google Cloud project is a top-level container that holds your
App Engine application and other Google Cloud resources.

The App Engine application is a resource that you must create to
enable App Engine. The App Engine application resource defines
the region in which you want to run your web service and store its
related settings, credentials, and metadata. Only a single App Engine
application resource can be created per Google Cloud project and the specified
region cannot be changed after those resources are created.

If you already have a Google Cloud project with App Engine and the
Cloud Build API enabled, you can continue to
[Writing Your Web Service](https://docs.cloud.google.com/appengine/docs/standard/python3/building-app/writing-web-service).

## Create a Google Cloud project

1. Run the following `gcloud` command to enable App Engine and create the associated application resources. Note that the [location](https://docs.cloud.google.com/appengine/docs/standard/python3/building-app/creating-gcp-project#creating_a_gcp_project) you select cannot be changed later.

   ```bash
   gcloud app create
   ```
2. Due to [changes in the default
   behavior for how Cloud Build uses service accounts](https://docs.cloud.google.com/build/docs/cloud-build-service-account-updates) in new projects, and [secure-by-default
   organization policy changes](https://docs.cloud.google.com/resource-manager/docs/secure-by-default-organizations), you might need to grant additional roles to your deploying service account. For more information on granting specific roles, see the [troubleshooting guide](https://docs.cloud.google.com/appengine/docs/standard/troubleshooter/deployment#default-sa-permissions).

### App Engine locations

<br />

App Engine is *regional* , which means the infrastructure that runs your apps is
located in a specific region, and Google manages it so that it is available
redundantly across
[all of the zones within that region](https://docs.cloud.google.com/docs/geography-and-regions).

Meeting your latency, availability, or durability requirements are primary
factors for selecting the region where your apps are run. You can generally
select the region nearest to your app's users, but you should consider [the
locations where App Engine is available](https://cloud.google.com/about/locations/#region)
as well as the [locations](https://cloud.google.com/about/locations/#region) of the other
Google Cloud products and services that your app uses. Using services
across multiple locations can affect your app's latency as well as its
[pricing](https://cloud.google.com/appengine/pricing).

You cannot change an app's region after you set it.

> [!NOTE]
> **Note:** Two locations, which are called `europe-west` and `us-central` in App Engine commands and in the Google Cloud console, are called `europe-west1` and `us-central1`, respectively, elsewhere in Google documentation.

If you already created an App Engine application, you can view its
region by doing one of the following:

- Run the `gcloud app describe` command.

- Open the
  [App Engine Dashboard in the Google Cloud console](https://console.cloud.google.com/appengine).
  The region appears near the top of the page.

<button class="devsite-dialog-close">OK</button>

## Next steps

Now that your Google Cloud project is set up, you're ready to
write a basic web service.