pka*_*mol 5 terraform terragrunt
我正在使用 Terragrunt 运行 Terraform,所以我实际上不确定调用 terraform 的路径。
所以我试图按如下方式获取当前工作目录:
resource null_resource "pwd" {
triggers {
always_run = "${uuid()}"
}
provisioner "local-exec" {
command = "echo $pwd >> somefile.txt"
}
}
Run Code Online (Sandbox Code Playgroud)
但是生成的文件是空的。
有什么建议?
Mar*_*ins 34
Terraform 有一个内置对象path
,其中包含 Terraform 知道的各种路径的属性:
path.module
是包含path.module
放置表达式的模块的目录。path.root
是包含根模块的目录。path.cwd
是当前工作目录。在编写 Terraform 模块时,我们通常希望解析相对于模块本身的路径,以便它是自包含的,不会对配置中的任何其他模块做出任何假设或造成影响。因此path.module
通常是正确的选择,使模块与实例化的位置无关。
使用当前工作目录非常不常见,因为这会使 Terraform 配置对其应用的位置敏感,并且如果您以后从不同目录或完全不同的机器上应用相同的配置,可能会导致不必要的资源更改。但是,在需要这样东西的罕见情况下,path.cwd
会这样做。
path.module
和path.root
都是来自 的相对路径path.cwd
,因为这最大限度地减少了无意中将有关 Terraform 运行到配置的系统的详细信息引入的风险。但是,如果出于某种原因确实需要绝对模块路径,则可以使用abspath
, 如abspath(path.module)
.
归档时间: |
|
查看次数: |
9757 次 |
最近记录: |