Не могу использовать httpApi при развертывании лямбда-функций в LocalStack с использованием бессерверных технологий.

В целом я новичок в бессерверной работе и пытаюсь настроить LocalStack на своей машине. Я успешно развернул тестовую лямбда-функцию в LocalStack, но в настоящее время столкнулся с проблемой, связанной со шлюзом API.

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

service: localtest

frameworkVersion: ">=1.74.1"

provider:
  name: aws
  runtime: nodejs12.x
  stage: local

plugins:
  - serverless-localstack

custom:
  localstack:
    stages:
      - local
    host: http://localhost  
    autostart: true 
    endpoints:
      S3: http://localhost:4566
      DynamoDB: http://localhost:4566
      CloudFormation: http://localhost:4566
      Elasticsearch: http://localhost:4566
      ES: http://localhost:4566
      SNS: http://localhost:4566
      SQS: http://localhost:4566
      Lambda: http://localhost:4566
      Kinesis: http://localhost:4566
    lambda:
      mountCode: True
    docker:
      sudo: False

functions:
  hello:
    handler: handler.hello
    events:
      - http:
          method: get
          path: /

Результирующий вывод из serverless deploy:

Service Information
service: localtest
stage: local
region: us-east-1
stack: localtest-local
resources: 10
api keys:
  None
endpoints:
  http://localhost:4567/restapis/720w6afoyh/local/_user_request_
functions:
  hello: localtest-local-hello
layers:
  None

Однако при попытке использовать реализацию httpApi в событиях

 - httpApi:
          method: get
          path: /

я получаю несколько ошибок от localstack, и функция кажется развернутой, но не выводит путь.

журнал ошибок из LocalStack:

2020-07-09T11:39:50:WARNING:moto: No Moto CloudFormation support for AWS::ApiGatewayV2::Integration
2020-07-09T11:39:50:WARNING:moto: No Moto CloudFormation support for AWS::ApiGatewayV2::Stage
2020-07-09T11:39:50:WARNING:moto: No Moto CloudFormation support for AWS::ApiGatewayV2::Api
2020-07-09T11:39:50:WARNING:moto: No Moto CloudFormation support for AWS::ApiGatewayV2::Route
2020-07-09T11:39:50:WARNING:moto: No Moto CloudFormation support for AWS::ApiGatewayV2::Api
2020-07-09T11:39:55:WARNING:localstack.services.cloudformation.cloudformation_starter: Unable to resolve "Ref" attribute for: {'Ref': 'HelloLambdaVersionFjNrIW0CS0DGT44Agi2AjgeDtzxVf8vf0JBR6XRariM'} - HelloLambdaVersionFjNrIW0CS0DGT44Agi2AjgeDtzxVf8vf0JBR6XRariM - <class 'moto.awslambda.models.LambdaVersion'>

person Or Duer    schedule 09.07.2020    source источник


Ответы (1)


Я столкнулся с той же проблемой. По-видимому, это поддерживается только в pro версии localstack, а не в бесплатной.

В документах AWS отмечается, что HTTP API используют - v2 версии API Gateway, которая, согласно localstack, поддерживается только в профессиональной версии. .

person Alex Poulos    schedule 13.01.2021