【问题标题】:can a file path be used as a variable input in terraform文件路径可以用作terraform中的变量输入吗
【发布时间】:2022-11-18 01:54:47
【问题描述】:

我想使用路径中的项目名称作为 main.tf 的输入。 例如我的文件路径如下

/env/nonprod/overlay/prj-npe-02/main.tf

在我的 main.tf 中,可以从文件路径“../prj-npe-02/..”中获取输入 var.project_name

main.tf
data "google_project" "project" {
    project_id = var.project_name
}

【问题讨论】:

    标签: terraform


    【解决方案1】:

    这应该可以通过使用 split 和 abspath 函数来实现。 https://developer.hashicorp.com/terraform/language/functions/split https://developer.hashicorp.com/terraform/language/functions/abspath

    locals {
      absolute_path = abspath(path.root)
      project_id    = split("/", local.absolute_path)[3]
    }
    
    
    output "name" {
      value = local.project_id
    }
    

    刚刚在我这边测试过,效果很好。

    如果你想适应你的资源,它应该是这样的。

    data "google_project" "project" {
        project_id = local.project_id
    }
    

    【讨论】:

      【解决方案2】:

      类似于 Hannes 的回答,但我使用正则表达式来得出解决方案

      data "google_project" "project" {
          project_id = regex( "prj-[^\/]+", abspath(path.root))
      }
      

      【讨论】:

        猜你喜欢
        • 2020-11-17
        • 2020-05-30
        • 2020-07-10
        • 2019-02-22
        • 1970-01-01
        • 2012-04-01
        • 1970-01-01
        • 2016-09-24
        • 2011-09-04
        相关资源
        最近更新 更多