Configuring your App with app.yaml

A Go app in App Engine is configured through a file named app.yaml, that contains CPU, memory, network and disk resources, scaling, and other general settings including environment variables.

About app.yaml files

Specify all the runtime configuration for your Go app, including versions and URLs, in the app.yaml file. An individual app.yaml file acts as a descriptor for the deployment of a version of a service . 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.

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.flexible.yaml, then you must deploy your app using either:

gcloud app deploy service-name-app.yaml
gcloud app deploy app.flexible.yaml
To learn more about structuring multiple services and app.yaml files in your app, see Structuring Web Services. Depending on the complexity of your app's service, you might only need to define a few elements in the corresponding app.yaml. The following example demonstrates what a simple Go app might require in the flexible environment:

runtime: go
env: flex

# This sample incurs costs to run on the App Engine flexible environment. 
# The settings below are to reduce costs during testing and are not appropriate
# for production use. For more information, see:
# https://cloud.google.com/appengine/docs/flexible/python/configuring-your-app-with-app-yaml
manual_scaling:
  instances: 1
resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10
The syntax of the app.yaml file is in the YAML format.

All configuration elements

For a complete list of all the supported elements in this configuration file, see the app.yaml reference.

Was this page helpful? Let us know how we did:

Send feedback about...

App Engine flexible environment for Go