# Como migrar nameservers para a Azion

import Tabs from '~/components/tabs/Tabs'
import Code from '~/components/Code/Code.astro'

A Azion permite que você hospede e gerencie zonas e registros DNS redirecionando a resolução DNS do seu provedor de domínio para os nameservers (NS) autoritativos da Azion através do [Edge DNS](/pt-br/documentacao/produtos/secure/edge-dns/).

:::caution[atenção]
Se o **Edge DNS** estiver ativado, zonas hospedadas e consultas podem gerar custos relacionados ao uso. Consulte a [página de preços](/pt-br/documentacao/produtos/precos/) para mais informações.
:::

---

## Passo 1: Criar uma zona DNS

Para criar uma zona DNS para o domínio `seudominio.org`:

<Tabs client:visible>
    <Fragment slot="tab.console">Console</Fragment>
    <Fragment slot="tab.api">API</Fragment>

<Fragment slot="panel.console">

1. Acesse o [Azion Console](/pt-br/documentacao/produtos/guias/como-acessar-o-azion-console/) > **Edge DNS**.
2. Clique no botão **+ Zone**.
3. Dê um nome fácil de lembrar para sua zona.
4. Indique o FQDN conforme registrado no DNS. Exemplo: `seudominio.org`.
5. Clique no botão **Save**.

Para obter os nameservers da Azion:

6. Clique no botão **Copy Nameserver Values** para obter os nameservers da Azion:

- `ns1.aziondns.net`
- `ns2.aziondns.com`
- `ns3.aziondns.org`

