Добавление дополнительного ресурса без сервера для AWS API Gateway - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть серверное приложение с http-событием.Мне нужно создать дочерний ресурс для конечной точки, созданной без сервера.

Как я могу сделать это с помощью без сервера?

Шаблон выглядит так:

provider:
  name: aws
  runtime: nodejs8.10
  region: <REGION>
functions:
  myFunc:
    timeout: 30
    handler: "index.handler" 
    name: "myFunc"
  events:
  - http:
    path: /myFunc
    method: post
    cors: true

resources:
  Resources:
    saysResource:
      Type: "AWS::ApiGateway::Resource"
      Properties:
        RestApiId:
          Ref: ApiGatewayRestApi 
        ParentId:
          Ref: <NEED_/myFunc_RESOURCE_ID_HERE>
        PathPart: "{says}"

  GetMethod:
    Type: "AWS::ApiGateway::Method"
        Properties:
          HttpMethod: GET
          RequestParameters:
            'method.request.path.says': true
          RestApiId:
            Ref: ApiGatewayRestApi
          ResourceId:
            Ref: saysResource
          Integration:
            Type: aws
            Credentials:
              Ref: S3ReadAccessRole
            IntegrationHttpMethod: GET
            PassthroughBehavior: WHEN_NO_MATCH
            RequestParameters:
              'integration.request.path.key': 'method.request.path.says'
            Uri:  'arn:aws:s3:::my-bucket/users/{key}'

Чтобы попытаться заставить его работать, я повторно объявляюресурс для /myFunc был выполнен (в надежде, что CFN не создаст уже созданные ресурсы):

myFuncResource:
  Type: "AWS::ApiGateway::Resource"
  Properties:
    RestApiId:
      Ref: ApiGatewayRestApi
    ParentId:
      Fn::GetAtt:
        - ApiGatewayRestApi
        - RootResourceId
    PathPart: "/myFunc"

Ошибка:

An error occurred: myFuncResource - Another resource with the same parent 
already has this name: my-func (Service: AmazonApiGateway; Status Code: 
409; Error Code: ConflictException; Request ID: <Request_Id>).
...