Развертывание приложения SAM выдает ошибку предварительной проверки, но если я создаю метод OPTIONS в консоли aws apigateway, мои предварительные проверки - PullRequest
0 голосов
/ 25 марта 2020

Я использую SAM для создания API в облачной информации.

ВОПРОС: Где в моем шаблоне приложения SAM я могу добавить заголовок 'X-Requested-With'? Как я могу отредактировать свой код так, чтобы предпечатная проверка прошла успешно без необходимости go в AWS консоли?

ПРОБЛЕМА: Я работаю с моим предпечатным запросом и когда Я развертываю свое приложение SAM, я получаю 403 ЗАПРЕЩЕНО в почтальоне, и когда я go на консоли AWS, заголовок 'X-Requested-With' отсутствует.

Если я попытаюсь просто добавить заголовок 'X-Requested-With' впоследствии в консоли, он все равно выдаст ошибку, НО, если я удалю метод OPTIONS в консоли и создам метод OPTIONS из царапина в соответствии с (https://enable-cors.org/server_awsapigateway.html) это работает, и я получаю 200 OK в почтальоне . enter image description here

enter image description here

КОД:

template.yaml

Globals:
  Function:
    Timeout: 10
  Api:
    Cors:
      AllowMethods: "'DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT'"
      AllowHeaders: "'Content-Type,X-Amz-Date,X-Amz-Security-Token,Authorization,X-Api-Key,X-Requested-With,Accept,Access-Control-Allow-Methods,Access-Control-Allow-Origin,Access-Control-Allow-Headers'"
      AllowOrigin: "'*'"

Resources:
  MyApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: Prod
      Auth:
        ApiKeyRequired: true

 MyFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: mypath/
      Handler: app.lambdaHandler
      Runtime: nodejs12.x
      Events:
        KrySeisoen:
          Type: Api
          Properties:
            RestApiId: !Ref MyApi
            Path: /mypath
            Method: get
      Policies:
        - ...
      VpcConfig:
        SecurityGroupIds:
          - ...
        SubnetIds:
          - ...

1 Ответ

0 голосов
/ 30 марта 2020

Поэтому я лаял не на том дереве.

Проблема, с которой я столкнулся, была не в заголовке «X-Requested-With», а в том, что мое приложение SAM устанавливало ApiKeyRequired для true для всех методов.

Все, что мне нужно было сделать, это установить для ApiKeyRequired значение false для всех методов параметров.

Вот ссылка на другой вопрос с решением моей проблемы. Ответ перед полетом 403 запрещен. Как я могу разрешить метод параметров без x-api-ключа?

...