Я развернул свой проект с помощью облачной службы Google. Я добавил для allUser роль Cloud Run Invoker. Имея это разрешение, я могу вызывать службу с помощью метода GET. Но я не могу использовать метод POST. Помогите, пожалуйста. Спасибо
Установите разрешение для облачного запуска для доступа к методу POST
comment
Можете ли вы поделиться ошибкой, которую вы получаете при выполнении запроса POST? Также как у вас дела с постом? Дополнительная информация будет полезна, чтобы иметь возможность помочь вам в дальнейшем
- person bhito   schedule 29.11.2019
comment
Аутентификация / авторизация Cloud Run на основе IAM не делает различий между GET и POST или любым другим методом HTTP в этом отношении. Скорее всего, с вашей стороны что-то не так.
- person Ahmet Alp Balkan   schedule 30.11.2019
comment
@bhito `‹! DOCTYPE HTML PUBLIC - // W3C // DTD HTML 3.2 Final // EN ›‹title› 405 Недопустимый метод ‹/title› ‹h1› Недопустимый метод ‹/h1› ‹p› Недопустимый метод разрешено для запрошенного URL. ‹/p› `
- person HoangThang   schedule 02.12.2019
comment
Это сообщение с вашего веб-сервера, а не сообщение Cloud Run!
- person guillaume blaquiere   schedule 02.12.2019
Ответы (1)
Если вы достигнете своего Cloud Run с помощью команды GET HTTP, вы также можете получить его с помощью POST. Уровень безопасности Cloud Run, выполняемый Google Front End, отвечает только за проверку безопасности, а не за тип доступа.
Вы не должны получать ошибку 403 или 401, может быть, что-то вроде 501 не реализовано. Проверьте свой веб-сервер и вне Cloud Run убедитесь, что он принимает запрос POST.
person
guillaume blaquiere
schedule
29.11.2019
Спасибо @guillaume blaquiere за ваш комментарий, я проверил свое приложение на локальном хосте, оно работает, и я запустил его на вычислительном движке с nginx, он все еще работает, но когда я использовал облачный запуск и облачную сборку для автоматического развертывания, он не получил доступа.
- person HoangThang; 02.12.2019
В облачной оболочке (или в любой среде с установленным докером) вы можете выполнить эту команду
docker run -p 8080:8080 gcr.io/<project id>/<containter name> -e <list of your required env var>
. Затем протестируйте свой контейнер на порту 8080. У вас будет то же поведение, что и в Cloud Run. Что-то происходит в вашей сборке контейнера. Поделитесь своим кодом, если вам нужна дополнительная помощь
- person guillaume blaquiere; 02.12.2019
Спасибо @guillaume blaquiere. Это моя ошибка, я исправил ее, я звоню из другой службы с помощью http, но облако работает с использованием https, поэтому появляется это сообщение об ошибке. Раньше я использовал Compute Engine с Nginx, используя как http, так и https.
- person HoangThang; 03.12.2019