Облачные задачи 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 для задачи.