Provider 多Provider定义 在 requiredproviders 声明后,可以使用 provider 块进一步声明provider配置。 java provider "ctyun" { regionid "200000001852" azname "cnhuabei2tj1Apublicctcloud" } 上述代码块的主体({和之间})包含天翼云的provider的配置参数。在本例中 regionid 和 azname 都是由 ctyun 的provider的定义的。除了provider中提供的参数外,还有两个由 Terraform 本身定义且适用于所有 provider 块的“元参数”: alias :多provider配置字段 version:已弃用,被 requiredproviders 中 version 取代 利用alias参数可以支持云平台的多个region,用于提供多资源池,多场景高可用的需求。可以通过创建多个provider声明块实现。对于每个额外的非默认配置,请使用alias元参数提供额外的名称段。例如: java 默认provider配置;以 ctyun 开头的资源将使用 它作为默认值,并且可以将其引用为 ctyun。 provider "ctyun" { regionid "200000002368" azname "cnxinan1xn1Apublicctcloud" } 华北2的provider配置;资源可以将其引用为 ctyun.huabei2。 provider "ctyun" { alias "huabei2" regionid "200000001852" azname "cnhuabei2tj1Apublicctcloud" } 上述示例中声明了西南1和华北2资源池的provider,并对华北2资源池增加了别名,在资源中使用元参数 provider 来选择非默认的 provider块,其格式为: . java 创建vpc,指定vpc创建在华北2资源池 resource "ctyunvpc" "vpctest" { provider ctyun.huabei2 name "tfvpc" cidr "192.168.0.0/16" description "terraform测试使用" enableipv6 true } 当然,天翼云支持在某个资源声明中直接指定region和可用区(az)信息,相比 alias + provider 的方式,这种方式更加灵活简单。 java provider "ctyun" { regionid "200000002368" azname "cnxinan1xn1Apublicctcloud" }