我使用的是最新版本的terraform,我正试图找到一种方法,将事件桥转发器部署到我们AWS帐户中的所有区域。
我想动态地这样做,这样当创建一个新的区域时,我就不需要更新静态提供者列表。
我在一个模块中进行了部署,我一直在尝试在类似于的aws_regions数据部分上循环
data "aws_regions" "this" {}
module "eventbridge"{
for_each = toset([for region in data.aws_regions.this.names : "aws.${region}"])
source = "../../modules/eventbridge"
region = each.value
}
模块中有一个使用区域变量的提供者部分,但模块中的提供者不再被允许,我现在没有主意了!
有人能提出这样做的方法吗?
谢谢!
您试图做的(通过提供程序循环(只是TF不支持。您必须显式列出要使用的每个提供程序的所有模块,或者创建一些外部脚本来预处理TF代码并自动执行。
或者,您可以使用CloudFormation Stack Sets,这是一种跨多个地区和帐户部署AWS资源的简单方法。