【问题标题】:how to declare variables for s3 backend in terraform?如何在 terraform 中为 s3 后端声明变量?
【发布时间】:2020-11-12 20:29:32
【问题描述】:

s3.tf

terraform {
backend "s3" {
bucket = "some-bucket"
key = "path/to/key"
region = "some-aws-region" 
}}

如何将存储桶和区域值从 variables.tf 文件传递​​给此?

【问题讨论】:

    标签: variables amazon-s3 runtime terraform


    【解决方案1】:

    你好,这是一个解决方案:

    terraform {
      backend "s3" {
      }
    }
    

    这样传递后端,然后:

    关于 terraform init 命令:

    terraform init \
    -backend-config="bucket=${TFSTATE_BUCKET}" \
    -backend-config="key=${TFSTATE_KEY}" \
    -backend-config="region=${TFSTATE_REGION}" 
    

    你应该使用 env 来设置TFSTATE_BUCKET TFSTATE_KEY and TFSTATE_REGION

    这是文档的链接:the Terraform docs on "Partial Configuration" of Backends

    【讨论】:

    • 好答案!我认为如果它包含指向the Terraform docs on "Partial Configuration" of Backends的链接会更好?
    • @MartinAtkins 谢谢你,是的,你是对的,我会将链接添加到答案:)
    • 我不敢相信这是一个约束......如果你想维护多个阶段,这是一个非常愚蠢的限制。这基本上意味着我必须为每个 terraform 命令创建一个单独的批处理脚本,或者我必须复制 terraform 脚本。谁认为这是个好主意..?
    【解决方案2】:

    我认为这目前是不可能的,因为如果你在其中添加一个变量插值,你会得到一个错误

    terraform.backend:配置不能包含插值

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-05
      • 2023-03-05
      • 1970-01-01
      • 2021-07-24
      相关资源
      最近更新 更多