---
name: azion-adicione-um-dominio-a-um-workload
description: >-
  Liste um domínio seu em um workload, aponte o registro DNS para o workload domain e feche o workload domain pelo Azion Console, pela CLI ou pela API.
---

# Adicione um domínio a um workload

Você pode servir um [workload](/pt-br/documentacao/plataforma/workloads/) em um domínio seu pelo Azion Console, pela [Azion CLI](/pt-br/documentacao/devtools/cli/) ou pela API. Para usar o hostname gratuito `azion.app`, consulte [Crie um Azion custom domain](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/primeiros-passos/criar-dominio-personalizado-azion/).

Nesta página, um domínio personalizado é um hostname de um domínio seu, como `www.example.com`. Todo workload já responde no seu workload domain, um hostname que a Azion gera no formato `<id>.map.azionedge.net`. Servir o seu próprio hostname exige duas alterações: o workload lista o hostname, e um registro DNS aponta o hostname para o workload domain.

Uma conta que opera na API v3 com Domains lista os seus hostnames no campo **CNAME** de cada domínio. Para mais informações, consulte [Domains](/pt-br/documentacao/plataforma/workloads/domains/).

---

Selecione uma interface. Os pré-requisitos e as etapas de cada tarefa seguem a sua escolha.

## Pré-requisitos

- Um workload na infraestrutura de produção cujo deployment indica uma aplicação. Um workload de staging não aceita domínio personalizado. Para criar um workload e o seu deployment, consulte [Primeiros passos com Workloads](/pt-br/documentacao/plataforma/workloads/primeiros-passos/).
- Um domínio que a sua conta tem permissão para usar, e acesso aos registros DNS dele no seu provedor de DNS ou no [Edge DNS](/pt-br/documentacao/plataforma/edge-dns/).

**Console**

- Acesso ao Azion Console. Para mais informações, consulte [Como acessar o Azion Console](/pt-br/documentacao/guias/plataforma/conta-e-billing/como-acessar-o-azion-console/).

**CLI**

- A [Azion CLI](/pt-br/documentacao/devtools/cli/), autorizada com a sua conta. Esta página corresponde à Azion CLI 4.23.0.
- O ID do workload. O `azion create workload` o exibe como `Created Workload with ID <workload-id>`.

**API**

- Um personal token para o header `Authorization`, no formato `Token [TOKEN VALUE]`. Para criar um token, consulte [Tokens pessoais](/pt-br/documentacao/fundamentos/personal-tokens/).
- O `curl` ou outro cliente HTTP.
- O ID do workload. O `azion create workload` o exibe como `Created Workload with ID <workload-id>`.

---

## Liste o domínio no workload

Um workload responde apenas aos hostnames dos seus domínios, então um registro DNS sozinho não alcança a sua aplicação. Cada entrada é um hostname completo. Uma entrada curinga é recusada com `The domain does not conform to the format defined in RFC 1035.`

**Console**

Para listar o domínio no Azion Console:

