我定义了以下 Terraform 模块:
module "lambda" {
source = "../lambda"
region = "us-west-1"
account = "${var.account}"
}
Run Code Online (Sandbox Code Playgroud)
如何利用模块名称来设置source带插值的参数?我希望是这样的:
module "lambda" {
source = "../${this.name}"
region = "us-west-1"
account = "${var.account}"
}
Run Code Online (Sandbox Code Playgroud)
locals {
module = basename(abspath(path.module))
}
{
...
some-id = local.module
...
}
Run Code Online (Sandbox Code Playgroud)
我认为不可能。有一个self允许您引用资源中的属性的标识符,但标识符不是属性。此外,self仅允许在配置者内使用。
我想完成你想要的唯一方法是模板化文件.tf,例如:
module {{ my-module}} {
source = "../{{ my-module }}"
region = "us-west-1"
account = "${var.account}"
Run Code Online (Sandbox Code Playgroud)
但你应该在之前渲染模板terraform init。在 CI 管道中设置很简单,但我发现在本地工作时很麻烦。
| 归档时间: |
|
| 查看次数: |
4368 次 |
| 最近记录: |