我已经设置了两个提供程序(2个aws帐户),我想在每个帐户上启动一个ec2实例,而不必重复代码。
我尝试使用带有count和for_each的循环,但是没有运气。
[selection1_x[0], scale("x", datetime(
year(invert("x", clamp(x(unit),0,width))),
month(invert("x", clamp(x(unit),0,width))),
date(invert("x", clamp(x(unit),0,width)))
- day(invert("x", clamp(x(unit),0,width)))))]
我遇到下一个错误:
错误:provider.each:未安装合适的版本 版本要求:“(任何版本)” 安装的版本:无
我尝试了类似的代码,遍历ami,实例类型等其他值,并且可以正常工作。
我不确定是否有某些东西我看不到或不支持它的提供程序上的迭代。
对此有任何想法或解决方法吗?谢谢。
答案 0 :(得分:0)
Terraform在其他处理之前将资源与提供者关联(因为提供者的选择会影响aws_instance
的含义,从而影响内部的其他内容),因此provider
参数必须是对a的字面引用提供者。出现此错误消息是因为Terraform认为您正在请求名为“ each”和alias = "value"
的提供程序的提供程序配置,因此它正在尝试安装该提供程序。
在Terraform中表示多个环境的主要方法是为每个环境使用单独的根模块,其中包含该环境的后端和提供程序配置,然后将环境之间共享的公共元素分解为一个或多个共享模块。然后,您可以将更改分别应用于每个环境,从而降低了为某个环境提供机会会无意中影响另一个环境的风险。