【问题标题】:Error: Asset 'webhooks/ActionsOnGoogleFulfillment' cannot be deployed错误:无法部署资产“webhooks/ActionsOnGoogleFulfillment”
【发布时间】: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 项目名称会不同)。

Github Repository for Code

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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2014-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-14
    • 1970-01-01
    • 1970-01-01
    • 2018-01-04
    • 2013-03-26
    相关资源
    最近更新 更多