如何将GitHub Actions工作流输入值传递到Terraform变量文件
解决方法
问题核心根因:HCL(你提到的THL应为拼写错误)本身不支持解析GitHub Actions的上下文语法,直接将${{ github.event.inputs.new_planet }}写入variables.tf文件中时,Terraform执行过程无法读取GitHub运行时的上下文数据,该表达式不会被正常解析。
具体操作步骤
- 第一步:修正variables.tf配置,删除变量定义中的GitHub上下文表达式,按Terraform标准语法定义变量即可:
variable "backend_bucket" { type = string default = "可填写自定义默认值,也可留空" description = "The backend bucket name" }
- 第二步:调整GitHub Actions中terraform plan步骤的执行命令,通过
-var参数将工作流输入值直接传递给对应Terraform变量:
- name: terraform plan id: plan run: | terraform plan -var-file=variables.tf -var "backend_bucket=${{ github.event.inputs.new_planet }}"
原理解释
Terraform中-var参数传递的变量优先级高于变量文件中定义的默认值,通过该方式传入的backend_bucket值会覆盖variables.tf中配置的默认值,实现工作流输入到Terraform变量的透传。如果有多个变量需要传递,可叠加多个-var参数,也可在工作流中动态生成.tfvars格式的临时变量文件后通过-var-file参数指定加载。
内容的提问来源于stack exchange,提问作者Shay Pinchasi
相关产品推荐
相关产品推荐

