0

我想使用 actions-sdk 构建一个具有自定义操作的 Google 助手。由于我是新手,因此我按照教程“使用 Actions SDK(级别 1)为 Google Assistant 构建操作”中的步骤进行操作,以便构建示例助手。我照原样按照教程进行操作。但是,在第 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 Functions 控制台

带有感叹号的云功能部署失败。如果我删除了这些功能,那么会立即自动部署一个新功能。但不是感叹号,而是一个纺车符号(加载/仍在部署)标记。如果它仍在加载/部署,我无法删除该云功能。然后在 10-15 分钟后,旋转符号变为感叹号。然后,如果我删除它,则会再次自动出现一个新的。就这样继续下去

图 2(截图) 云平台云功能控制台

此问题仅在实施 webhook/fulfillment(第 5 步)时出现。对于静态Actions的响应,输入“gactions deploy preview”命令就成功部署测试。(步骤1到步骤4成功实现)

我照原样按照教程进行操作,因此代码和目录结构与教程中的相同,(只有 project-id 或 actions-console 项目名称会不同)。

代码的 Github 存储库

由于,这仅适用于教程,目前我没有使用计费帐户,而是在 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". 

谁能建议如何停止云功能的这种连续自动失败的部署,以便我部署的功能将成功部署?非常感谢您的帮助。

(注意:这是我第一次在堆栈溢出中发布问题,所以如果有任何错误或堆栈溢出问题约定我可能没有遵循,请告诉我。我会改进它。)

4

1 回答 1

1

将其发布为社区 Wiki,因为它基于评论。

正如澄清的那样,问题似乎是计费帐户,因为教程提到必须有一套才能正确部署云功能。除此之外,没有计费帐户就无法部署 Cloud Functions(webhook),所以是的,即使您没有使用 Node.js 10,您也需要为您的项目配置一个计费帐户。

总而言之,即使您不使用 Node.js 10,也需要计费帐户以避免任何可能的部署失败,如后续教程中所述。

于 2020-10-19T05:41:26.453 回答