# Workloads - Terraform Resources

import DocButton from '~/components/webkit/DocButton.vue';

<DocButton href="https://registry.terraform.io/providers/aziontech/azion/latest/docs/resources/workload" label="Ver no Terraform Registry" kind="secondary" size="medium" />

Workloads são a unidade fundamental de deploy na Azion Platform. Eles representam suas aplicações e serviços que são entregues através da rede global de edge nodes.

---


O recurso `azion_workload` permite gerenciar workloads através do Terraform. Cada workload pode ter múltiplos deployments, gerenciados pelo recurso `azion_workload_deployment`.

### Recursos Disponíveis

| Recurso | Descrição |
|---------|-----------|
| [`azion_workload`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/resources/workload) | Cria e gerencia workloads |
| [`azion_workload_deployment`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/resources/workload_deployment) | Cria e gerencia deployments de workloads |

### Data Sources Disponíveis

| Data Source | Descrição |
|--------------|-----------|
| [`azion_workloads`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/data-sources/workloads) | Consulta workloads existentes |

---

## azion_workload

### Exemplo Básico

```hcl
resource "azion_workload" "example" {
  name = "meu-workload"
  
  # Configurações do workload
}
```

### Argumentos Principais

| Argumento | Tipo | Obrigatório | Descrição |
|-----------|------|--------------|-----------|
| `name` | string | Sim | Nome único do workload |

Para a lista completa de argumentos, consulte o [Terraform Registry](https://registry.terraform.io/providers/aziontech/azion/latest/docs/resources/workload).

### Atributos Exportados

| Atributo | Tipo | Descrição |
|----------|------|-----------|
| `id` | string | ID único do workload |

---

## azion_workload_deployment

### Exemplo Básico

```hcl
resource "azion_workload" "example" {
  name = "meu-workload"
}

resource "azion_workload_deployment" "example" {
  workload_id = azion_workload.example.id
  
  # Configurações do deployment
}
```

### Argumentos Principais

| Argumento | Tipo | Obrigatório | Descrição |
|-----------|------|--------------|-----------|
| `workload_id` | string | Sim | ID do workload associado |

Para a lista completa de argumentos, consulte o [Terraform Registry](https://registry.terraform.io/providers/aziontech/azion/latest/docs/resources/workload_deployment).

---

## Exemplo Completo

```hcl
terraform {
  required_providers {
    azion = {
      source  = "aziontech/azion"
      version = "2.0.0"
    }
  }
}

provider "azion" {
  api_token = var.api_token
}

# Criar um workload
resource "azion_workload" "my_app" {
  name = "minha-aplicacao"
}

# Criar um deployment para o workload
resource "azion_workload_deployment" "my_app_deployment" {
  workload_id = azion_workload.my_app.id
  
  # Configurações adicionais do deployment
}

# Consultar workloads existentes
data "azion_workloads" "all" {}

output "workload_id" {
  value = azion_workload.my_app.id
}
```

---

## Migração de Domains (V3 para V4)

Se você está migrando da API v3, o recurso `azion_domain` foi substituído por `azion_workload` e `azion_workload_deployment`.

### Antes (V3)

```hcl
resource "azion_domain" "example" {
  name             = "meu-dominio"
  application = 12345
  domain_name      = "exemplo.com"
}
```

### Depois (V4)

```hcl
resource "azion_workload" "example" {
  name = "meu-workload"
}

resource "azion_workload_deployment" "example" {
  workload_id = azion_workload.example.id
}
```

Consulte o [Guia de Migração](/pt-br/documentacao/produtos/terraform-provider/migration-v3-to-v4/) para mais detalhes.

---

## Próximos Passos

- [Connectors](/pt-br/documentacao/produtos/terraform-provider/resources/connectors/) - Gerencie conectores de origem
- [Applications](/pt-br/documentacao/produtos/terraform-provider/resources/applications/) - Gerencie aplicações
- [Guia de Migração](/pt-br/documentacao/produtos/terraform-provider/migration-v3-to-v4/) - Migre da v1.x para v2.0