我不熟悉将动作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 start”(大概是在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 在部署时似乎成功 :(但我还没有确认这与'app deploy'足够等效,我正努力工作)
(@囚徒告诉我这些不是'年长',而是完全不同的GCP ......)
$ gsutil mb gs://level-up-xxxx $ gcloud beta functions deploy LevelUpXxxx --stage-bucket level-up-xxxx --trigger-http
仍然希望/需要让广告(非测试版)“gcloud app deploy”工作......
对于发生的事情非常困惑......
我在桌面上使用的npm版本是否存在问题?即太新了? 这可能是错误的打包项目,并且在GCP内部不满意吗?只是一个理论......我真的不知道这一切是如何起作用的......
事实证明,这里的主要罪魁祸首是(在撰写本文时),https://developers.google.com/actions/samples/上的演示说明表示使用gcloud app
,而演示本身似乎已经'升级'(?)使用gcloud beta functions
。
如果您不熟悉GCP,那会非常困惑。 (谷歌最好投入更多资源来保持他们的doco最新......)
感谢指针@Prisoner。答案被授予。
答案 0 :(得分:2)
您正在混合两种不同的无服务器Google云环境。
gcloud app
向Google App Engine部署了一些内容。您没有显示所有配置文件,但您可能需要更多配置才能部署到App Engine环境。 (您可以部署到运行节点的App Engine,但还有更多内容。)
gcloud beta functions
向Google Cloud Functions部署了一些内容,该功能仍处于测试阶段。 (但请记住...... Google已经保留了多年来在测试版中运行良好的产品和服务......)