【发布时间】:2021-02-13 10:31:01
【问题描述】:
我刚刚尝试重新部署我已经部署的同一个项目。我添加了一些静态文件,仅此而已,并在本地对其进行了测试,效果很好。但是,在部署时出现错误: 开始部署服务 [默认]...
╔════════════════════════════════════════════════════════════╗
╠═ Uploading 0 files to Google Cloud Storage ═╣
╚════════════════════════════════════════════════════════════╝
File upload done.
Updating service [default]...failed.
ERROR: (gcloud.app.deploy) Error Response: [9] Cloud build XXX-5ad7883fea49 status: FAILURE
Build error details: Build error details not available.
Full build logs: https://console.cloud.google.com/cloud-build/builds/XXX-5ad7883fea49?project=XXX
我测试了互联网上我能找到的所有内容,但我找不到错误 #9 的修复程序。我检查了日志,它们没有提供更多信息,至少对我来说不是:
Starting Step #4 - "analyzer"
Step #4 - "analyzer": Already have image (with digest): us.gcr.io/gae-runtimes/buildpacks/nodejs12/builder:nodejs12_20210105_12_20_1_RC00
Step #4 - "analyzer": ERROR: failed to initialize cache: failed to create image cache: accessing cache image "us.gcr.io/[project name]/app-engine-tmp/build-cache/ttl-7d/default/buildpack-cache:9aef878d-ea0b-4e41-9b60-13bfd4b6a332": connect to repo store 'us.gcr.io/[project name]/app-engine-tmp/build-cache/ttl-7d/default/buildpack-cache:9aef878d-ea0b-4e41-9b60-13bfd4b6a332': GET https://us.gcr.io/v2/[project name]/app-engine-tmp/build-cache/ttl-7d/default/buildpack-cache/manifests/9aef878d-ea0b-4e41-9b60-13bfd4b6a332: DENIED: Permission denied for "9aef878d-ea0b-4e41-9b60-13bfd4b6a332" from request "/v2/[project name]/app-engine-tmp/build-cache/ttl-7d/default/buildpack-cache/manifests/9aef878d-ea0b-4e41-9b60-13bfd4b6a332".
Finished Step #4 - "analyzer"
ERROR
ERROR: build step 4 "us.gcr.io/gae-runtimes/buildpacks/nodejs12/builder:nodejs12_20210105_12_20_1_RC00" failed: step exited with non-zero status: 1
我不明白它在说什么图像,尽管我尝试删除整个 App Engine 以将其读回以修复此问题,但我认为如果不丢失我的项目 ID 就无法做到这一点,这不是我想要的做。
我正在使用 NodeJS12 和 ExpressJS,仅此而已。 app.yaml 如下:
# [START gae_quickstart_yaml]
runtime: nodejs12
# [END gae_quickstart_yaml]
还有什么我可以做的吗?这个项目中的内容太少了,我基本上被困在还有什么可以削减来测试它是否是问题的地步。我检查了问题是否在 Google Cloud Shell 中仍然存在,它确实存在,所以我猜这不是本地错误。
【问题讨论】:
-
你的 package.json 是否也在 nodejs12 中?当你执行 npm 安装时,你有警告的依赖吗?
-
@guillaumeblaquiere 感谢您的评论。我的 package.json 没有关于 node.js 版本的信息集。有一个依赖项:
"express": "^4.17.1"。我运行npm install没有任何问题。 -
确保 Cloud SDK 是最新的 it's latest version(运行
gcloud components update并尝试使用gcloud app deploy --no-cache部署您的应用程序。同时确保您没有超过任何相关限制到配额(例如超过 32 MB 的单个静态数据文件或每日部署次数),如 here 所述。希望这会有所帮助。 -
@DanielOcando 感谢您的评论。我在发布问题之前运行了组件更新,它对结果完全没有影响。项目中所有文件的总大小为 20.2MB。刚刚尝试执行
--no-cache命令,得到了相同的结果,错误响应 [9]。 -
查看共享的错误消息我看到您有权限被拒绝错误。创建一个新存储桶,确保您的 App Engine 和 Cloud Build 服务帐户都具有存储管理员权限,以便能够对存储桶进行写入和读取,并在您的 gcloud 应用部署中同时使用 --bucket 和 --no-cache 标志命令。
标签: node.js google-app-engine google-cloud-platform