Stay organized with collections
Save and categorize content based on your preferences.
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.
Create a Google Cloud project
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.
In the Google Cloud console, on the project selector page,
select or create a Google Cloud project.
To initialize the gcloud CLI, run the following command:
gcloudinit
Run the following gcloud command to enable App Engine and
create the associated application resources. Note that the
location you
select cannot be changed later.
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.
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
as well as the locations 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.
You cannot change an app's region after you set it.
If you already created an App Engine application, you can view its
region by doing one of the following:
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-25 UTC."],[[["\u003cp\u003eGoogle Cloud projects are top-level containers for App Engine applications and other Google Cloud resources.\u003c/p\u003e\n"],["\u003cp\u003eApp Engine applications are regional resources that define where your web service runs, and only one can be created per Google Cloud project.\u003c/p\u003e\n"],["\u003cp\u003eWhen creating an App Engine application, the specified region is permanent and cannot be changed later.\u003c/p\u003e\n"],["\u003cp\u003eIf deploying a new Python web service, consider Cloud Run as an alternative to App Engine.\u003c/p\u003e\n"],["\u003cp\u003eApp Engine applications region can be found by running \u003ccode\u003egcloud app describe\u003c/code\u003e or through the App Engine Dashboard in the Google Cloud Console.\u003c/p\u003e\n"]]],[],null,["# Create your project\n\n\u003cbr /\u003e\n\n| **Note:** If you are deploying a new Python web service to Google Cloud, we recommend getting started with [Cloud Run](/run/docs/quickstarts/build-and-deploy/deploy-python-service).\n\nTo deploy your app to App Engine, you must create a Google Cloud project\nand your App Engine application resources.\n\nThe Google Cloud project is a top-level container that holds your\nApp Engine application and other Google Cloud resources.\n\nThe App Engine application is a resource that you must create to\nenable App Engine. The App Engine application resource defines\nthe region in which you want to run your web service and store its\nrelated settings, credentials, and metadata. Only a single App Engine\napplication resource can be created per Google Cloud project and the specified\nregion cannot be changed after those resources are created.\n\nIf you already have a Google Cloud project with App Engine and the\nCloud Build API enabled, you can continue to\n[Writing Your Web Service](/appengine/docs/standard/python3/building-app/writing-web-service).\n\nCreate a Google Cloud project\n-----------------------------\n\n- Sign in to your Google Cloud account. If you're new to Google Cloud, [create an account](https://console.cloud.google.com/freetrial) to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.\n- In the Google Cloud console, on the project selector page,\n select or create a Google Cloud project.\n\n | **Note**: If you don't plan to keep the resources that you create in this procedure, create a project instead of selecting an existing project. After you finish these steps, you can delete the project, removing all resources associated with the project.\n\n [Go to project selector](https://console.cloud.google.com/projectselector2/home/dashboard)\n-\n [Verify that billing is enabled for your Google Cloud project](/billing/docs/how-to/verify-billing-enabled#confirm_billing_is_enabled_on_a_project).\n\n-\n\n\n Enable the Cloud Build API.\n\n\n [Enable the API](https://console.cloud.google.com/flows/enableapi?apiid=cloudbuild.googleapis.com)\n-\n [Install](/sdk/docs/install) the Google Cloud CLI.\n\n- If you're using an external identity provider (IdP), you must first\n [sign in to the gcloud CLI with your federated identity](/iam/docs/workforce-log-in-gcloud).\n\n-\n To [initialize](/sdk/docs/initializing) the gcloud CLI, run the following command:\n\n ```bash\n gcloud init\n ```\n\n- In the Google Cloud console, on the project selector page,\n select or create a Google Cloud project.\n\n | **Note**: If you don't plan to keep the resources that you create in this procedure, create a project instead of selecting an existing project. After you finish these steps, you can delete the project, removing all resources associated with the project.\n\n [Go to project selector](https://console.cloud.google.com/projectselector2/home/dashboard)\n-\n [Verify that billing is enabled for your Google Cloud project](/billing/docs/how-to/verify-billing-enabled#confirm_billing_is_enabled_on_a_project).\n\n-\n\n\n Enable the Cloud Build API.\n\n\n [Enable the API](https://console.cloud.google.com/flows/enableapi?apiid=cloudbuild.googleapis.com)\n-\n [Install](/sdk/docs/install) the Google Cloud CLI.\n\n- If you're using an external identity provider (IdP), you must first\n [sign in to the gcloud CLI with your federated identity](/iam/docs/workforce-log-in-gcloud).\n\n-\n To [initialize](/sdk/docs/initializing) the gcloud CLI, run the following command:\n\n ```bash\n gcloud init\n ```\n\n1. Run the following `gcloud` command to enable App Engine and create the associated application resources. Note that the [location](#creating_a_gcp_project) you select cannot be changed later. \n\n ```bash\n gcloud app create\n ```\n2. Due to [changes in the default\n behavior for how Cloud Build uses service accounts](/build/docs/cloud-build-service-account-updates) in new projects, and [secure-by-default\n organization policy changes](/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](/appengine/docs/standard/troubleshooter/deployment#default-sa-permissions).\n\n### App Engine locations\n\n\u003cbr /\u003e\n\nApp Engine is *regional* , which means the infrastructure that runs your apps is\nlocated in a specific region, and Google manages it so that it is available\nredundantly across\n[all of the zones within that region](/docs/geography-and-regions).\n\nMeeting your latency, availability, or durability requirements are primary\nfactors for selecting the region where your apps are run. You can generally\nselect the region nearest to your app's users, but you should consider [the\nlocations where App Engine is available](/about/locations#region)\nas well as the [locations](/about/locations#region) of the other\nGoogle Cloud products and services that your app uses. Using services\nacross multiple locations can affect your app's latency as well as its\n[pricing](/appengine/pricing).\n\nYou cannot change an app's region after you set it.\n| **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.\n\nIf you already created an App Engine application, you can view its\nregion by doing one of the following:\n\n- Run the `gcloud app describe` command.\n\n- Open the\n [App Engine Dashboard in the Google Cloud console](https://console.cloud.google.com/appengine).\n The region appears near the top of the page.\n\nOK\n\nNext steps\n----------\n\nNow that your Google Cloud project is set up, you're ready to\nwrite a basic web service."]]