Stay organized with collections
Save and categorize content based on your preferences.
An App Engine app is configured using an app.yaml
file, that contains the runtime, handlers, scaling, and other general settings
including environment variables.
About app.yaml files
You can specify the runtime configuration for your Go 1.12+ app,
including versions and URLs, in the app.yaml file. This file acts as a deployment descriptor of a specific
service
version.
You must first create the app.yaml file for the default service of your app
before you can create and deploy app.yaml files for additional services.
Generally, your app.yaml file requires only the runtime element for a simple
Go 1.12+ app in the standard environment, for
example:
runtime:go125
App Engine provides default values for all other settings, including
the F1 instance class, which
determines the memory and CPU resources that are available to your app, and
automatic scaling,
which controls how and when new instances of your app are created.
If you need to override the default settings, create an app.yaml file and
specify the settings you need. For more information, see
app.yaml file reference.
You can specify a unique name for your app.yaml files, but then you must
specify the file name with the deployment
command
as well. For example, if you name your app.yaml file service-name-app.yaml
or app.standard.yaml, then you must deploy your app using either:
[[["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-09-04 UTC."],[[["\u003cp\u003eAn App Engine application's configuration, including runtime, handlers, scaling, and environment variables, is defined within the \u003ccode\u003eapp.yaml\u003c/code\u003e file.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eapp.yaml\u003c/code\u003e file is a deployment descriptor for a specific service version and is required for the \u003ccode\u003edefault\u003c/code\u003e service before configuring additional services.\u003c/p\u003e\n"],["\u003cp\u003eA simple Go 1.12+ app typically only requires the \u003ccode\u003eruntime\u003c/code\u003e element in its \u003ccode\u003eapp.yaml\u003c/code\u003e file, as App Engine provides default values for other settings, like instance class and automatic scaling.\u003c/p\u003e\n"],["\u003cp\u003eWhile the file is commonly named \u003ccode\u003eapp.yaml\u003c/code\u003e, alternative names can be used, provided the specific file name is specified in the deployment command.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eapp.yaml\u003c/code\u003e file reference has a complete list of all supported elements in its configuration file.\u003c/p\u003e\n"]]],[],null,["# Defining runtime settings\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\nAn App Engine app is configured using an `app.yaml`\nfile, that contains the runtime, handlers, scaling, and other general settings\nincluding environment variables.\n\n\nAbout `app.yaml` files\n----------------------\n\n\u003cbr /\u003e\n\nYou can specify the runtime configuration for your Go 1.12+ app, including versions and URLs, in the `app.yaml` file. This file acts as a deployment descriptor of a specific [service](/appengine/docs/standard/an-overview-of-app-engine) version.\n\n\u003cbr /\u003e\n\n\nYou must first create the `app.yaml` file for the `default` service of your app\nbefore you can create and deploy `app.yaml` files for additional services.\n\n\nGenerally, your `app.yaml` file requires only the `runtime` element for a simple\nGo 1.12+ app in the standard environment, for\nexample:\n\n\n runtime: go125\n\n\nApp Engine provides default values for all other settings, including\nthe [F1 instance class](/appengine/docs/standard#instance_classes), which\ndetermines the memory and CPU resources that are available to your app, and\n[automatic scaling](/appengine/docs/standard/how-instances-are-managed#scaling_types),\nwhich controls how and when new instances of your app are created.\n\nIf you need to override the default settings, create an `app.yaml` file and\nspecify the settings you need. For more information, see\n[`app.yaml` file reference](/appengine/docs/standard/reference/app-yaml).\n\n\nYou can specify a unique name for your `app.yaml` files, but then you must\nspecify the file name with the [deployment\ncommand](/appengine/docs/standard/testing-and-deploying-your-app)\nas well. For example, if you name your `app.yaml` file `service-name-app.yaml`\nor `app.standard.yaml`, then you must deploy your app using either: \n\n gcloud app deploy service-name-app.yaml\n gcloud app deploy app.standard.yaml\n\nTo learn more about structuring multiple services and `app.yaml` files in your app, see [Structuring web services](/appengine/docs/standard/configuration-files).\n\n\u003cbr /\u003e\n\nAll configuration elements\n--------------------------\n\nFor a complete list of all the supported elements in this configuration file,\nsee the\n[`app.yaml` reference](/appengine/docs/standard/reference/app-yaml)."]]