Exemplo2: criação de uma zona privada
Cenários
Se você quiser que os usuários acessem seus ECSs usando nomes de domínio privados para que os ECSs não sejam expostos à Internet, crie zonas privadas no serviço do DNS e adicione conjuntos de registros A para a zona.
Esta seção descreve como criar uma zona privada chamando a API em Criação de uma zona privada e como criar um conjunto de registros chamando a API em Criação de um conjunto de registros. Para obter detalhes sobre como chamar as APIs, consulte Chamada das API.
O token obtido do IAM é válido por apenas 24 horas. Se você quiser usar um token para autenticação, poderá armazená-lo em cache para evitar chamadas frequentes à API do IAM.
Pré-requisitos
Você planejou a região em que deseja usar nomes de domínio privados e determinou o ponto de extremidade para chamar uma API com base na região. Para mais detalhes, consulte Pontos de extremidade.
APIs envolvidas
Você precisa obter um token e adicionar X-Auth-Token ao cabeçalho da solicitação de chamadas de API.
- API do IAM para obter um token
- API do DNS para criar uma zona privada
- API do DNS para criar um conjunto de registros
Procedimento
- Obtenha o token referindo-se a Autenticação.
- Adicione Content-Type e X-Auth-Token no cabeçalho da solicitação.
- Especifique os seguintes parâmetros no corpo da solicitação:
{ "name": "example.com.", // Zone name (mandatory, string) "description": "This is an example zone.", // Description of the zone (optional, string) "zone_type": "private", // Zone type (optional, string) "email": "xx@example.com" // Email address of the domain name administrator (optional, string) "router": { "router_id": "19664294-0bf6-4271-ad3a-94b8c79c6558", // VPC ID (mandatory, string) "router_region": "xx" // Region of the VPC (optional, string) } }
- Envie uma solicitação POST https://DNS endpoint/v2/zones.
- Verifique a resposta da solicitação.
- O resultado da solicitação pode ser bem-sucedido ou falhou na resposta.
- Se a solicitação falhar, um código de erro e informações de erro serão retornados. Para mais detalhes, consulte Código de erro.
- Para obter detalhes sobre parâmetros na resposta, consulte Criação de uma zona privada.
- Para obter detalhes sobre códigos de retorno gerais na resposta, consulte Código de status.
A seguir, um exemplo de resposta de uma solicitação bem-sucedida:
STATUS CODE 200
{ "id": "ff8080825b8fc86c015b94bc6f8712c3", "name": "example.com.", "description": "This is an example zone.", "email": "xx@example.com", "ttl": 300, "serial": 1, "masters": [], "status": "PENDING_CREATE", "links": { "self": "https://Endpoint/v2/zones/ff8080825b8fc86c015b94bc6f8712c3" }, "pool_id": "ff8080825ab738f4015ab7513298010e", "project_id": "e55c6f3dc4e34c9f86353b664ae0e70c", "zone_type": "private", "created_at": "2017-04-22T08:17:08.997", "updated_at": null, "record_num": 0, "router": { "status": "PENDING_CREATE", "router_id": "19664294-0bf6-4271-ad3a-94b8c79c6558", "router_region": "xx" } }
- Adicione Content-Type e X-Auth-Token no cabeçalho da solicitação.
- Especifique os seguintes parâmetros no corpo da solicitação:
{ "name": example.com.", // Record set name (mandatory, string) "description": "This is an example record set.", // Description of the record set (optional, string) "type": "A", // Record set type (mandatory, string) "ttl": 3600, // Caching duration of the record set (optional, integer) "records": [ "192.168.10.1", "192.168.10.2" ] // Values of the record set (mandatory, list<string>) }
- Envie uma solicitação POST https://DNS endpoint/v2/zones/{zone_id}/recordsets, onde zone_id é o ID da zona à qual o conjunto de registros será adicionado.
- Verifique a resposta da solicitação.
STATUS CODE 200
{ "id": "2c9eb155587228570158722b6ac30007", "name": "example.com.", "description": "This is an example record set.", "type": "A", "ttl": 300, "records": [ "192.168.10.1", "192.168.10.2" ], "status": "PENDING_CREATE", "links": { "self": "https://Endpoint/v2/zones/2c9eb155587194ec01587224c9f90149/recordsets/2c9eb155587228570158722b6ac30007" }, "zone_id": "ff8080825b8fc86c015b94bc6f8712c3", "zone_name": "example.com.", "create_at": "2017-04-22T08:17:08.997", "update_at": null, "default": false, "project_id": "e55c6f3dc4e34c9f86353b664ae0e70c" }