Невозможно установить полезную нагрузку / тело в облачных задачах Google - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь использовать облачные задачи Google, создавая задачу с помощью веб-функции "Попробуйте этот API" или Ruby Google Cloud SDK.

Я не могу получить полезную нагрузку для доставки работнику.

  1. Отправка метода Http как POST действительно работает, но отображается как GET в пользовательском интерфейсе облачных задач.

  2. Никакой полезной нагрузки или заголовков не отправляется работнику или отображается в пользовательском интерфейсе облачной задачи. Я пробовал 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:

Пустые заголовки

Пустая полезная нагрузка

Существует ли какой-то специальный формат для установки полезной нагрузки, которая будет доставляться через POST?

Спасибо!

1 Ответ

0 голосов
/ 08 июля 2019

Спасибо за этот пост, это ошибка в существующем пользовательском интерфейсе Cloud Tasks, и мы находимся в процессе исправления этой ошибки.

Между тем правильный HTTP-метод задачи можно определить, выполнив следующую команду:

описание бета-задач gcloud

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

Приведенная выше команда покажет правильный HTTP-метод для задачи.

Ответ от: Задачи Google Cloud всегда устанавливают для HttpMethod значение GET при использовании HttpRequest в качестве payload_type

Вы также можете использовать метод get task для получения дополнительной информации.

...