走ると
gcloud app deploy app.yaml
どのファイルが実際にアップロードされますか?
プロジェクトフォルダーには、デプロイされたアプリケーションに関係のない.git
、.git_ignore
、Makefile
、venv
などのフォルダーとファイルが含まれます。
gcloud app deploy
はどのファイルをアップロードするかをどのように決定しますか?
tl; dr:.gcloudignore
のskip_files
ではなく、app.yaml
ファイルを使用する必要があります。
前の2つの回答では、skip_files
ファイルのapp.yaml
を使用しています。 .gcloudignore
またはupload
コマンドを使用すると作成されるgcloud deploy
があります。デフォルトは、使用している検出された言語によって異なりますが、ここに自動的に作成されます.gcloudignore
は、私のPythonプロジェクト:
# This file specifies files that are *not* uploaded to Google Cloud Platform
# using gcloud. It follows the same syntax as .gitignore, with the addition of
# "#!include" directives (which insert the entries of the given .gitignore-style
# file at that point).
#
# For more information, run:
# $ gcloud topic gcloudignore
#
.gcloudignore
# If you would like to upload your .git directory, .gitignore file or files
# from your .gitignore file, remove the corresponding line
# below:
.git
.gitignore
# Python pycache:
__pycache__/
注:これらのコマンドは、skip_files
が定義されていて.gcloudignore
が存在する場合は機能しません。これは skip_filesdefinition of the
app.yaml`リファレンス には記載されていません。
gcloud
コマンド全体でグローバルに認識されている標準を使用する方が適切であり、AppEngineなしでのみ関連する.gcloudignore
を使用するよりもskip_files
を採用する方が理にかなっています。さらに、リファレンスで言及されている.gitignore
ファイルとほとんど同じように機能します。
.gcloudignoreの構文は、.gitignoreの構文から大きく借用しています。完全なリファレンスについては、 https://git-scm.com/docs/gitignore またはmangitignoreを参照してください。
https://cloud.google.com/sdk/gcloud/reference/topic/gcloudignore
2018年8月の編集:Googleはそれ以来.gcloudignore
を導入しましたが、これは現在好まれています。dalanmillerの回答を参照してください。
skip_files
でapp.yaml
命令を使用しない限り、これらはすべてアップロードされます。 .git
のようなドットのあるファイルはデフォルトで無視されます。さらに追加したい場合は、これらのデフォルトを上書きしていることに注意してください。ほぼ確実にそれらを維持したいと考えています。
skip_files:
- ^Makefile$
- ^venv$
# Defaults
- ^(.*/)?#.*#$
- ^(.*/)?.*~$
- ^(.*/)?.*\.py[co]$
- ^(.*/)?.*/RCS/.*$
- ^(.*/)?\..*$
静的ハンドラーを使用する場合は、別の場所にアップロードされることにも注意してください。静的ファイルはCDNに送信され、言語のランタイムでは利用できません(ただし、それを回避する方法もあります)。
必ずドキュメントをお読みください。
https://cloud.google.com/appengine/docs/standard/python/config/appref#skip_files
Gcloud app deployは、アップロードするファイルをどのように決定しますか?
そうではありません。デフォルトですべてをアップロードします。別の応答で述べたように、app.yamlの skip_files セクションを次のように使用できます。
skip_files:
- ^(.*/)?#.*#$
- ^(.*/)?.*~$
- ^(.*/)?.*\.py[co]$
- ^(.*/)?.*/RCS/.*$
- ^(.*/)?\..*$
- ^(.*/)?\.bak$
- ^\.idea$
- ^\.git$
--verbosity
パラメータを使用して、デプロイされているファイルを確認することもできます。つまり、gcloud app deploy app.yaml --verbosity=debug
またはgcloud app deploy app.yaml --verbosity=info
ドキュメントごと です。