Шаблон CloudFormation для шлюза API с лямбда-прокси и заголовками MethodResponse - PullRequest
0 голосов
/ 21 февраля 2019

Вот головоломка CloudFormation, которую я не могу решить без вашей помощи.Я пытаюсь создать шаблон для API REST с CloudFormation (YAML).API имеет Lambda Proxy и должен иметь MethodResponse, как показано на прикрепленном изображении.

MethodResponse

Пока это мой шаблон, который выдает следующую ошибку при построении стека:

PostMethod: значениеСвойство ResponseParameters должно быть объектом

      ApiGatewayAccount: 
        Type: "AWS::ApiGateway::Account"
        Properties: 
            CloudWatchRoleArn: "some role"
      RestApi:
          Type: "AWS::ApiGateway::RestApi"
          Properties:
            Description: "some rest api"
            EndpointConfiguration:
              Types:
                - REGIONAL
            Name: RestApi

      SomeResource:
        Type: "AWS::ApiGateway::Resource"
        Properties:
          ParentId: 
            Fn::GetAtt: 
              - "RestApi"
              - "RootResourceId"
          PathPart: part
          RestApiId: 
            Ref: "RestApi"

      SomeSubResource:
        Type: "AWS::ApiGateway::Resource"
        Properties:
          ParentId: 
            Ref: "SomeResource"
          PathPart: count
          RestApiId: 
            Ref: "RestApi"

      SomeResponseModel:
        Type: "AWS::ApiGateway::Model"
        Properties:
          ContentType: "text/html"
          Description: "Empty text/html response."
          Name: someresponse
          RestApiId: 
            !Ref RestApi
          Schema: {}

      PostMethod:
        Type: "AWS::ApiGateway::Method"
        Properties:
          HttpMethod: POST
          Integration:
            IntegrationHttpMethod: POST
            Type: AWS_PROXY
            Uri: 
              Fn::Join:
                - ""
                - - "arn:aws:apigateway:"
                  - "some-region"
                  - ":lambda:path/2015-03-31/functions/"
                  - "some-arn-of-lambda-function"
          MethodResponses:
            -
              ResponseModels:
                Key: "application/x-www.form-urlencoded"
                Value: 
                  !Ref SomeResponse
              ResponseParameters:
                  - method.response.header.Content-Length: true
                  - method.response.header.Content-Type: true
                  - method.response.header.Connection: true
              StatusCode: 200
          OperationName: SomeName
          ResourceId:
            !Ref "SomeSubResource"
          RestApiId: 
            !Ref "RestApi"

1 Ответ

0 голосов
/ 21 февраля 2019

Согласно документации , может показаться, что это не должен быть список пар ключ-значение, а просто объект, где каждыйзапись - это просто еще один ключ / значение.

Я ожидаю, что сработает следующее:

ResponseParameters:
  method.response.header.Content-Length: true
  method.response.header.Content-Type: true
  method.response.header.Connection: true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...