Ошибка при получении: Отсутствует токен аутентификации после запроса API AWS

Я пытаюсь вызвать функцию Lambda через AWS API Gateway.

Я получаю эту ошибку, когда я пытался проверить подлинность IAM, аутентификацию ключа API, а также без аутентификации. введите описание изображения здесь

{"message":"Missing Authentication Token"}

У некоторых людей была такая же проблема из-за отсутствия существующей конечной точки. Тем не менее, я взял конечную точку непосредственно из Lambda Function AWS Console. введите описание изображения здесь

Я пытаюсь открыть URL-адрес в браузере, а также в Postman (с аутентификацией заголовка и без него: x-api-key: **************** *). введите описание изображения здесь

Оба ответили вышеуказанной ошибкой.

Ответ 1

Еще один шаг: в Postman вам нужно установить Авторизация на Подпись AWS, а затем введите AccessKey и SecretKey от пользователя IAM:

Снимок экрана Postman Postman screenshot

Ответ 2

Я напишу подробный FAQ здесь для всех зрителей. Упорядочено по наиболее распространенной причине.

  • Неправильный путь ресурса и/или метод HTTP.
    • Если у вас есть правильный путь к ресурсу и неправильный метод HTTP, вы все равно увидите это сообщение
    • Вы можете использовать Postman или другого клиента для подписи запроса к тому же ресурсу/методу и , если вы получаете 404, то у вас определенно есть неправильный ресурс/метод.
  • Отсутствует подпись в защищенном ресурсе/методе. По умолчанию ваш API будет открыт. Если вам явно требуется AWS Auth, тогда ошибка указывает, что запрос не был подписан.
  • Если вы используете консоль Lambda для создания "конечной точки API", это может быть проблемой на конце Lambda или задержкой в ​​распространении нового API. В этом случае перейдите в консоль API Gateway, и вы увидите тот же API, что и Lambda для вас. Убедитесь, что он был развернут, и у вас есть правильная стадия, путь к ресурсу и метод.

Ответ 3

Вы должны включить CORS из действий для API. Это создаст новый метод OPTIONS. CORS для запросов на междоменные запросы