总的来说,我对无服务器还是个新手,正在尝试在我的机器上设置LocalStack。我已经成功地将一个测试lambda函数部署到了LocalStack,但是目前面临着一个关于API Gateway的问题。
在使用下面的配置进行部署时,一切工作正常,并且我能够使用http正确访问lambda函数,并在部署结束时像往常一样打印得到的端点:
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'>发布于 2021-01-13 23:00:43
我遇到了同样的问题。这显然只在本地堆栈的pro版本中支持,而不是免费版本。
AWS docs注意到HTTP使用-v2版本的API Gateway,根据localstack repo的说法,这只在pro版本中受支持。
https://stackoverflow.com/questions/62814212
复制相似问题