繁体   English   中英

“ gcloud应用程序部署”期间出现“功能:未找到”

[英]“functions: not found” during “gcloud app deploy”

我是刚开始将动作Webhooks部署到GCP并尝试从此处简单部署演示api.ai Webhook的新手: https : //github.com/actions-on-google/apiai-webhook-template-nodejs

按照此处的说明进行操作: https : //developers.google.com/actions/samples/

尽管我最近注意到此页面说“这些说明假定您正在使用Google App Engine”。 在“样本/入门”页面中不是有用的句子...

当我运行gcloud app deploy ,它会执行几分钟,然后以:

(请注意,我用“ x”隐藏了某些键的一部分。不确定什么敏感,如果有的话):

$ gcloud app deploy
You are about to deploy the following services:
 - level-up-xxxx/default/20170625t233004 (from [/home/peter/Projects__/xxxx/webhook/app.yaml])
     Deploying to URL: [https://level-up-xxxx.appspot.com]

Do you want to continue (Y/n)?  y

If this is your first deployment, this may take a while...done.                                                        

Beginning deployment of service [default]...
Building and pushing image for service [default]

... {DETAILS OMITTED FROM HERE} ...

57fff86xxxxx: Pushed
c4a3d3bxxxxx: Pushed
90c3ed3xxxxx: Pushed
latest: digest: sha256:6d06015bb56b73145d91884a477463d5bef03dfb24882a07ce46492bxxxxxxxx size: 2626
DONE
------------------------------------------------------------------------------------------------------------------------

Updating service [default]...failed.                                                                                   
ERROR: (gcloud.app.deploy) Error Response: [9] 
Application startup error:

> level-up-xxxx@0.0.1 start /app
> functions deploy level-up-xxxx --trigger-http

sh: 1: functions: not found

npm ERR! Linux 3.16.0-4-amd64
npm ERR! argv "/nodejs/bin/node" "/nodejs/bin/npm" "start"
npm ERR! node v6.0.0
npm ERR! npm  v3.8.6
...

这似乎是由于尝试“ npm启动”而发生的(大概在GCP服务器上,对吧?)

什么是functions

这是我应该部署到的GCP环境中应该存在的东西吗?

看来我不是唯一遇到这种情况的人。 我正在尝试的演示的github页面上也是一个问题: https : //github.com/actions-on-google/apiai-webhook-template-nodejs/issues/1

UPDATE1:我发现我没有为相关的GCP项目启用“云功能API”。 奇怪的是,启用它似乎没有什么区别 (被发现时,我以为这肯定是我的问题!但是不...)

UPDATE2:我还发现这里的'deploy'命令似乎想要(导出的)函数名称,而不是项目名称,因此我从“ deploy level-up-xxx”更改为“ deploy levelUpXxxx”。 但是仍然没有喜悦。

UPDATE3:我遇到了这个“较旧的”命令序列,该序列仍在以下位置进行记录: https ://cloud.google.com/functions/docs/tutorials/http似乎可以成功部署:(但我尚未确认与我尝试开始的“应用程序部署”足够等效)

(@Prisoner告诉我这些不是“较旧的”,而是完全不同的GCP内容...)

$ gsutil mb gs://level-up-xxxx
$ gcloud beta functions deploy LevelUpXxxx --stage-bucket level-up-xxxx --trigger-http

仍然希望/需要使宣传的(非Beta版)“ gcloud应用程序部署”功能正常工作...

对发生的事情非常困惑...

我在台式机上使用的npm版本可能会出现问题吗? 即太新了? 难道将项目打包错了,并且在GCP内部不满意? 只是一个理论...我真的不知道这一切如何工作...


解析度

事实证明,这里的主要原因是(在撰写本文时), https://developers.google.com/actions/samples/上的演示说明指示使用gcloud app ,而演示本身似乎具有已被“升级”(?)以使用gcloud beta functions

如果您是GCP的新手,那会很令人困惑。 (Google最好投入更多的资源来保持其doco的最新状态...)

感谢指针@Prisoner。 答案已授予。

您正在混合两种不同的无服务器Google Cloud环境。

gcloud app一些东西部署到Google App Engine。 您并未显示所有配置文件,但可能需要更多配置才能部署到App Engine环境。 (您可以部署到运行Node的App Engine,但还有更多功能。)

gcloud beta functions某些内容部署到仍处于beta中的Google Cloud Functions。 (但是请记住... Google多年来一直保持产品和服务在Beta版中运行良好的状态...)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM