温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - Unable to set Payload/Body on Google Cloud Tasks
google-cloud-platform google-cloud-tasks

其他 - 无法在Google Cloud Tasks上设置有效载荷/身体

发布于 2020-03-27 11:53:58

我正在尝试使用Google Cloud Tasks,通过“ Try this API”网络功能或Ruby Google Cloud SDK创建任务。

我无法将有效载荷交付给工人。

  1. 实际上,以POST方式发送Http方法是可行的,但是在Cloud Tasks UI中显示为GET。

  2. 没有有效负载或标头发送到工作程序或不会显示在Cloud Task UI中。我已经尝试过Base64,JSON,普通字符串。(参见下图)

例:

请求:

{
  "task": {
    "httpRequest": {
      "httpMethod": "POST",
      "body": "SGVsbG8=",
      "url": "https://some-random-url"
    }
  }
}

响应:

{
  "name": "projects/<my-project>/locations/europe-west1/queues/default/tasks/73572672049866200001",
  "scheduleTime": "2019-07-03T14:49:34.450453Z",
  "createTime": "2019-07-03T14:49:34Z",
  "view": "BASIC",
  "httpRequest": {
    "url": "https://some-random-url/",
    "httpMethod": "POST",
    "headers": {
      "User-Agent": "Google-Cloud-Tasks"
    }
  },
  "dispatchDeadline": "600s"
}

示例Ruby代码:

task = {
          http_request: {
            url: <project/location/queue/url>,
            http_method: 'POST',
            body: "Something"
          }
        }

        response = @client.create_task(@parent, task)

Google Cloud UI的屏幕截图:

空标题

空载

是否有某种特殊格式来设置要通过POST传递的有效负载?

谢谢!

查看更多

查看更多

提问者
Jose Goncalves
被浏览
117
Averi Kitsch 2019-07-09 01:01

感谢您的发布,这是现有Cloud Tasks UI中的错误,我们正在修复此错误。

同时,可以通过运行以下命令来确定任务的正确HTTP方法:

gcloud beta任务描述

https://cloud.google.com/sdk/gcloud/reference/beta/tasks/describe

上面的命令将显示该任务的正确HTTP方法。

答案来自:当使用HttpRequest作为payload_type时,Google Cloud Tasks始终将HttpMethod设置为GET。

您也可以使用get task方法获取更多信息。