从工件中删除旧文件后无法部署云功能

Sag*_*r V 4 node.js firebase google-cloud-functions

自今年年初以来,由于us.artifacts.<project-id>存储桶的原因,我在 Firebase 上托管的 Angular 网站一直在收取云存储费用。

\n

昨天,我检查了存储使用情况,发现云存储上存储了约800MB+的数据。默认存储桶是空的,我没有在上面存储任何内容。因此,所有这 800MB 存储空间都用于函数构建。

\n

我的项目中有 2 个 Node 10 函数(和 2 个 Node 8 函数)。Node 8 功能已弃用,但已于去年部署。它不会使用us.artifacts桶。

\n

根据道格的回答和评论,

\n
\n

文件的日期与部署日期相对应。找出哪些内容已经足够旧可以删除应该不难。\xe2\x80\x93 道格·史蒂文森 2020 年 9 月 15 日 3:56

\n
\n

我昨天部署了这两个功能,并从存储桶中删除了之前日期的文件。从那时起,我无法部署这两个功能。

\n

这是我到目前为止所尝试过的。

\n
    \n
  1. 等待 8-10 小时并尝试重新部署 - 失败。
  2. \n
  3. 从 firebase 功能仪表板中删除了这两个功能并再次部署 - 失败。
  4. \n
  5. 从 Firebase 仪表板中删除了这两个函数,验证了它在 Google Cloud 函数列表中不存在,us.artifacts<project-id>并删除了这两个函数gcf-sources-<id>存储桶。然后将这些功能部署为新功能 - 失败。
  6. \n
  7. 完成步骤 3 中的所有操作(部署除外),然后重命名这两个函数并再次尝试部署 - 失败。
  8. \n
  9. 从头开始在 CircleCI 上重新运行之前成功的工作流程 - 失败。
  10. \n
\n

这是部署日志

\n
\n

功能:完成运行预部署脚本。职能:确保

\n

所需的 API cloudfunctions.googleapis.com 已启用...功能:

\n

确保启用所需的 API cloudbuild.googleapis.com...

\n

功能:启用所需的API cloudbuild.googleapis.com

\n

功能:启用所需的 API cloudfunctions.googleapis.com

\n

功能:准备上传功能目录...功能:

\n

用于上传函数的打包函数 (39.63 KB):函数

\n

文件夹上传成功功能:项目中的当前功能:

\n

sendEnquiryMessage(us-central1), ssr(us-central1) 功能:上传

\n

项目中的函数:api(us-central1) 函数:创建 Node.js 10

\n

函数 api(us-central1)... 函数[api(us-central1)]:部署
\n错误。函数加载用户代码失败。这可能是由于
用户代码中的\n错误造成的。错误消息:错误:请检查您的
\n函数日志以查看错误原因:
\n https://cloud.google.com/functions/docs/monitoring/logging#viewing_logs。\n其他故障排除文档可在\n https://cloud.google.com/functions/docs/troubleshooting#logging
中找到。\n请访问https://cloud.google.com/functions/docs/troubleshooting \n了解深入的故障排除文档。


\n

函数部署存在以下函数错误:
\napi

\n
\n

firebase 控制台上的错误表示无法加载用户代码。

\n

在此输入图像描述

\n

我使用 CircleCI 进行 CI/CD,甚至重新运行之前成功的工作流程也无法抛出此错误。

\n

这是 CircleCI 重新运行之前工作流程的屏幕截图

\n

在此输入图像描述

\n

注意:我正在使用 TypeScript for Cloud 函数。

\n

Sag*_*r V 5

问题已解决。这是我遵循的步骤。

  1. 在functions/package.json中将节点版本从10更改为12
  2. 从 firebase 仪表板中删除了函数(即使部署失败,您也可以在仪表板中看到名称)。
  3. 已从存储中删除us.artifacts.<project-id>存储gcf-sources-<id>桶。
  4. 再次部署。

节点版本变更后功能已成功部署。