如何使提供程序 assume_role 块有条件
How to make provider assume_role block conditional
我有一个 provider
块,我想给它一个 assume_role
属性 但前提是它不是 运行 在我的本地机器上。
我在所有环境 .tfvars
文件中定义了一个变量 islocal
,只有本地文件的值为 true
.
这是 provider
块:
provider "aws" {
region = var.region1
profile = var.islocal == true ? "default" : null # ONLY USED LOCALLY
assume_role { # NOT TO BE USED LOCALLY
role_arn = var.terraform_execution_role
}
}
问题:
- 如果我将
role_arn
属性 设置为 null
是否会使 assume_role
块无效? (即:和不在场一样)
- 如果
assume_role
块确实有影响,即使role_arn
值为null
,我如何在var.islocal
为[=16]时完全删除它=]?
我考虑过动态块,但不确定如何构造它。
您可以在您的提供商中使用 dynamic blocks:
provider "aws" {
region = var.region1
profile = var.islocal == true ? "default" : null # ONLY USED LOCALLY
dynamic "assume_role" {
for_each = var.islocal == true ? [] : [1]
content {
role_arn = var.terraform_execution_role
}
}
}
我有一个 provider
块,我想给它一个 assume_role
属性 但前提是它不是 运行 在我的本地机器上。
我在所有环境 .tfvars
文件中定义了一个变量 islocal
,只有本地文件的值为 true
.
这是 provider
块:
provider "aws" {
region = var.region1
profile = var.islocal == true ? "default" : null # ONLY USED LOCALLY
assume_role { # NOT TO BE USED LOCALLY
role_arn = var.terraform_execution_role
}
}
问题:
- 如果我将
role_arn
属性 设置为null
是否会使assume_role
块无效? (即:和不在场一样) - 如果
assume_role
块确实有影响,即使role_arn
值为null
,我如何在var.islocal
为[=16]时完全删除它=]?
我考虑过动态块,但不确定如何构造它。
您可以在您的提供商中使用 dynamic blocks:
provider "aws" {
region = var.region1
profile = var.islocal == true ? "default" : null # ONLY USED LOCALLY
dynamic "assume_role" {
for_each = var.islocal == true ? [] : [1]
content {
role_arn = var.terraform_execution_role
}
}
}