Google Cloud Tasks 未分派 HTTP 请求

Posted

技术标签:

【中文标题】Google Cloud Tasks 未分派 HTTP 请求【英文标题】:Google Cloud Tasks not dispatching HTTP requests 【发布时间】:2020-08-24 08:28:24 【问题描述】:

我首先要说我是使用 Google Cloud Tasks 的新手,所以如果这是一个明显的问题,请原谅我。

我使用gcloud 和命令创建了一个新的云任务队列:

gcloud tasks queues create default

然后,我开始从 Ruby on Rails 应用程序和使用以下命令的命令行将任务添加到队列中:

gcloud tasks create-http-task --queue=default --url=https://google.com --method GET

然后我看到任务被添加到队列中,但从未发出 HTTP 请求。队列本身也表示没有“队列中的任务”,即使我所做的任务列在此消息下方的任务列表中:

我已启用日志记录:

gcloud tasks queues update default --log-sampling-ratio=1.0

并且可以在日志中看到正在创建的任务,但没有单个任务的日志。

我正在调用的 Cloud Run 服务已公开访问,如果我手动将任务负载发布到任务中的 url,它就可以工作。我正在使用 GET google.com,因为我认为它可以可靠访问。

有人能告诉我我做错了什么吗?这是我需要整理的最后一项,以完成我们的项目迁移到 Google Cloud!谢谢!

【问题讨论】:

【参考方案1】:

万一其他人对此运行,还有一个启用 Google Cloud Tasks 的技巧。

确保在您的项目上设置了 App Engine 后,您还需要确保应用程序本身没有被禁用!事实证明,我参与的项目很多年前就在使用 App Engine,唯一的应用程序在 App Engine 设置中被禁用。再次启用此功能可使一切按您的预期工作。

您可以通过转到“App Engine”、“设置”,然后选中“禁用应用程序”设置来找到该设置。

祝所有阅读本文的人好运!

【讨论】:

我花了一个小时试图弄清楚这一点!非常感谢,好心的陌生人

以上是关于Google Cloud Tasks 未分派 HTTP 请求的主要内容,如果未能解决你的问题,请参考以下文章

Google Cloud Tasks ImportError:无法导入名称“resource_pb2”

Google Cloud Tasks 无法向 Cloud Run 进行身份验证

Google Cloud Tasks 和 Google App Engine Python 3

每个任务都无法在 Google Cloud Tasks 上执行

使用 HttpRequest 作为 payload_type 时,Google Cloud Tasks 始终将 HttpMethod 设置为 GET

Google Cloud Tasks HTTP 触发器 - 如何禁用重试