运行Terraform Plan时AWS Lambda缺少Python3.9运行时上下文是什么原因?
报错原因
核心原因是当前使用的Terraform AWS Provider版本过低:
- Terraform的
aws_lambda_function资源的runtime参数允许值列表是硬编码在AWS Provider的发布包中的,不会动态同步AWS官方的最新运行时支持能力。 - AWS在2021年8月才正式上线Lambda Python 3.9运行时,只有v3.56.0及以上版本的Terraform AWS Provider才将
python3.9加入到runtime的合法值校验列表中。你当前使用的Provider版本低于该阈值,因此触发校验报错。
补充说明:你使用的Terraform Core 0.12.31版本本身不影响Python 3.9运行时的支持,Terraform 0.12.x最高可以兼容v3.76.1版本的AWS Provider,完全覆盖支持Python3.9的版本要求。
修复方案
- 在你的Terraform代码的provider约束块中指定AWS Provider版本为3.56.0到3.76.1区间的任意版本即可:
terraform { required_providers { aws = { source = "hashicorp/aws" version = "~> 3.56.0" } } }
- 执行
terraform init -upgrade拉取对应版本的Provider后,重新运行terraform plan即可正常通过校验。
内容的提问来源于stack exchange,提问作者AlexLordThorsen
相关产品推荐
相关产品推荐

