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

Согласно этой документации [ https://cloud.google.com/tasks/docs/creating-http-target-tasks ], нужно иметь возможность создавать задачи с типом 'http_request' и 'http_method', установленным на 'POST', но поведение не ожидается, если задача всегда создается с помощью метода GET.

После этой проблемы при использовании клиентской библиотеки Python я решил попробовать API напрямую и проверить, была ли это проблема с библиотекой или самим API.

Используя "Попробуйте этот API" на странице документации по продукту [ https://cloud.google.com/tasks/docs/reference/rest/v2beta3/projects.locations.queues.tasks/create ], я попытался создать аналогичные задачи, использующие оба типа http_request и app_engine_http_request и всегда устанавливающие http_method в POST.

Если я установлю тело запроса следующим образом:

{
  "task": {
    "appEngineHttpRequest": {
      "httpMethod": "POST",
      "relativeUri": "/test",
      "body": "c2hhbGxvdyBub3c="
    }
  }
}

... задача создана и метод POST, как и ожидалось. Но если я установлю тело запроса на:

{
  "task": {
    "httpRequest": {
      "httpMethod": "POST",
      "url": "https://httpstat.us/404",
      "body": "c2hhbGxvdyBub3c="
    }
  }
}

... задача создана, но с методом GET вместо POST.

Вот что я получаю в своей очереди:

Я считаю, что это ошибка, и поэтому я сообщаю об этом здесь с тегом google-apis-explorer, как рекомендовано на странице поддержки.

Во всяком случае, если бы кто-нибудь мог сказать мне, если я делаю что-то не так или есть какое-то решение в то же время, я был бы очень признателен.

Спасибо!

0 ответов

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

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

Описание задач бета-версии gcloud

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

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

Другие вопросы по тегам