Код ошибки 500 при вызове API с клиента

#amazon-web-services

#amazon-web-services

Вопрос:

У меня есть лямбда-функция, и когда я вызываю ее из своего приложения React, я получаю следующие 2 ошибки:

POST https://x7429ccke5.execute-api.eu-west-1.amazonaws.com/prod/sites 500

и

Uncaught (in promise) Error: Request failed with status code 500
at createError (createError.js:17)
at settle (settle.js:19)
at XMLHttpRequest.handleLoad (xhr.js:78)

На моем веб-сайте еще нет системы входа в систему, поэтому я хочу вызвать api без необходимого разрешения, поэтому в моем serverless.yml у меня есть это как

 functions:
  # Defines an HTTP API endpoint that calls the main function in create.js
  # - path: url path is /notes
  # - method: POST request
  # - cors: enabled CORS (Cross-Origin Resource Sharing) for browser cross
  #     domain api call
  # - authorizer: authenticate using the AWS IAM role
  createSite:
    handler: CreateSite.main
    events:
      - http:
          path: sites
          method: post
          cors: true
          arn: "arn:aws:execute-api:eu-west-1:106845550704:x7429ccke5/*/POST/sites"
  

Комментарии:

1. Пожалуйста, уточните проблему. Очень сложно понять, что вы хотите сделать и что происходит!

2. Извините, на моем клиенте я вызываю функцию POST api при отправке формы. У меня развернута функция aws lambda, но она возвращает ошибку 500, хотя, когда я тестирую ее в консоли aws, она работает нормально

3. Когда я нажимаю на ошибку, я получаю сообщение об «отсутствии токена аутентификации», но в aws я установил для аутентификации значение «нет»

Ответ №1:

Я подозреваю, что проблема связана с интеграцией API Gateway с lambda. Это ваш шлюз API выдает ошибку 500. Пожалуйста, проверьте, является ли ваш шлюз API промежуточным или нет. Если это промежуточное, проверьте это:

https://docs.aws.amazon.com/apigateway/latest/developerguide/amazon-api-gateway-using-stage-variables.html#call-api-http-backend-via-stage-variable

Дайте мне знать, если это все еще не работает.

Комментарии:

1. Все еще не сработало. Я также использую postman, чтобы попробовать и протестировать его, и получаю ту же ошибку