使用API网关的验证器来过滤掉包含特殊字符的URL,并使用Lambda代理集成将所有请求传递给Lambda函数。以下是一个代码示例,其中API网关设置了验证器来过滤URL中的特殊字符:
# serverless.yml
service: my-service
provider:
name: aws
runtime: nodejs12.x
functions:
my-function:
handler: src/handler.myFunction
timeout: 10
events:
- http:
path: myEndpoint
method: get
integration: lambda-proxy
request:
validator: myValidator
resources:
Resources:
myValidator:
Type: AWS::ApiGateway::RequestValidator
Properties:
RestApiId:
Ref: ApiGatewayRestApi
ValidateRequestBody: false
ValidateRequestParameters: true
Name: my-validator
ValidateHeaders:
- Content-Type
ValidateQueryParameters: true
ValidatePathParameters: true
ValidateApiKeyRequired: false
在上面的示例中,我们定义了一个名为“myValidator”的验证器来过滤掉包含特殊字符的URL。我们还使用了Lambda代理集成将所有请求传递给Lambda函数。
下一篇:API网关–返回XML或JSON