App Engine や Cloud Function や Firebase プロジェクトのデプロイ時などでしばしばやる。 TypeScirpt などトランスパイルが必要な言語をデプロイする際に、実行に必要ないファイルをたくさんアップロードしていることがある。
.gcloudignore
で全部 ignore して、必要な特定のファイルやディレクトリだけ指定して反映すると良い。
# ignore all /* # upload list !/package.json !/yarn.lock !/build/**
gcloud topic gcloudignore | Cloud SDK のドキュメント | Google Cloud
アップロードされるファイルを確認する
.gcloudignore
を評価した結果、gcloud app deploy
や gcloud functions deploy
で実際に何がアップロードされているのかは意外とぱっと確認できない。
実際にデプロイしてみて、Cloud Functions であればコンソールの ソース
タブから、App Engine なら Cloud Debugger のファイルリストを眺めて確認してる(source-context.json
やデプロイ時に GCP 側で install した node_modules
が含まれたりしてしまうが)。
TypeScript プロジェクトでなんかうまく動かね〜〜ってときもこうやって確認する。
大抵自動生成された .gcloudignore
に #!include:.gitignore
と書いてあって、.gitignore
でビルド結果を ignore してるんじゃないでしょうか。