问题标签 [google-cloud-tasks]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
754 浏览

google-cloud-platform - 删除 Google Cloud Task 不会停止任务运行

我有一个任务队列,用户可以将任务推送到其中,一次只能运行一个任务,由队列的并发设置强制执行。在某些情况下(例如长时间运行的任务),他们可能希望取消正在运行的任务以释放队列以处理下一个任务。

为了实现这一点,我一直将任务队列作为 Flask 应用程序运行,如果用户希望取消任务,我会为给定的队列和任务调用 python 客户端库的delete_task方法。

但是,我看到即使在删除任务之后,基础任务也会继续处理。一直在尝试查找有关 Cloud Tasks 如何处理被删除任务的文档,但没有找到任何具体的内容。

希望我能够监听某种信号,以便在收到删除时优雅地关闭进程。或者如果父任务被删除,底层进程将被杀死。

以前有人使用过 Cloud Tasks API 吗?假设已删除的任务将清除所有正在运行的进程是否正确?

0 投票
0 回答
321 浏览

google-cloud-platform - 由于 CPU 使用率高,Cloud Run 503 错误

我刚刚实现了云运行来为我的移动应用程序处理/编码视频。我最近收到一个未知的 503 错误:POST 503 Google-Cloud-Tasks: The request failed because the HTTP connection to the instance had an error.

当用户将视频上传到云存储时,我的流程开始,然后触发一个函数并将视频源路径发送到云任务以排队进行编码。最后,cloud run 下载视频,通过 ffmpeg 对其进行处理,并将所有内容上传到单独的存储桶(所有下载的临时文件都被删除)。

我知道视频编码是一项 cpu 繁重的任务,但我的应用程序只允许编码最多约 3 分钟的视频(通常约为 100 MB)。它适用于较短的视频,但较长的视频503在处理 2 分钟以上后会标记错误

我的实例仅用于视频编码,仅允许 1 个并发请求/实例。这是我的服务设置:

  • 中央处理器- 2 个中央处理器
  • 内存- 2 Gb
  • 并发- 1
  • 请求超时- 900 秒(15 分钟)

文档指出这是因为繁重的 cpu 任务,所以很明显它是由处理较重的文件引起的,但我不确定在给定最大设置的情况下我能做些什么来解决这个问题。是否可以在 CPU 上设置一个上限以使其不会过火?还是云运行不是此类任务的好解决方案?

0 投票
1 回答
318 浏览

firebase - 如何让 Cloud Tasks 只运行一次?

我编写了一个云任务,它运行良好,触发了我提供的链接,没有任何问题,但它不会停止重试运行链接。

我怎样才能让它只运行一次?

我正在尝试做的是在未来运行一次 Firestore 函数,在集合中写入的文档上。我找到了这个教程。

到目前为止,我的任务创建代码运行良好,并将正确的有效负载传递给它将调用的函数。并且被调用的函数在第一次运行并以状态 200 退出时也可以正常工作。但是在重试时,我必须以错误 500 退出,因为没有数据可以访问了。

我可以在 firestore 函数的日志中看到 200 和 500 日志,但 Cloud Tasks 的日志是空的,即使一个方法已经运行了 50 次!


这是完整的代码

0 投票
1 回答
1927 浏览

google-cloud-functions - 您可以运行可从公共 ip 访问的 /host firebase 模拟器吗?

我正在使用 firebase 模拟器在我的机器上托管一些 GCF 功能。它们被配置为在 localhost:5001 上运行/托管。这很好用。

我现在在我的应用程序中使用 Google Tasks,我的任务需要调用 GCF 函数。任务不在本地运行,因此我将我的机器设置为通过公共 IP 地址访问并打开端口 5001 以允许该端口上的流量。这个想法是谷歌任务可以调用我机器上的函数,所以我可以正确测试。

我似乎无法让模拟器使用任何外部公共 IP 地址。这是不可能的,或者如果是,我该如何配置?

