Abi*_*ami 6 aws-lambda serverless-framework
我通过使用无服务器框架部署的lambda函数配置了API网关.我已经在yaml文件中定义了一些queryStringParameters为true.但是,即使在URL中未传递Required(强制)queryStringParams,请求也会通过该服务.PFB类似的配置.
functions:
functionName:
name: serviceName
handler: handler.handle
events:
- http:
path: /path
method: get
request:
parameters:
querystrings:
param1: true
param2: true
似乎无服务器无法验证param1和param2是否作为queryString传递.我们应该有一个明确的请求验证器吗?是否可以使用无服务器?
来到这里寻找一个简单、直接的答案,并且不想按照“使用无服务器框架的请求验证”中的建议添加插件。
如果您根据需要设置参数并希望验证它们,则必须在serverless.yml中添加请求验证器
Resources:
ParameterRequestValidator:
Type: AWS::ApiGateway::RequestValidator
Properties:
Name: ParameterRequestValidator
RestApiId:
Ref: ApiGatewayRestApi
ValidateRequestBody: false
ValidateRequestParameters: true
ApiGatewayMethodNameOfYourApiLookItUpInYourTemplate:
Properties:
RequestValidatorId:
Ref: ParameterRequestValidator
Run Code Online (Sandbox Code Playgroud)
您想要验证的方法将被命名为类似ApiGateway<Method><Get | Post | Patch | Put | Delete >:. 您可以在将无服务器函数打包到创建的模板文件中时查找该名称。
此解决方案请访问https://github.com/serverless/serverless/issues/5034#issuecomment-581832806
| 归档时间: |
|
| 查看次数: |
1381 次 |
| 最近记录: |