Python gcloud应用程序部署:此部署的文件太多
当我试图通过gcloud部署我的GAE应用程序时,我遇到了以下错误Python gcloud应用程序部署:此部署的文件太多,python,google-app-engine,flask,Python,Google App Engine,Flask,当我试图通过gcloud部署我的GAE应用程序时,我遇到了以下错误 Updating service [default]...failed. ERROR: (gcloud.app.deploy) Error Response: [400] This deployment has too many files. New versions are limited to
Updating service [default]...failed.
ERROR: (gcloud.app.deploy) Error Response: [400] This deployment has too many files. New versions are limited to 10000 files for this app.
Details: [
[
{
"@type": "type.googleapis.com/google.rpc.BadRequest",
"fieldViolations": [
{
"description": "This deployment has too many files. New versions are limited to 10000 files for this app.",
"field": "version.deployment.files[...]"
}
]
}
]
]
有没有办法解决这个问题 如果您尝试部署的服务中的文件配额确实超过了10000个,那么您可能需要相应地减少数量 其他尝试事项:
- 您可能会获得配额增加,请参阅
- 删除实际上不需要的任何文件,或者在部署期间跳过它们,或者,对于更新的CloudSDK版本,请参阅 <> LI>如果你有很多静态文件,考虑将它们(其中的一些)移动到GCS,请参阅
- 将服务拆分为多个较小的服务-每个服务都有自己的10000个文件限制
假设您实际上没有达到文件配额,则错误通常表示您的应用程序目录中有循环/循环引用符号链接。这也可以解释你在这篇文章的评论中提到的路径:。您只需修复有问题的符号链接。同样,一个简单/一致的目录结构有助于防止此类问题。
gcloud app deploy
编写一个日志文件,并告诉您该日志在输出的早期位置。检查日志。它会告诉你上传的内容
我看到人们陷入困境的两种常见方式是
venv
(或.venv
,如果您选择了该名称)添加到跳过文件中
.git
添加到跳过_文件
对于python runtime 3.7,可以通过将这些文件添加到.gcloudingore来解决此错误。yaml我可以通过将google cloud sdk文件夹添加到项目根文件夹中的.gcloudignore来减少上载的文件 几件事:
静态
文件夹会变得有点凌乱。尝试删除它并重新运行python manage.py
,这将为我减少大约2000个文件.gcloudignore
文件忽略资产
文件夹,因为它们刚刚被移动到静态
也许您需要忽略file.gcloudignore中的一些文件
/vendor/
/node_modules/
/.git/
这是我的工作 正如一些评论中提到的,virtualenv文件夹可以有很多文件
我刚刚在
.gcloudignore
文件中添加了venv/
作为新行。对于python运行时3.7,通过将这些文件添加到.gcloudingore来解决此错误。yamlading.gcloudignore文件导致错误:error:(gcloud.beta.app.deploy)不能在同一应用程序中同时定义.gcloudignore文件和skip_文件。我们建议您将skip_文件忽略模式转换为.gcloudignore文件。有关gcloudignore的更多信息,请参阅。gcloud更新失败。Bailing out app.yaml中跳过部分的语法是什么?我想让它跳过我的.tox目录,但当我添加一行时:“-^(.tox/),deploy命令报告一个语法错误,然后它会立即覆盖我的更改。@ScottK@ScottK将此作为一个问题发布,以便其他人可以从中受益。如果在中有几个注释,则没有人会看到。我尝试在app.yaml中添加跳过的文件列表,但每当我进行部署时,此文件都会被删除。我没有提交由于它是一个全局文件,所以我取消了更改,但我希望它会被使用和保留。我如何确保它被使用?我如何知道部署正在下载哪些文件?Dee Dave在下面给出了答案。或者使用选项,因为我忘了将节点\u模块添加到.gcloudignore
。Oops。