已更新,这里没有太多要查看的代码...我只是想知道您是否可以将模拟器配置为在公共端口上侦听。这是默认的 firebase.json 文件

在我的研究中,我发现您可以添加“host”属性以允许您的本地网络使用“host”访问模拟器:“0.0.0.0”,所以它看起来像这样:这允许通过我的本地 ip 访问,例如http://192.168.1.216:5001

现在,使用我使用 NAT FORWARDING 设置的公共 IP,它无法访问该站点http://108.49.78.181:5001

没有那么多代码,这甚至可能吗?如果是这样,我会喜欢一些如何做到这一点的例子。

0 投票
2 回答
443 浏览

google-cloud-platform - Google 任务队列不在 us-west1 中

我的 gcloud 工具默认为 us-west1,但是当我创建队列并尝试通过 java 和 apis 使用时,我收到此错误

当我尝试使用 gcloud 列出位置时,我得到了这个

如何使用 gcloud 命令行获取位置列表?

谢谢,院长

0 投票
1 回答
1799 浏览

node.js - 在 firebase 函数中创建 Google Cloud Task

调用试图创建任务的 firebase HTTP 函数时,我在 firebase 控制台函数日志中收到错误消息。

错误:7 PERMISSION_DENIED:委托人(用户或服务帐户)缺少资源“projects/my-gcloud-project-id/locations/us-central1/queues/myqueuename”的 IAM 权限“cloudtasks.tasks.create”(或资源可能不存在)。

也许我在 gcloud id & location 与 firebase id & location 之间感到困惑?

编辑:我已经通过运行确认我的位置是 us-central1gcloud --project my-gcloud-project-id tasks locations list

或者也许我需要以某种方式设置权限?

我的代码:

0 投票
1 回答
191 浏览

google-cloud-platform - 有没有办法修改谷歌云任务设置?

我们有一个谷歌云任务队列,其中包含 3000 个项目,最大并发数为 25,并且想要修改最大并发数,尽管我不知道如何执行此操作。有没有办法在不删除和重新创建丢失队列中所有现有项目的情况下修改谷歌云任务队列上的任何设置?

或者一种创建队列的方法,如果它们尚未开始,则将所有当前项目从一个队列移动到另一个队列(或移动前 90% 并留下 10% 以在旧队列中完成)?寻找我们可以在这里做的任何类型的解决方法。

谢谢,院长

0 投票
0 回答
31 浏览

google-cloud-platform - 未使用 serviceAccount 调用云函数

使用服务帐户后,我无法从我的云任务中调用云功能。我已将服务帐户的函数调用者角色添加到要调用的函数中。此外,服务帐户还被赋予了服务帐户用户、云功能管理员、云任务管理员和功能调用者角色。但是仍然无法从云任务中获取要调用的函数,没有抛出错误,但重试计数只会增加。

0 投票
1 回答
173 浏览

node.js - 是否可以在 Cloud Task 中从 Google Cloud Storage 安排 maven jar 文件?

我是 Google Cloud Platform 的新手。我正在尝试使用 NodeJS 在 Google Cloud Task 中的 Google Cloud Storage 中安排上传的 maven jar。

我无法找到有关如何执行此操作的任何帮助,是否可以为这种情况安排一个 maven jar 文件?

0 投票
2 回答
893 浏览

grpc - 云任务创建:错误:3 INVALID_ARGUMENT:请求包含无效参数

我正在关注这个教程: https ://cloud.google.com/tasks/docs/tutorial-gcf

创建一个调用云函数的任务。

我已经做了很多尝试,但仍然得到这个错误:

在此处输入图像描述

如果我将正文编码更改为其他内容,则会收到另一个关于序列化方法的错误。

这可能不是许可问题,因为我之前得到了一些并摆脱了它。

传递给 createTask() 的对象如下:

(或带有正文:base64 编码的 json 字符串。)

我使用的代码如下:

错误中缺乏细节让我碰壁了......

有什么建议么 ?