CloudFront设TLSv1.2_2019后Lambda报错,升级AWS CLI无效求助
排查CloudFront TLSv1.2_2019策略报错的遗漏点
以下是除升级AWS CLI外的关键排查方向:
Lambda运行时的AWS SDK版本过低
CodeBuild环境的AWS CLI版本和Lambda运行时依赖的SDK(如Python的boto3)是完全独立的。确认Lambda函数使用的boto3版本是否≥1.18.0(该版本开始支持CloudFront的TLSv1.2_2019策略):- 若函数依赖自定义打包的SDK,检查
requirements.txt或依赖包版本; - 若使用Lambda运行时自带的SDK,旧版本运行时(如Python 3.7)自带的boto3可能不支持,需升级运行时版本或自定义打包新版SDK。
- 若函数依赖自定义打包的SDK,检查
SAM模板或部署配置的错误/缓存
尽管SAM CLI版本足够,仍需检查:- SAM模板中
ViewerCertificate的MinimumProtocolVersion字段是否准确写为TLSv1.2_2019,无拼写错误; - 部署时是否存在旧栈模板残留,需重新生成部署包并触发完整的栈更新,避免使用缓存的模板配置。
- SAM模板中
CodeBuild构建缓存导致旧依赖残留
CodeBuild的构建缓存可能会打包旧版本的依赖库(如旧版boto3)。在构建步骤中添加清理命令,例如:rm -rf .venv && rm -rf build/确保每次构建都拉取最新的依赖。
Lambda函数代码的硬编码限制
检查Lambda函数内部是否有自定义的TLS策略枚举值列表,或依赖的第三方工具是否硬编码了允许的策略集合,未将TLSv1.2_2019加入其中。VPC或IAM配置限制
若Lambda部署在VPC内,确认其能否正常访问CloudFront的全局API端点,避免因网络限制导致调用旧版本API;同时检查IAM角色是否具备cloudfront:UpdateDistribution等必要权限。
内容的提问来源于stack exchange,提问作者Animesh Sharma
相关产品推荐
相关产品推荐