1. **Abra a página Workloads**

   Acesse [Azion Console](https://console.azion.com/) > **Workloads**.

2. **Abra o workload**

   Selecione o workload que serve a aplicação. O formulário de edição dele abre.

3. **Adicione uma linha de domínio**

   Na seção **Domains**, selecione **Add Domain**.

4. **Informe o hostname**

   Em **Subdomain**, informe a parte do host, como `www`. Em **Domain**, informe o seu domínio, como `example.com`, ou selecione uma das suas zonas ativas do Edge DNS.

5. **Salve o workload**

   Selecione **Save**.

Azion Console exibe "Your workload has been updated", e a seção **Domains** lista o hostname.

**CLI**

Para listar o domínio pela Azion CLI, salve um arquivo JSON com o ID do workload e a lista `domains`, aqui como `domains.json`. A lista guarda todos os hostnames a que o workload responde, incluindo os que ele já lista:

```json
{
  "id": <workload-id>,
  "domains": ["<your-domain>"]
}
```

Atualize o workload com o arquivo:

```bash
azion update workload --file domains.json
```

O comando exibe o ID do workload que ele atualizou:

```text
Updated Workload with ID <workload-id>
```

Para confirmar a alteração, descreva o workload:

```bash
azion describe workload --workload-id <workload-id> --format json
```

Este trecho da saída mostra o hostname em `domains`, ao lado do workload domain:

```json
{
 "domains": ["<your-domain>"],
 …
 "workload_domain": "<id>.map.azionedge.net",
 "workload_domain_allow_access": true
}
```

**API**

Para listar o domínio pela API, envie uma requisição `PATCH` ao workload. A lista `domains` guarda todos os hostnames a que o workload responde, incluindo os que ele já lista:

```bash
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": ["<your-domain>"]
}'
```

A API aceita a atualização, e o workload passa a listar o hostname em `domains`.

Duas recusas impedem a alteração. Um domínio para o qual a sua conta não tem permissão é recusado com `This account is not allowed to use the following CNAMEs: example.com.`, que indica o domínio. Um workload de staging recusa todo domínio personalizado com `Custom hostname is not available in the environment 'Staging Infrastructure'.` Para as causas e as correções, consulte [Solucionar problemas de Workloads](/pt-br/documentacao/plataforma/workloads/solucao-de-problemas/).

---

## Aponte o domínio para o workload domain

As requisições chegam ao workload quando o DNS resolve o seu hostname para ele. Azion Console mostra o workload domain no campo **Workload Domain** do workload. A CLI e a API o retornam em `workload_domain`.

No seu provedor de DNS, crie um registro para o hostname com estes valores:

| Campo | Valor                                            |
| ----- | ------------------------------------------------ |
| Name  | O seu hostname, como `www.example.com`           |
| Type  | `CNAME`                                          |
| Value | O workload domain, como `<id>.map.azionedge.net` |

Quando o [Edge DNS](/pt-br/documentacao/plataforma/edge-dns/) guarda a zona do seu domínio, crie o registro nele. Para um domínio apex, o registro em cada tipo de provedor e a verificação da resolução, consulte [Aponte um domínio para um workload](/pt-br/documentacao/guias/plataforma/migracao/apontar-dominio-para-a-azion/).

Quando os resolvedores carregam o registro e a alteração do workload se propaga, as requisições ao seu hostname chegam à aplicação do deployment do workload. Uma alteração de workload leva vários minutos para chegar a toda a infraestrutura distribuída da Azion, e nesse intervalo as requisições podem receber a configuração antiga ou a nova. Repita uma requisição até que as respostas coincidam.

HTTPS no seu hostname exige um certificado de servidor que o cubra. O certificado Azion SAN padrão cobre apenas o workload domain e o Azion Custom Domain. Para obter um certificado para o seu domínio, consulte [Solicite um certificado Let's Encrypt](/pt-br/documentacao/guias/seguranca-de-aplicacoes/tls-e-certificados/como-gerar-um-certificado-lets-encrypt/) ou [Envie um certificado digital](/pt-br/documentacao/guias/seguranca-de-aplicacoes/tls-e-certificados/certificado-digital/).

---

## Feche o workload domain

Com **Workload Domain Allow Access** ativado, o padrão, o workload também responde no seu workload domain. Desative a opção quando o workload precisar responder apenas nos seus hostnames. Faça isso depois que os seus hostnames responderem como esperado, porque um workload domain fechado deixa de servir a sua aplicação.

**Console**

Para fechar o workload domain no Azion Console:

1. **Abra a página Workloads**

   Acesse [Azion Console](https://console.azion.com/) > **Workloads**.

2. **Abra o workload**

   Selecione o workload que lista o seu hostname. O formulário de edição dele abre.

3. **Desative Workload Domain Allow Access**

4. **Salve o workload**

   Selecione **Save**.

Azion Console exibe "Your workload has been updated".

**CLI**

Para fechar o workload domain pela Azion CLI, salve um arquivo JSON com o ID do workload e `workload_domain_allow_access` definido como `false`, aqui como `close.json`:

```json
{
  "id": <workload-id>,
  "workload_domain_allow_access": false
}
```

Atualize o workload com o arquivo:

```bash
azion update workload --file close.json
```

O comando exibe o ID do workload que ele atualizou:

```text
Updated Workload with ID <workload-id>
```

**API**

Para fechar o workload domain pela API, envie uma requisição `PATCH` ao workload com `workload_domain_allow_access` definido como `false`:

```bash
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 '{
  "workload_domain_allow_access": false
}'
```

A API aceita a atualização.

Quando a alteração se propaga, uma requisição ao workload domain responde `404`, enquanto os seus hostnames continuam servindo. Um workload sem nenhum hostname nos seus domínios não pode fechar o workload domain. A alteração é recusada com `When the workload hostname access is blocked, the workload requires alternate domains or domains.`

---

## Próximos passos

- [Aponte um domínio para um workload](/pt-br/documentacao/guias/plataforma/migracao/apontar-dominio-para-a-azion.md): Crie o registro DNS para um domínio apex ou no seu provedor e confira se ele resolve.
- [Solicite um certificado Let's Encrypt](/pt-br/documentacao/guias/seguranca-de-aplicacoes/tls-e-certificados/como-gerar-um-certificado-lets-encrypt.md): Sirva HTTPS no seu hostname com um certificado que a Azion solicita e renova.
- [Vincule um firewall a um workload](/pt-br/documentacao/guias/seguranca-de-aplicacoes/firewall-e-waf/proteja-seu-dominio.md): Inspecione as requisições que chegam ao seu hostname com um firewall no deployment do workload.
- [Solucionar problemas de Workloads](/pt-br/documentacao/plataforma/workloads/solucao-de-problemas.md): Descubra por que um domínio é recusado, responde 404 ou falha no handshake TLS.
