我对terraform文档中关于模块的内容有点困惑。以下是它所说的关于模块的内容:
https://www.terraform.io/docs/language/modules/index.html
模块是用于同时使用多个资源的容器。 模块由在目录中放在一起的.tf和/或.tf.json文件集合组成。
以下是关于提供程序的内容: https://www.terraform.io/docs/language/providers/requirements.html
要求提供商
每个Terraform模块必须声明它需要哪些提供商,以便Terraform可以安装和使用它们。 提供者要求在required_providers块中声明。
提供程序要求由本地名称、源位置和版本约束组成:
terraform {
required_providers {
mycloud = {
source = "mycorp/mycloud"
version = "~> 1.0"
}
}
}
我感到困惑,因为我从未在我的任何模块中指定required_providers
,尽管我正在使用提供程序,并且它说我必须这样做。直到今天我才知道文档上说了这一点。那么,我是误解了文档,还是文档有误?我的每个模块都需要
required_providers
吗?我的terraform配置肯定可以不用它们工作,所以它们默认是什么?如果是的话,是如何和在哪里默认的?