# Recursos de Workloads

[Ver no Terraform Registry](https://registry.terraform.io/providers/aziontech/azion/latest/docs/resources/workload)

Um workload é a unidade de deploy da Azion Platform: ele representa uma aplicação ou um serviço que a infraestrutura distribuída da Azion entrega. O Azion Terraform Provider gerencia [Workloads](/pt-br/documentacao/plataforma/workloads/) com dois recursos e lê workloads com quatro data sources. Um workload pode ter vários deployments, e cada deployment é um recurso `azion_workload_deployment` separado. No provider v1.x, um único recurso de domínio fazia o trabalho desses dois recursos. Para migrar uma configuração v1.x para eles, consulte [Migre do provider v1.x para o v2.0](/pt-br/documentacao/devtools/terraform/migration-v3-to-v4/).

---

## Recursos de workload

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

`azion_workload` exige `name`, uma string que contém o nome único do workload, e exporta `id`, uma string que contém o ID único do workload. `azion_workload_deployment` exige `workload_id`, uma string que contém o ID do workload do qual ele faz o deploy. A página de cada recurso no Terraform Registry lista todos os argumentos.

---

## Data sources

| Data source                                                                                                                           | Descrição                       |
| ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------- |
| [`azion_workloads`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/data-sources/workloads)                       | Lista workloads.                |
| [`azion_workload`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/data-sources/workload)                         | Lê um workload.                 |
| [`azion_workload_deployments`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/data-sources/workload_deployments) | Lista deployments de workloads. |
| [`azion_workload_deployment`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/data-sources/workload_deployment)   | Lê um deployment.               |

---

## Exemplo

Esta configuração fixa a versão do provider, cria um workload e um deployment dele, lê os workloads existentes e retorna o ID do workload em um output. Ela lê o seu personal token da variável `api_token`, declarada em [Primeiros passos com o Azion Terraform Provider](/pt-br/documentacao/devtools/terraform/getting-started/).

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

provider "azion" {
  api_token = var.api_token
}

# Create a workload
resource "azion_workload" "my_app" {
  name = "my-application"
}

# Create a deployment for the workload
resource "azion_workload_deployment" "my_app_deployment" {
  workload_id = azion_workload.my_app.id

  # Additional deployment configuration
}

# Query existing workloads
data "azion_workloads" "all" {}

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

---

## Recursos relacionados

- [Workloads](/pt-br/documentacao/plataforma/workloads.md): A página da plataforma sobre workloads e seus deployments.
- [Recursos e data sources](/pt-br/documentacao/devtools/terraform/examples.md): Todos os recursos e data sources do provider, com um exemplo por família.
- [Recursos de Applications](/pt-br/documentacao/devtools/terraform/applications.md): Os recursos que gerenciam aplicações, suas configurações de cache, regras, device groups e instâncias de function.
- [Recursos de Connectors](/pt-br/documentacao/devtools/terraform/connectors.md): O recurso que gerencia connectors para origens.
