Конечные точки HTTP с AWS_IAM Авторизаторы всегда возвращают false - PullRequest
0 голосов
/ 01 марта 2019

У меня есть бессерверный js API с настройкой аутентификации IAM, я проверил мой API и его работоспособность локально, используя Serverless offline start, но после его развертывания я хотел протестировать его с помощью почтальона, чтобы узнать, что я должен передать в запроседля использования в веб-интерфейсе, поэтому я сделал следующее в почтальоне:

1 - введен URL-адрес get для функции, которую я получил, запустив Serverless info

2 - добавьте аутентификацию на вкладке аутентификации, который имеет тип подписи AWS и заполняет необходимую информацию.

3- Отправив запрос от почтальона, верните следующее:

{
    "status": false
}

с 500 Internal Server Error

Пытаясь отладить это, я пошел в облачный фронт AWS и обнаружил следующие журналы:

START RequestId: 48994b56-8cad-4fc6-bc3d-c90d1f927d10 Version: $LATEST

2019-03-01T17:09:13.255Z    48994b56-8cad-4fc6-bc3d-c90d1f927d10    ===ValidationException: One or more parameter values were invalid: Condition parameter type does not match schema type

END RequestId: 48994b56-8cad-4fc6-bc3d-c90d1f927d10

REPORT RequestId: 48994b56-8cad-4fc6-bc3d-c90d1f927d10  Duration: 32.99 ms  Billed Duration: 100 ms Memory Size: 1024 MB    Max Memory Used: 63 MB  

Я не знаю, какие параметры необходимо отправить, так как я могу отладить это больше?

Я попытался отправить токен аутентификации типа Bearer, используя метод аутентификации чуть-чуть почтальона, но он слишком сложен и дал тот же результат!

вот мой API Serконфигурации без вершин:

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
  create:
    handler: src/orders/create.main
    events:
      - http:
          path: orders
          method: post
          cors: true
          authorizer: aws_iam

  get:
    # Defines an HTTP API endpoint that calls the main function in get.js
    # - path: url path is /notes/{id}
    # - method: GET request
    handler: src/orders/get.main
    events:
      - http:
          path: orders/{id}
          method: get
          cors: true
          authorizer: aws_iam

Для справок, я следовал этим учебным пособиям:

1- Без сервера js api: http://serverless -stack.com

2- AWS-cognito-angular-quickstart https://github.com/awslabs/aws-cognito-angular-quickstart.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...