Todos os produtos
Search
Central de documentação

Resource Orchestration Service:Criar um modelo do Terraform

Última atualização: Jun 27, 2026

Para provisionar recursos no Alibaba Cloud, Amazon Web Services (AWS) e Microsoft Azure a partir de um único fluxo de trabalho, utilize o Resource Orchestration Service (ROS) com modelos do Terraform. Defina todos os recursos e seus relacionamentos de dependência em um único modelo e gerencie sua infraestrutura multicloud sem alternar entre provedores.

Cenário

Caso deseje criar e gerenciar recursos de plataformas de nuvem de terceiros, como AWS e Microsoft Azure, diretamente no Alibaba Cloud, defina esses recursos externos e configure as relações de dependência em um modelo do Terraform. Essa abordagem facilita o gerenciamento unificado de recursos em diferentes plataformas de nuvem.

Estrutura do modelo do Terraform

Todo workspace do Terraform possui arquivos de configuração em seu diretório raiz, que o Terraform considera como o módulo raiz. É possível organizar recursos relacionados em módulos filhos armazenados em subdiretórios (por exemplo, modules/vpc/). O módulo raiz invoca os módulos filhos por meio de blocos module, e os módulos filhos expõem valores de volta ao módulo raiz através de blocos output.

Para obter mais informações sobre a estrutura dos modelos do Terraform, consulte Estrutura dos modelos do Terraform.

Criar um modelo do Terraform

O procedimento a seguir cria um modelo do Terraform no ROS. O exemplo provisiona um vSwitch em uma virtual private cloud (VPC), utilizando um módulo filho para separar a definição da VPC da configuração raiz.

  1. Faça login no console do ROS./@cmd

  2. No painel de navegação à esquerda, escolha Templates > My Templates. /@cmd

  3. Na página My Templates, clique em Create Template./@cmd

  4. Defina o parâmetro Template Type como Terraform Template./@cmd

  5. Crie os arquivos do modelo do Terraform./@cmd

    O exemplo abaixo cria um vSwitch em uma VPC. O módulo filho (modules/vpc/main.tf) define a VPC, enquanto o arquivo main.tf raiz chama esse módulo e cria o vSwitch usando o ID da VPC transmitido por meio de um output.

    Estrutura final de diretórios:

    .
    ├── main.tf           (root module — creates the vSwitch)
    └── modules/
        └── vpc/
            └── main.tf   (child module — creates the VPC)
    1. Crie o arquivo modules/vpc/main.tf para definir a VPC.

      1. No canto superior direito da seção Directory, clique em + e selecione Create Folder.

      2. Na caixa de diálogo Create Folder, insira modules e clique em OK. Uma pasta chamada modules será criada na seção Directory.

      3. Passe o mouse sobre a pasta modules, clique em + à direita e selecione Create Folder.

      4. Na caixa de diálogo Create Folder, insira vpc e clique em OK. Uma pasta chamada vpc será criada dentro de modules.

      5. Passe o mouse sobre a pasta vpc, clique em + à direita e selecione Create File.

      6. Na caixa de diálogo Create File, insira main.tf e clique em OK. Um arquivo chamado main.tf será criado na pasta vpc.

      7. Clique em main.tf e insira o código a seguir no editor de código:

        modules/vpc/main.tf

        # Create a VPC
        resource "alicloud_vpc" "vpc" {
          name       = "tf_test"
          cidr_block = "172.16.0.0/12"
        }
        
        # Expose the VPC ID so the root module can reference it
        output "vpc_id" {
          value = "${alicloud_vpc.vpc.id}"
        }

        O bloco resource cria a VPC. Já o bloco output transmite o ID da VPC para qualquer módulo que invoque este.

    2. Edite o arquivo main.tf raiz para chamar o módulo da VPC e criar o vSwitch.

      1. Clique em main.tf no diretório raiz.

      2. Insira o código a seguir no editor de código:

        main.tf

        # Call the VPC child module
        module "my_vpc" {
          source = "./modules/vpc"
        }
        
        # Create a vSwitch in the VPC using the output from the child module
        resource "alicloud_vswitch" "vsw" {
          vpc_id            = "${module.my_vpc.vpc_id}"
          cidr_block        = "172.16.0.0/21"
          availability_zone = "cn-shanghai-b"
        }
        
        # Expose the vSwitch ID for use by other resources
        output "vsw_id" {
          value = "${alicloud_vswitch.vsw.id}"
        }

        O bloco module chama o módulo filho da VPC e disponibiliza seus outputs como module.my_vpc.*. O bloco resource do vSwitch referencia module.my_vpc.vpc_id para utilizar a VPC criada pelo módulo filho. É dessa forma que se expressam as relações de dependência entre módulos.

  6. No canto inferior esquerdo da página Create Template, escolha Save Template > Save as My Template./@cmd

  7. Na caixa de diálogo Save as My Template, configure os parâmetros Template Name, Template Description, Resource Group e Tag./@cmd

  8. Clique em OK./@cmd

Referências