Hi,

A newbie to App Engine here. I started an App Engine standard app using 
Django (Python3.7). Everything worked well in the first few deploys using 
`gcloud app deploy app.yaml`: the number of files being uploaded to Google 
Cloud Storage seemed like the number I have in my directory (roughly 150 
including static files).

Sometimes the deploy would upload less number of files, and it seems like a 
nice feature that files that aren't updated don't need to be uploaded again 
(saving space, network traffic, etc).

Around this time I switched to using Github, and added triggers to deploy 
to gcloud using Cloud Build. One of the steps is to run collectstatic to 
collect all static files into a directory so they can be uploaded. But then 
I found out that the number of files to upload shot up in the thousands, 
likely because I was installing some libraries and those were being 
uploaded too. 

Separately, I read on this page 
<https://cloud.google.com/appengine/docs/standard/python3/using-cloud-storage> 
I 
found that there's some additional storage buckets: 
staging.<project>.appspot.com, <project>.appspot.com and 
us.artifacts.<project>.appspot.com. There's no information on these 
buckets, but seems like staging bucket is harmless to delete once a 
deployment happens per the page linked earlier in this paragraph. Then 
there's also tons of temporary containers that show up in GCR, so I 
proceeded to empty those out along with the staging bucket in GCS.

Now I'm running into a scenario where no matter what, `app deploy` always 
uploads all the files, instead of incrementally uploading them, and 
skipping where appropriate.

Questions:
1) Are there any docs on understanding these extraneous storage points (GCS 
buckets, GCR)? These take up space, and that's not ideal for a free trial 
limit (docker images in GCR are around 450MB each! Staging bucket seems to 
be only 22MB which is nice though.
2) Why would my files always be uploaded vs being skipped if they're not 
changed?
3) After deleting files in the buckets and GCR, I tried to upload the 
libraries once thinking the app needs them to be there at least once. But 
when I didn't specify them in the next deploy, my app failed to find the 
libraries (like Django), which means they weren't installed. So how is 
Django installed the very first time I ran `gcloud app deploy`? And what 
did I do that broke this for me and requires me to upload all library files 
on each deploy now?
4) What is the best way to run collectstatic in a cloudbuild trigger if not 
installing the libraries in requirements.txt? Because this is when 3000+ 
files were uploaded the first time.

I realized it's a bit confusing to follow all that, but let's start there 
and I can provide more information as necessary. There's a real lack of 
docs on these internals of app engine.

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-appengine+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/8067c317-907d-4821-8abe-5eb58f3a9f98%40googlegroups.com.
  • [google-appengin... Nikhil Tibrewal
    • [google-app... 'David (Cloud Platform Support)' via Google App Engine
      • [google... Nikhil Tibrewal
        • [go... 'barrado' via Google App Engine
          • ... Nikhil Tibrewal
            • ... 'Katayoon (Cloud Platform Support)' via Google App Engine

Reply via email to