【发布时间】:2020-10-12 17:45:37
【问题描述】:
我想使用 actions-sdk 构建一个具有自定义操作的 Google 助手。由于我是新手,因此我按照教程"Build Actions for Google Assistant using Actions SDK (Level 1)" 中的步骤进行操作,以构建示例助手。我照原样按照教程进行操作。但是,在第 5 步(实现实现)中,当尝试通过运行命令来测试实现时
gactions deploy preview
我在终端中得到以下输出错误
Sending configuration files...
Sending resources...
Waiting for server to respond. It could take up to 1 minute if your cloud function needs to be redeployed.
[ERROR] Server did not return HTTP 200.
{
"error": {
"code": 400,
"message": "Asset 'webhooks/ActionsOnGoogleFulfillment' cannot be deployed. [An operation on function cf-_CcGD8lKs_F_LHmFYfJZsQ-name in region us-central1 in project <my-project-id> is already in progress. Please try again later.]"
}
}
当我检查这个项目的“Google Cloud Platform -> Cloud Functions Console”时,看到以下内容。
图片 1(截图) Cloud Platform Cloud Functions Console
带有感叹号的云功能部署失败。如果我删除了这些功能,那么会立即自动部署一个新功能。但不是感叹号,而是一个纺车符号(加载/仍在部署)标记。如果它仍在加载/部署,我无法删除该云功能。然后在 10-15 分钟后,旋转符号变为感叹号。然后,如果我删除它,则会再次自动出现一个新的。就这样继续下去
图片 2(截图) Cloud Platform Cloud Function Console
此问题仅在实施 webhook/fulfillment(第 5 步)时出现。对于静态Actions的响应,输入“gactions deploy preview”命令就成功部署测试。(步骤1到步骤4成功实现)
我按照教程原样进行了操作,因此代码和目录结构与教程中的相同,(只是 project-id 或 actions-console 项目名称会不同)。
由于这只是教程,目前我没有使用计费帐户,而是在 package.json 中进行了以下更改(将节点版本从 10 更改为 8。)。
"engines": {
"node": "8"
},
由于这种持续自动部署失败,当我尝试显式部署项目时,如上所述,出现此错误。
"An operation on function cf-_CcGD8lKs_F_LHmFYfJZsQ-name in region us-central1 in project <my-project-id> is already in progress. Please try again later".
谁能建议如何停止这种连续自动失败的云功能部署,以便我部署的功能将成功部署?非常感谢您的帮助。
(注:这是我第一次在堆栈溢出中发布问题,所以如果有任何错误或堆栈溢出问题约定我可能没有遵循,请告诉我。我会改进它。)
【问题讨论】:
-
您是否在“设置”步骤中“关联结算帐户”?
-
不,目前我没有使用计费帐户,我在package.json中将节点版本更改为'8',现在允许使用云功能而无需计费。通过将节点更改为 8,在我能够将云功能用于简单的 webhook 之前。
-
是结算账户的问题吗?因为之前,对于我尝试的另一个示例,它在没有计费帐户的情况下运行良好。唯一的区别是 webhook 是用 typescript(index.ts) 编写的,它可以工作,而现在它是用 javascript(index.js) 编写的,它不起作用。
-
嗨@anonymous_D 是的,账单帐户可能会导致问题,正如教程中提到的那样。虽然 Node.js 10 确实需要计费,但本教程没有提到 Node.js 版本 10 的需要,而是计费帐户。能否请您关联一个并检查它是否有效?虽然它适用于您的简单 webhook,但在本教程的最后,它并不是简单的 webhook。
-
IIRC,没有计费帐户就无法部署 Cloud Functions (webhook)。另外,当我通过 Actions Console 创建项目时,我还必须手动启用 Cloud Build 服务才能成功部署。
标签: google-cloud-platform google-cloud-functions actions-on-google fulfillment