是什么导致此神秘的GCloud App Deploy错误? (NodeJS,AppEngine。标准环境)

时间:2018-11-21 01:40:36

标签: node.js google-app-engine google-cloud-platform

  

错误:(gcloud.app.deploy)错误响应:[9]云内部版本6axxx ... xxx9b状态:失败。

我试图了解我是否可以将NodeJS / Express服务器与Google Cloud App Engine(标准模式)一起使用。我的应用程序是从Express-Generator框架开始的。有一个单页应用程序,有些功能通过自定义路由回调到服务器。没什么疯狂的。

我设置了存储库,并将$ git clone https://gitlab.com/my_repo放入了GCloud Shell中。使用沙盒(本地开发服务器)进行测试,测试和重新测试。测试url的格式为:https://8080-dot-xxxxxx-dot-devshell.appspot.com Yipee。

下一步是艰苦的部署:我从$ gcloud app create开始,然后是$ gcloud app deploy(必须进行旁行检查以确保正确的授权和计费内容完整,等等。)。网站/服务器完全可以按预期工作。 URL的格式为https://my-custom-XYZ-website.appspot.com/,效果很好。

我可以在Google Cloud Platform -- App Engine -- Version console处查看版本,那里的输出显示了我

 Version: 20181120t103136
 Status: Deployed 
 Traffic Allocation: 100%
 Instances: 1 
 Runtime: Node10 
 Environment: Standard 
 Size: 748.8 KB
 Deployed: (Date/Time by me)

这就是背景。现在的问题是我无法再更新内容。我可以轻松地将代码推送到终端界面,但是对于任何形式的更新/新版本,命令$ gcloud app deploy都会失败。叹。

Log related info -- Build steps: 
Fetcher = successful

Builder = status, Step Failed
Builder Arguments   
--name=us.gcr.io/my-custom-XYZ-website/app-engine-tmp/app/ttl-2h:12xxxxxxa5a0 --directory=/workspace --destination=/srv --cache-repository=us.gcr.io/my-custom-XYZ-website/app-engine-tmp/build-cache/ttl-7d --cache --base=gcr.io/gae 
 runtimes/nodejs10:nodejs10_10_13_0_20181111_RC00
Directory   /workspace/

 "builder": Permission denied for "d71xxxxxxxxxxxxxxxxxx88b5" from request "/v2/my-custom-XYZ-website/app-engine-tmp/build-cache/ttl-7d/node-cache/manifests/d71xxxxxxxxxxxxxxxxxx88b5". : None

app.yaml

# [START runtime]
runtime: nodejs10
# [END runtime]

handlers:

  - url: /images
    static_dir: public/images
  - url: /javascript
    static_dir: public/javascript
  - url: /red-canoe
    static_dir: public/alt-content
  - url: /stylesheets
    static_dir: public/stylesheets

  - url: /.*
    secure: always
    redirect_http_response_code: 301
    script: auto

关于如何识别和更正此处问题的任何想法?

注意:我确实在node.js中创建了另一个简单的测试产品,并且可以在那里轻松地更新版本。该测试产品只有一个简单的app.js和一个简单的Hello World响应。版本2具有Hello There, World(好吧,是的,不是世界上最强大的测试...)。但是通过$ gcloud app deploy进行的版本更新在那儿工作得很好。我确实注意到,Hello World应用程序的版本大小约为245kb左右。

1 个答案:

答案 0 :(得分:1)

因此,经过大量测试,我想我知道这里发生了什么。

node.js应用程序实际上利用了三种与Google相关的组件/工具。

  • Google Firebase身份验证
  • Google Sheets API,V4
  • Google App Engine(部署)

当我创建这些组件时,系统会提示我创建一个新项目或利用一个现有项目。我为所有三个工具选择了完全相同的项目。我相信所有这些东西捆绑在一起的事实搞乱了对Google App Engine vcloud app deploy

进行更新的能力

解决方法是删除三个组合项目,并创建三个单独的项目

  • MyProject_Sheets
  • MyProject_Firebase_Auth
  • MyProject_AppEngineDeploy

这可靠地工作。全做完了。

对于可能对我在此处执行的Firebase / Sheets API感兴趣的任何人,请查看this link.,我建立了一个在线电话目录,并通过手机登录进行了保护,并在个人Google上存储了联系方式片。