I don't understand the difference between
goapp deploy -application <YOUR_PROJECT_ID> myapp/
and
appcfg.py -A <YOUR_PROJECT_ID_> -V v1 update myapp/
when trying to deploy my app in google app engine. Can somebody enlighten me please?
Documented in Uploading, Downloading, and Managing a Go App:
goapp deploy
wraps theappcfg.py
python tool provided in the SDK. You can also invoke this tool directly if you need greater control over the deployment.
goapp deploy
is equivalent to appcfg.py update myapp/
.
These commands get application ID and other configuration from app.yaml
automatically. You can use -application
param of goapp
, or -A
of appcfg.py
to override the application ID.
So goapp deploy
calls appcfg.py
under the hood, it is a convenient method to hide appcfg.py
.
goapp deploy -application <YOUR_PROJECT_ID> myapp/
Deploys the application located in the myapp
folder. Configuration will be read from the app.yaml
file that must be at myapp/app.yaml
. The command also overrides the application ID (if present in app.yaml
), and <YOUR_PROJECT_ID>
will be used instead.
appcfg.py -A <YOUR_PROJECT_ID> -V v1 update myapp/
This also deploys the application, but the -V
overrides the version that may be present in myapp/app.yaml
, and will use the version v1
. -A
is used to override the ID from app.yaml
, will be <YOUR_PROJECT_ID>
in this case.
goapp
is a general tool for the whole Go-on-App-Engine workflow from build to deployment; you can use the same tool to install dependences (get
), build
your app, run locally (serve
) and then deploy
it (as well as run tests, format code, etc).
Some of these wrap other tools: goapp fmt
probably just wraps gofmt
, whilst goapp deploy
just wraps appcfg.py update
(see docs)