[英]Mandatory Querystring parameter for AWS Lambda using SAM
我有一個 API 端點調用 lambda function。 最簡單的形式是它的模板文件部分:
Resources:
GetS3ObjectsFunction:
Type: AWS::Serverless::Function
Properties:
FunctionName: GetS3Objects
Description: SAM Kata for S3 Access
CodeUri: get_s3_objects/
Handler: main.lambda_handler
Runtime: python3.8
Events:
GetS3ObjectsAPI:
Type: Api
Properties:
Path: /GetS3Objects
Method: get
RequestParameters:
- method.request.querystring.bucket:
Required: true
這是我可以從文檔中找到的最好的。 但是,本地和堆棧部署都沒有對端點施加任何限制,即無論是否提供查詢字符串,或者它是否有存儲桶,都會調用 lambda。
這是預期的行為嗎? 如果查詢字符串中未指定存儲桶,我可以做些什么,以便 API 網關拒絕請求?
在我看來,您應該能夠使用 WAF 規則獲得結果
WAF 規則 - https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statements-list.html上的字符串匹配或正則表達式模式匹配
您應該能夠匹配查詢字符串或單個參數: https://docs.aws.amazon.com/waf/latest/developerguide/waf-rule-statement-fields.html#waf-rule-statement-request-零件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.