全部產品
Search
文件中心

Resource Orchestration Service:如何將Terraform模板轉換為ROS支援的Terraform類型模板?

更新時間:Feb 27, 2024

ROS不支援傳遞Terraform模板,本文為您介紹如何將Terraform模板轉換為ROS支援的Terraform類型模板。

前提條件

請提前安裝alibabacloud-ros-tran。

具體操作,請參見ROS Template Transformer

Terraform模板

Terraform模板相關內容,請參見什麼是Terraform

main.tf

# Configure the AliCloud Provider
provider "alicloud" {}

# Create VPC and VSwitch
resource "alicloud_vpc" "myvpc" {
  cidr_block = "172.16.0.0/12"
  name       = "myvpc"
}

resource "alicloud_vswitch" "myvswitch" {
  vpc_id            = alicloud_vpc.myvpc.id
  cidr_block        = "172.16.0.0/21"
  availability_zone = "cn-beijing-g"
  name              = "myvswitch"
}

output.tf

output "vpc_id" {
  value = alicloud_vpc.myvpc.id
}

output "vswitch_id" {
  value = alicloud_vswitch.myvswitch.id
}

轉換步驟

您可以通過如下命令將Terraform模板轉換成ROS支援的Terraform類型模板。

rostran transform templates/terraform/alicloud -S terraform  --compatible

參數說明

  • templates/terraform/alicloud:本地Terraform模板所在地址。

  • -S:源模板檔案的格式,這裡指定為Terraform格式。支援auto(預設值)、terraform、excel和cloudformation,預設根據SOURCE_PATH尾碼確定源檔案格式。

  • --compatible:Terraform模板轉換為ROS支援的Terraform類型模板時是否使用相容模式。如果相容,則將Terraform檔案內容保留在已經產生的ROS模板中,否則轉換為使用ROS文法的模板。此選項只適用於Terraform模板檔案。

Terraform類型模板

Terraform模板轉換成ROS支援的Terraform類型的模板如下所示。Terraform類型模板結構,請參見Terraform類型模板結構

ROSTemplateFormatVersion: '2015-09-01'
Transform: Aliyun::Terraform-v1.2
Workspace:
  main.tf: |
    # Configure the AliCloud Provider
    provider "alicloud" {}

    # Create VPC and VSwitch
    resource "alicloud_vpc" "myvpc" {
      cidr_block = "172.16.0.0/12"
      name       = "myvpc"
    }

    resource "alicloud_vswitch" "myvswitch" {
      vpc_id            = alicloud_vpc.myvpc.id
      cidr_block        = "172.16.0.0/21"
      availability_zone = "cn-beijing-g"
      name              = "myvswitch"
    }
  output.tf: |
    output "vpc_id" {
      value = alicloud_vpc.myvpc.id
    }

    output "vswitch_id" {
      value = alicloud_vswitch.myvswitch.id
    }