Terraform是一个开源的自动化资源编排工具。资源编排服务ROS(Resource Orchestration Service)为Terraform提供了托管的能力,您可以创建Terraform类型的模板和资源栈,编排阿里云、AWS或Azure的资源。Terraform功能兼容ROS API,您只需创建Terraform类型模板,即可调用ROS API实现相应功能。
使用限制
关于Terraform对ROS功能和资源的支持情况,请参见Terraform支持的功能和资源。
应用场景
创建Terraform类型资源栈
如果您希望在多个云平台(例如AWS、Azure等)或非云平台上创建并管理资源,Terraform可以帮助您实现跨云平台的资源编排和管理,您可以通过创建Terraform类型资源栈统一管理不同云平台上的资源。具体操作,请参见创建Terraform类型资源栈。
创建Terraform类型模板
如果您希望在阿里云平台上创建并管理多云平台(AWS、Azure等)的资源,您可以在模板中定义多云平台的资源以及资源之间的依赖关系,方便您进行多云环境下的资源管理。具体操作,请参见创建Terraform类型模板。
模板结构
Terraform类型模板是资源编排服务ROS(Resource Orchestration Service)托管Terraform后支持的模板,用于编排阿里云、AWS或Azure的资源。您可以在模板中定义资源、参数以及资源间的依赖关系。更多信息,请参见Terraform类型模板结构。关于如何定义模板中的参数,请参见什么是Terraform。
代码的开发和建议
开发方式
建议您使用熟悉的开发方式编写和测试Terraform代码。您可以采用以下开发方式:
本地开发。
使用Terraform在线调试工具开发(仅支持阿里云)。
使用ROS创建Terraform类型资源栈,然后根据需求继续创建或更新资源栈。更多信息,请参见创建Terraform类型资源栈、继续创建资源栈和更新资源栈。
开发建议
资源编排为Terraform提供了托管能力,当您了解了Terraform和Terraform托管方式,需要开发Terraform代码并在ROS中使用时,可以采用以下建议。更多信息,请参见Terraform代码开发方式和建议。
细化变量定义。
建议指定Provider版本。
通过伪参数获取资源栈信息。
控制参数(变量)在控制台的输入方式。
建议使用Aliyun::Terraform-v1.0及其以上版本。
使用Metadata控制参数(变量)在控制台的显示。
把仅供本地使用的代码放入以.debug.tf结尾的文件。
不建议在.tf文件中声明阿里云(alicloud)Provider。
不建议使用.tfvars文件,而是通过ROS参数传递变量值。
Terraform模板示例
关于Terraform的更多模板示例,请参见Terraform模板示例。