AWS SAM模板报错:FunctionUrlConfig不适用于AWS::Serverless::Function资源
问题解答
核心原因
不是官方文档过时,而是AWS SAM模板的版本兼容性问题:
AWS::Serverless::Function资源的FunctionUrlConfig属性是在SAM CLI 1.33.0及以上版本才支持的。如果你的SAM CLI版本低于这个要求,就会触发“属性未定义”的错误。- 官方教程基于最新版SAM CLI编写,但没明确标注版本要求,导致低版本用户踩坑。
解决办法
方案1:升级SAM CLI到最新版
根据你的操作系统执行对应升级命令:
- macOS/Linux:
brew upgrade aws-sam-cli - Windows(使用Chocolatey包管理):
choco upgrade aws-sam-cli - 也可以直接从AWS官方下载对应系统的安装包手动升级。
方案2:不升级SAM CLI的替代写法
不在AWS::Serverless::Function里直接配置FunctionUrlConfig,单独添加AWS::Lambda::Url资源关联你的Lambda函数,示例模板片段:
Resources: MyLambdaFunction: Type: AWS::Serverless::Function Properties: Runtime: python3.9 CodeUri: ./src Handler: app.lambda_handler MyFunctionUrl: Type: AWS::Lambda::Url Properties: TargetFunctionArn: !GetAtt MyLambdaFunction.Arn AuthType: NONE # 可根据需求改成AWS_IAM等认证类型
验证方法
升级后执行sam --version确认版本≥1.33.0,再重新构建部署模板,就能正常识别FunctionUrlConfig属性了。
内容的提问来源于stack exchange,提问作者rulisastra
相关产品推荐
相关产品推荐

