AWS::Serverless::Api报StageName未定义,添加OpenApiVersion无效求助
解决SAM本地运行时StageName未定义的错误
核心问题
你模板里的StageName:键名多了个末尾的冒号!JSON键名必须严格匹配AWS SAM的属性定义,这个多余的冒号让属性名变成了无效的StageName:(带冒号),SAM自然识别不到要求的StageName属性,所以抛出了那个错误。
修正后的关键代码片段
"RapidApiGateway": { "Type": "AWS::Serverless::Api", "Properties": { "StageName": "Prod", // 这里去掉了键名后面的冒号 "MethodSettings": [ { "HttpMethod": "*", "ResourcePath": "/*", "ThrottlingRateLimit": 10, "ThrottlingBurstLimit": 10 } ], "Auth": { "DefaultAuthorizer": "RapidAuthorizer", "Authorizers": { "RapidAuthorizer": { "Fn::GetAtt": [ "RapidAuthFunction", "attributeName" ], "Identity": { "Headers": [ "X-RapidAPI-Proxy-Secret" ] } } } } } }
补充说明
- 你看到的
OpenApiVersion: '2.0'方案,主要用于基于OpenAPI规范定义API的场景,和你当前的语法错误无关,所以加了也没用。 - 修正这个语法问题后,再执行
sam local start-api应该就能正常识别StageName,加载授权器配置了。
内容的提问来源于stack exchange,提问作者ChowShow
相关产品推荐
相关产品推荐

