# Applications - Terraform Resources

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

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

Applications são o núcleo da entrega de conteúdo na Azion Platform. Elas permitem configurar cache, regras de processamento e integrar functions.

---


Os recursos de Applications permitem gerenciar todos os aspectos de suas aplicações através do Terraform.

### Recursos Disponíveis

| Recurso | Descrição |
|---------|-----------|
| [`azion_application_main_setting`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/resources/application_main_setting) | Configurações principais da aplicação |
| [`azion_application_cache_setting`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/resources/application_cache_setting) | Configurações de cache |
| [`azion_application_rule_engine`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/resources/application_rule_engine) | Rules Engine |
| [`azion_application_functions_instance`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/resources/application_functions_instance) | Instâncias de function |
| [`azion_application`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/resources/application) | Aplicações |

### Data Sources Disponíveis

| Data Source | Descrição |
|--------------|-----------|
| [`azion_application_main_settings`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/data-sources/application_main_settings) | Consulta configurações principais |
| [`azion_application_cache_settings`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/data-sources/application_cache_settings) | Consulta configurações de cache |
| [`azion_application_rules_engine`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/data-sources/application_rules_engine) | Consulta regras |

---

## azion_application_main_setting

### Exemplo Básico

```hcl
resource "azion_application_main_setting" "example" {
  name = "minha-aplicacao"
  
  # Configurações principais
}
```

### Argumentos Principais

| Argumento | Tipo | Obrigatório | Descrição |
|-----------|------|--------------|-----------|
| `name` | string | Sim | Nome da aplicação |

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

---

## azion_application_cache_setting

### Exemplo Básico

```hcl
resource "azion_application_cache_setting" "example" {
  application_id = azion_application_main_setting.example.id
  name                = "minha-config-cache"
  
  # Configurações de cache
}
```

---

## azion_application_rule_engine

### Exemplo Básico

```hcl
resource "azion_application_rule_engine" "example" {
  application_id = azion_application_main_setting.example.id
  name                = "minha-regra"
  phase               = "request"
  
  # Critérios e comportamentos
}
```

---

## Exemplo Completo

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

provider "azion" {
  api_token = var.api_token
}

# Criar aplicação principal
resource "azion_application_main_setting" "my_app" {
  name = "minha-aplicacao"
}

# Configurar cache
resource "azion_application_cache_setting" "my_cache" {
  application_id = azion_application_main_setting.my_app.id
  name                = "cache-estatico"
  
  # Configurações de cache
}

# Criar regra no Rules Engine
resource "azion_application_rule_engine" "my_rule" {
  application_id = azion_application_main_setting.my_app.id
  name                = "regra-redirect"
  phase               = "request"
  
  # Critérios e comportamentos
}

# Instanciar uma function
resource "azion_application_functions_instance" "my_function" {
  application_id = azion_application_main_setting.my_app.id
  function_id        = azion_function.my_function.id
  
  # Configurações da instância
}

output "application_id" {
  value = azion_application_main_setting.my_app.id
}
```

---

## Recursos Relacionados

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