# Recursos de Edge DNS

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

O Azion Terraform Provider gerencia o [Edge DNS](/pt-br/documentacao/plataforma/edge-dns/) com três recursos e o lê com quatro data sources. Uma zona contém os registros de um domínio, e o DNSSEC adiciona uma camada de segurança a uma zona. Os identificadores mantêm a forma `intelligent_dns` que o provider usa e têm os mesmos nomes no provider v1.x e na v2.0. Para mais informações, consulte [Migre do provider v1.x para a v2.0](/pt-br/documentacao/devtools/terraform/migration-v3-to-v4/).

---

## Recursos de Edge DNS

| Recurso                                                                                                                                | Descrição                                        |
| -------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |
| [`azion_intelligent_dns_zone`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/resources/intelligent_dns_zone)     | Cria e gerencia uma zona DNS.                    |
| [`azion_intelligent_dns_record`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/resources/intelligent_dns_record) | Cria e gerencia um registro DNS.                 |
| [`azion_intelligent_dns_dnssec`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/resources/intelligent_dns_dnssec) | Gerencia as configurações de DNSSEC de uma zona. |

`azion_intelligent_dns_zone` exige `name`, uma string que contém o nome da zona, e aceita o booleano opcional `active`, que define se a zona está ativa. `azion_intelligent_dns_record` exige quatro strings: `zone_id`, o ID da zona que contém o registro; `name`, o nome do registro; `type`, o tipo do registro, como `A`, `AAAA` ou `CNAME`; e `value`, o valor do registro. Ele também aceita o número opcional `ttl`, o tempo de vida do registro em segundos. `azion_intelligent_dns_dnssec` aceita `zone_id` e `active`. Os recursos de registro e de DNSSEC leem o ID da zona do atributo `id` do recurso de zona. Para todos os tipos de registro, consulte [Tipos de registro](/pt-br/documentacao/plataforma/edge-dns/tipos-de-registro/). A página de cada recurso no Terraform Registry lista todos os argumentos.

---

## Data sources

| Data source                                                                                                                                 | Descrição                                  |
| ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ |
| [`azion_intelligent_dns_zones`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/data-sources/intelligent_dns_zones)     | Lista zonas DNS.                           |
| [`azion_intelligent_dns_zone`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/data-sources/intelligent_dns_zone)       | Lê uma zona DNS.                           |
| [`azion_intelligent_dns_records`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/data-sources/intelligent_dns_records) | Lista registros DNS.                       |
| [`azion_intelligent_dns_dnssec`](https://registry.terraform.io/providers/aziontech/azion/latest/docs/data-sources/intelligent_dns_dnssec)   | Lê as configurações de DNSSEC de uma zona. |

---

## Exemplo

Esta configuração fixa a versão do provider, cria uma zona com um registro `A` e um registro `CNAME`, ativa o DNSSEC na zona e exibe o ID da zona em um output. Ela lê o seu personal token da variável `api_token` que [Primeiros passos com o Azion Terraform Provider](/pt-br/documentacao/devtools/terraform/getting-started/) declara.

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

provider "azion" {
  api_token = var.api_token
}

# Create DNS zone
resource "azion_intelligent_dns_zone" "my_zone" {
  name   = "example.com"
  active = true
}

# Create A record
resource "azion_intelligent_dns_record" "www" {
  zone_id = azion_intelligent_dns_zone.my_zone.id
  name    = "www"
  type    = "A"
  value   = "192.0.2.1"
  ttl     = 3600
}

# Create CNAME record
resource "azion_intelligent_dns_record" "alias" {
  zone_id = azion_intelligent_dns_zone.my_zone.id
  name    = "alias"
  type    = "CNAME"
  value   = "www.example.com"
  ttl     = 3600
}

# Enable DNSSEC
resource "azion_intelligent_dns_dnssec" "my_dnssec" {
  zone_id = azion_intelligent_dns_zone.my_zone.id
  active  = true
}

output "zone_id" {
  value = azion_intelligent_dns_zone.my_zone.id
}
```

---

## Recursos relacionados

- [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 segurança](/pt-br/documentacao/devtools/terraform/security.md): Os recursos que gerenciam firewalls, configurações de WAF e network lists.
- [Recursos de certificados](/pt-br/documentacao/devtools/terraform/certificates.md): Os recursos que gerenciam certificados digitais.
- [Recursos de Applications](/pt-br/documentacao/devtools/terraform/applications.md): Os recursos que gerenciam aplicações e as suas configurações.
