Я закончил учебник Notes App на https://serverless-stack.com (единственное изменение - подключение к MongoDB). Приложение Notes было создано с использованием инфраструктуры ymls в разделе «Ресурсы». Все работает.
Затем я решил изменить serverless.yml и добавить обратно в прилагаемый API 'hello' (включая добавление обработчика. js в проект). Этот API просто возвращает сообщение. После этого я выполнил $serverless deploy —stage dev
Приложение Notes продолжает работать.
Выполнение API-интерфейса hello в Amazon API Gateway дает 200, хорошо. Когда я запускаю npx aws-api-gateway-cli-test
с —path-template=‘/hello’
, это дает мне «403 запрещено». Когда я запускаю npx aws-api-gateway-cli-test
с --path-template=‘/notes’
, это дает мне 200, хорошо.
Я не понимаю, почему вызов 'hello' запрещен 403?
В сторону : причина, по которой я добавил предоставленный API hello, заключается в том, что я также настроил новый проект (так же, как приложение Notes), у которого возникла та же проблема - я не могу вызвать ни одного из это новые проекты API (которые я написал), поскольку все они дают «403 запрещено».
Вот «привет» API, как определено в serverless.yml:
hello:
handler: handler.hello
events:
- http:
path: hello
method: get
authorizer: aws_iam
I проверили, что:
npx aws-api-gateway-cli-test
вызывается с --path-template=’/hello’
.
npx aws-api-gateway-cli-test
по умолчанию GET.
--invoke-url=‘https://“ID”.execute-api.us-east-2.amazonaws.com/dev’
тоже выглядит нормально.
Путь определяется в serverless.yml как 'hello' с методом GET.
Обработчик называется handler.js
и содержит функцию с именем hello
(как указано в руководстве) .
При регистрации в API Gateway > Stages > dev
URL-адрес вызова указывается как https://“ID”.execute-api.us-east-2.amazonaws.com/dev/hello
. (В обоих случаях «ID» заменяется на правильный совпадающий ID без кавычек)
Единственное другое отличие от учебника в том, что я не подключаюсь к «Динамо», у меня нет iamRoleStatements, определенных в serverless.yml.
Любая помощь очень ценится, поскольку я совершенно новичок в этом. Спасибо.