7. Mantenha esses valores em mão para quando você [redirecionar os nameservers autoritativos do seu domínio](#passo-2-redirecionar-nameservers-autoritativos).
</Fragment>

<Fragment slot="panel.api">

1. Execute a seguinte requisição `POST` no seu terminal, substituindo `[TOKEN VALUE]` pelo seu [personal token](/pt-br/documentacao/produtos/guias/personal-tokens/) e adicionando o endereço do seu domínio no campo `domain`:

<Code lang="bash" code={`
curl --request POST \
  --url https://api.azion.com/v4/edge_dns/zones \
  --header 'Accept: application/json' \
  --header 'Authorization: Token [TOKEN VALUE]' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "MY dns Zone",
  "domain": "yourdomain.com",
  "active": true
}'
`} />


  | Chave | Descrição |
  | --- | --- |
  | `name` | Define a string no valor como um nome da entrada de zona com a Azion. |
  | `domain` | Define o domínio apex. |
  | `active` | Quando `true`, ativa a zona. |

2. Você receberá uma resposta semelhante a esta:

<Code lang="json" code={`
{
    "results": [
        {
            "nx_ttl": 3600,
            "domain": "yourdomain.com",
            "retry": 7200,
            "name": "yourdomain.com",
            "nameservers": [
                "ns1.aziondns.net",
                "ns2.aziondns.com",
                "ns3.aziondns.org"
            ],
            "soa_ttl": 3600,
            "is_active": true,
            "refresh": 43200,
            "expiry": 1209600,
            "id": <hosted_zone_id>
        }
    ]
}
`} />

3. Copie os valores dentro do campo `nameservers`. Esses valores serão usados para [redirecionar os nameservers do seu domínio](#passo-2-redirecionar-nameservers-autoritativos).
4. Copie também o valor `id` para quando você [associar uma application à sua zona](#passo-3-criar-registro-de-edge-application-na-zona-dns).
</Fragment>

</Tabs>

---

## Passo 2: Redirecionar nameservers autoritativos

O próximo passo é redirecionar os nameservers autoritativos do seu domínio, e para isso, você precisará acessar seu provedor de domínio e modificar seus registros NS. Aqui estão alguns dos provedores de domínio mais populares e como eles lidam com as mudanças de nameserver DNS:

- [AWS Route53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-name-servers-glue-records.html)
- [GoDaddy](https://www.godaddy.com/help/edit-my-domain-nameservers-664)
- [Namecheap](https://www.namecheap.com/support/knowledgebase/article.aspx/9434/10/using-default-nameservers-vs-hosting-nameservers/)

A Azion recomenda que você adicione todos os três nameservers disponíveis da Azion para maior confiabilidade: 

- `ns1.aziondns.net`
- `ns2.aziondns.com`
- `ns3.aziondns.org`

Uma vez que seus registros de nameserver tenham sido atualizados para os endereços da Azion, você poderá criar registros diretamente da Azion. Veja a próxima seção para um exemplo de como fazer isso.

---

## Passo 3: Criar registro de application na zona DNS

Depois de ter migrado com sucesso sua zona DNS para a Azion, você não precisará acessar seu provedor de domínio para criar novos registros, pois você pode fazer isso diretamente com a Azion. Isso significa que você pode lançar sua application com seu domínio personalizado e criar novas aplicações e registros conforme necessário. 

Para associar uma nova application ao seu domínio, você precisará criar um novo registro CNAME na sua zona e associá-lo a uma application.

Para personalizar o domínio da sua application sob a nova zona, você precisa associar o CNAME da sua application a um novo registro. Recupere os domínios personalizados listados para a aplicação seguindo os passos:

<Tabs client:visible>
    <Fragment slot="tab.consoleworkloads">Console - Workloads</Fragment>
    <Fragment slot="tab.consoledomain">Console - Domains</Fragment>
    <Fragment slot="tab.apiv4">API v4</Fragment>
    <Fragment slot="tab.apiv3">API v3</Fragment>

<Fragment slot="panel.consoleworkloads">

1. Acesse o [Azion Console](/pt-br/documentacao/produtos/guias/como-acessar-o-azion-console/) > **Workloads**.
2. Clique no domínio que você deseja associar ao seu domínio personalizado.
3. Nos campos  **Subdomain** e **Domain**, adicione os domínios personalizados para a aplicação que deve estar sob sua zona DNS. Se você já adicionou um domínio personalizado, copie esses valores e mantenha-os à mão.

Agora você precisará navegar até a área **Edge DNS** para adicionar um registro para os CNAMEs da sua application:

4. No canto superior esquerdo da página, abra o **Products menu**, representado por três linhas horizontais, e selecione **Edge DNS**.
5. Selecione a zona DNS.
6. Selecione a aba **Records**.
7. Clique no botão **+ Record**.
8. Em **Name**, crie um hostname ou subdomínio. Por exemplo: `*`.
9. Em **Record Type**, selecione `CNAME - Canonical name`.
10. Em **Value**, insira o endereço de domínio da Azion no formato FQDN. Exemplo: `xxxxxxxxxx.map.azionedge.net`
11. Defina o **TTL** e a **Policy** conforme desejado.
12. Clique no botão **Save**.

Repita o processo descrito acima para cada CNAME listado para sua aplicação. Espere alguns minutos para que as mudanças se propaguem. Você pode [executar o comando DIG](/pt-br/documentacao/produtos/guias/executar-o-comando-dig/) no seu terminal para verificar se o seu domínio aponta para o endereço da Azion.

</Fragment>

<Fragment slot="panel.consoledomain">

1. Acesse o [Azion Console](/pt-br/documentacao/produtos/guias/como-acessar-o-azion-console/) > **Domains**.
2. Clique no domínio que você deseja associar ao seu domínio personalizado.
3. No campo **CNAME**, adicione os domínios personalizados para a aplicação que deve estar sob sua zona DNS. Se você já adicionou um domínio personalizado, copie esses valores e mantenha-os em mão.

Agora você precisará navegar até a área **Edge DNS** para adicionar um registro para os CNAMEs da sua application:

4. No canto superior esquerdo da página, abra o **Products menu**, representado por três linhas horizontais, e selecione **Edge DNS**.
5. Selecione a zona DNS.
6. Selecione a aba **Records**.
7. Clique no botão **+ Record**.
8. Em **Name**, crie um hostname ou subdomínio. Por exemplo: `*`.
9. Em **Record Type**, selecione `CNAME - Canonical name`.
10. Em **Value**, insira o endereço de domínio da Azion no formato FQDN. Exemplo: `xxxxxxxxxx.map.azionedge.net`
11. Defina o **TTL** e a **Policy** conforme desejado.
12. Clique no botão **Save**.

Repita o processo descrito acima para cada CNAME listado para sua application. Espere alguns minutos para que as mudanças se propaguem. Você pode [executar o comando DIG](/pt-br/documentacao/produtos/guias/executar-o-comando-dig/) no seu terminal para verificar se o seu domínio aponta para o endereço da Azion.

</Fragment>

<Fragment slot="panel.apiv4">

1. Execute a seguinte requisição `GET` para recuperar o ID do seu workload, substituindo `[TOKEN VALUE]` pelo seu [token pessoal](/pt-br/documentacao/produtos/guias/personal-tokens/):

<Code lang="bash" code={`
curl --request GET \
  --url https://api.azion.com/v4/workspace/workloads \
  --header 'Accept: application/json' \
  --header 'Authorization: Token [TOKEN VALUE]'
`} />

2. Você receberá uma resposta semelhante a esta:

<Code lang="json" code={`
{
  "count": 3,
  "results": [
    {
      "id": "<workload_id>"",
      "name": "My workload",
      "active": true,
      "last_editor": "your-email.example.com",
      "last_modified": "2025-08-06T17:53:47.460211Z",
      "infrastructure": 1,
      "tls": {
        "certificate": null,
        "ciphers": 7,
        "minimum_version": "tls_1_3"
      },
      "protocols": {
        "http": {
          "versions": [
            "http1",
            "http2"
          ],
          "http_ports": [
            80
          ],
          "https_ports": [
            443
          ],
          "quic_ports": null
        }
      },
      "mtls": {
        "verification": null,
        "certificate": null,
        "crl": null
      },
      "domains": [
        "xxxxxxx.azion.app"
      ],
      "workload_domain_allow_access": false,
      "workload_domain": "xxxxxxxx.map.azionedge.net",
      "product_version": "1.0"
    },
`} /> 

3. Localize o domínio que você deseja vincular ao domínio personalizado e copie o valor `workload_id` recebido na resposta.
4. Se você não tem domínios listados, execute uma requisição `PATCH`, adicionando o `workload_id` como um caminho, para atualizar o campo `domains` com os domínios que você deseja configurar:

<Code lang="bash" code={`
curl --request PATCH \
  --url https://api.azion.com/v4/workspace/workloads/<workload_id> \
  --header 'Accept: application/json' \
  --header 'Authorization: Token [TOKEN VALUE]' \
  --header 'Content-Type: application/json' \
  --data '{
    "domains": [
      "yourdomain.com",
      "*.yourdomain.com"
    ]
  }'
`} />

  | Chave | Descrição |
  | --- | --- |
  | `domains` | Aceita uma lista de CNAMEs para os domínios como valores. Por exemplo, `["*.seudominio.com", "blog.seudominio.com"]`. |

:::tip
Adicione um subdomínio wildcard (`*`) em vez de um subdomínio específico para cobrir todos os cenários possíveis. Desta forma, você não precisará criar registros diferentes para `www.seudominio.com` e `blog.seudominio.com` se eles apontarem para a mesma application.
:::

5. Execute uma nova requisição `GET` para recuperar o `hosted_zone_id`, que indica [a zona DNS que você criou](#passo-1-criar-uma-zona-dns):

<Code lang="json" code={`
{
    ...
    "results": [
        {
            "domain": "yourdomain.com - zone",
            "is_active": true,
            "name": "yourdomain.com",
            "id": <hosted_zone_id>
        }
    ]
}
`} />

6. Execute a seguinte requisição `POST` no seu terminal, substituindo `[TOKEN VALUE]` pelo seu [token pessoal](/pt-br/documentacao/produtos/guias/personal-tokens/), `hosted_zone_id` pelo valor da resposta anterior e a lista de respostas com o endereço de domínio da Azion como uma string:

<Code lang="bash" code={`
curl --request POST \
  --url https://api.azion.com/v4/edge_dns/zones/<hosted_zone_id>/records \
  --header 'Accept: application/json' \
  --header 'Authorization: Token [TOKEN VALUE]' \
  --header 'Content-Type: application/json' \
  --data '{
    "type": "CNAME",
    "name": "www",
    "rdata": ["xxxxxxxxxx.map.azionedge.net"],
    "ttl": 20,
    "description": "www record"
  }'
`} />

  | Chave | Descrição |
  | --- | --- |
  | `type` | O tipo de registro sendo criado. Veja a lista completa de tipos de registro aceitos na [documentação do Edge DNS](/pt-br/documentacao/produtos/secure/edge-dns/). |
  | `name` | Define o valor da entrada quando anexado ao domínio apex da zona para gerar o registro. Por exemplo, o valor `www` representará um registro para `www.seudominio.com`. Aceita a notação wildcard (`*`). |
  | `rdata` | Aceita uma lista de CNAMEs para os domínios como valores. No exemplo descrito acima, o CNAME é o endereço Azion. |
  | `description` | Define a string como uma descrição do registro. |
  | `ttl` | Define o tempo de vida (TTL) do registro em segundos. |

7. Você receberá uma resposta confirmando que o novo registro foi criado:

<Code lang="json" code={`
{
    "results": {
        "rdata": [
            "xxxxxxxxxx.map.azionedge.net"
        ],
        "zone_id": <hosted_zone_id>,
        "record_type": "CNAME",
        "ttl": 20,
        "policy": "simple",
        "entry": "www",
        "id": <record_id>,
        "description": "www record"
    }
}
`} />

8. Aguarde alguns minutos para que as alterações propaguem para o edge. Você pode [executar o comando DIG](/pt-br/documentacao/produtos/guias/executar-o-comando-dig/) no seu terminal para verificar se o seu domínio aponta para o endereço da Azion.

:::tip
Confira a [documentação da API da Azion](https://api.azion.com/) para saber mais sobre todas as funcionalidades disponíveis via API.
:::
</Fragment>

<Fragment slot="panel.apiv3">

1. Execute a seguinte requisição `GET` para recuperar o ID do seu domínio, substituindo `[TOKEN VALUE]` pelo seu [personal token](/pt-br/documentacao/produtos/guias/personal-tokens/):

<Code lang="bash" code={`
curl --location 'https://api.azionapi.net/domains' \
--header 'Accept: application/json; version=3' \
--header 'Authorization: Token [TOKEN VALUE]' \
`} />

2. Você receberá uma resposta semelhante a esta:

<Code lang="json" code={`
{
    ...
    "results": [
        {
            "id": <domain_id>,
            "name": "seudominio.com CA1 DC-seudominio.com",
            "cnames": [],
            "cname_access_only": true,
            "digital_certificate_id": <digital_certificate_id>,
            "edge_application_id": <edge_application_id>,
            "is_active": true,
            "domain_name": "xxxxxxxxxx.map.azionedge.net"
        }
    ]
}
`} />

3. Localize o domínio que você deseja vincular ao domínio personalizado e copie o valor `domain_id` recebido na resposta.
4. Se você não tem CNAMEs listados, execute uma requisição `PATCH`, adicionando o `domain_id` como um caminho, para atualizar o campo `cnames` com os domínios que você deseja configurar:

<Code lang="bash" code={`
curl --location --request PATCH 'https://api.azionapi.net/domains/<domain_id>' \
--header 'Accept: application/json; version=3' \
--header 'Authorization: Token [TOKEN VALUE]' \
--header 'Content-Type: application/json' \
--data '{
    "cnames": [
        "seudominio.com",
        "*.seudominio.com"
    ]
}'
`} />

  | Chave | Descrição |
  | --- | --- |
  | `cnames` | Aceita uma lista de CNAMEs para os domínios como valores. Por exemplo, `["*.seudominio.com", "blog.seudominio.com"]`. |

:::tip
Adicione um subdomínio wildcard (`*`) em vez de um subdomínio específico para cobrir todos os cenários possíveis. Desta forma, você não precisará criar registros diferentes para `www.seudominio.com` e `blog.seudominio.com` se eles apontarem para a mesma application.
:::

5. Execute uma nova requisição `GET` para recuperar o `hosted_zone_id`, que indica [a zona DNS que você criou](#passo-1-criar-uma-zona-dns):

<Code lang="json" code={`
{
    ...
    "results": [
        {
            "domain": "yourdomain.com - zone",
            "is_active": true,
            "name": "yourdomain.com",
            "id": <hosted_zone_id>
        }
    ]
}
`} />

6. Execute a seguinte requisição `POST` no seu terminal, substituindo `[TOKEN VALUE]` pelo seu [personal token](/pt-br/documentacao/produtos/guias/personal-tokens/), `hosted_zone_id` pelo valor da resposta anterior e a lista de respostas com o endereço de domínio da Azion como uma string:

<Code lang="bash" code={`
curl --location 'https://api.azionapi.net/intelligent_dns/<hosted_zone_id>/records' \
--header 'Content-Type: application/json' \
--header 'Authorization: Token [TOKEN VALUE]' \
--header 'Accept: application/json; version=3' \
--data-raw '{
    "record_type": "CNAME",
    "entry": "www",
    "answers_list": [
        "xxxxxxxxxx.map.azionedge.net"
    ],
    "description": "www record",
    "ttl": 20
}'
`} />

  | Chave | Descrição |
  | --- | --- |
  | `record_type` | O tipo de registro sendo criado. Veja a lista completa de tipos de registro aceitos na [documentação do Edge DNS](/pt-br/documentacao/produtos/secure/edge-dns/). |
  | `entry` | Define o valor da entrada quando anexado ao domínio apex da zona para gerar o registro. Por exemplo, o valor `www` representará um registro para `www.seudominio.com`. Aceita a notação wildcard (`*`). |
  | `answers_list` | Aceita uma lista de CNAMEs para os domínios como valores. No exemplo descrito acima, o CNAME é o endereço Azion. |
  | `description` | Define a string como uma descrição do registro. |
  | `ttl` | Define o tempo de vida (TTL) do registro em segundos. |

7. Você receberá uma resposta confirmando que o novo registro foi criado:

<Code lang="json" code={`
{
    "results": {
        "answers_list": [
            "xxxxxxxxxx.map.azionedge.net"
        ],
        "zone_id": <hosted_zone_id>,
        "record_type": "CNAME",
        "ttl": 20,
        "policy": "simple",
        "entry": "www",
        "id": <record_id>,
        "description": "www record"
    }
}
`} />

8. Aguarde alguns minutos para que as alterações propaguem para o edge. Você pode [executar o comando DIG](/pt-br/documentacao/produtos/guias/executar-o-comando-dig/) no seu terminal para verificar se o seu domínio aponta para o endereço da Azion.

:::tip
Confira a [documentação da API da Azion](https://api.azion.com/) e a [especificação OpenAPI](https://github.com/aziontech/azionapi-openapi/) para saber mais sobre todas as funcionalidades disponíveis via API.
:::
</Fragment>

</Tabs>

## Recursos adicionais

Os guias abaixo podem ser úteis.

**Configurações avançadas**:

- [Acessar root domain](/pt-br/documentacao/produtos/guias/secure/acessar-root-domain/)
- [Ativar DNSSEC](/pt-br/documentacao/produtos/guias/secure/ativar-dnssec/)
- [Registrar Let\'s Encrypt](/pt-br/documentacao/produtos/guias/secure/registro-lets-encrypt/)
- [Realizar balanceamento de carga DNS](/pt-br/documentacao/produtos/guias/secure/balanceamento-de-carga-dns/)

**Troubleshooting**:

- [Como testar uma zona DNS](/pt-br/documentacao/produtos/guias/secure/testar-zona/)
- [Entenda métricas do Edge DNS](/pt-br/documentacao/produtos/secure/troubleshoot/edge-dns-monitorar-metricas/)