Amazon web services 使用SAM的AWS Lambda的强制Querystring参数

Amazon web services 使用SAM的AWS Lambda的强制Querystring参数,amazon-web-services,aws-lambda,aws-api-gateway,aws-sam,Amazon Web Services,Aws Lambda,Aws Api Gateway,Aws Sam,我有一个调用lambda函数的API端点。以下是最简单的模板文件部分: 资源: GetS3ObjectsFunction: 类型:AWS::Serverless::Function 特性: 函数名:GetS3Objects 描述:SAM Kata用于S3访问 CodeUri:get_s3_对象/ 处理程序:main.lambda\u处理程序 运行时:python3.8 活动: GetS3ObjectsAPI: 类型:Api 特性: 路径:/GetS3Objects 方法:获取 请求参数: -方法

我有一个调用lambda函数的API端点。以下是最简单的模板文件部分:

资源:
GetS3ObjectsFunction:
类型:AWS::Serverless::Function
特性:
函数名:GetS3Objects
描述:SAM Kata用于S3访问
CodeUri:get_s3_对象/
处理程序:main.lambda\u处理程序
运行时:python3.8
活动:
GetS3ObjectsAPI:
类型:Api
特性:
路径:/GetS3Objects
方法:获取
请求参数:
-方法.request.querystring.bucket:
必填项:true
这是我能从文档中找到的最好的。但是,本地部署和堆栈部署都不会对端点施加任何限制,即无论是否提供查询字符串,或是否具有bucket,都将调用lambda


这是预期的行为吗?如果查询字符串中未指定bucket,我是否可以采取措施使API网关拒绝该请求?

在我看来,您应该能够使用WAF规则获得结果

API GW文件

WAF规则-上的字符串匹配或正则表达式模式匹配

您应该能够匹配查询字符串或单个参数: