Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ Domain Name Service/ Referencia de la API/ Ejemplos/ Ejemplo 2: Creación de una zona privada
Actualización más reciente 2024-09-14 GMT+08:00

Ejemplo 2: Creación de una zona privada

Escenarios

Si desea que los usuarios accedan a sus ECS utilizando nombres de dominio privados para que los ECS no estén expuestos a Internet, puede crear zonas privadas en el servicio DNS y agregar conjuntos de registros A para la zona.

En este tema se describe cómo crear una zona privada invocando a la API de Creación de una zona privada y crear un conjunto de registros invocando a la API de Creación de un conjunto de registros. Para obtener más información sobre cómo invocar a las API, consulta Llamada a APIs.

El token obtenido de IAM es válido por solo 24 horas. Si desea utilizar un token para la autenticación, puede almacenarlo en caché para evitar invocar con frecuencia a la API de IAM.

Prerrequisitos

Ha planificado la región en la que desea utilizar nombres de dominio privados y determinado el punto de conexión para invocar a una API en función de la región. Para más detalles, véase Puntos de conexión.

Las API involucradas

Necesita obtener un token y agregar X-Auth-Token al encabezado de solicitud de las invocaciones a la API.

  • API de IAM para obtener un token
  • API de DNS para crear una zona privada
  • API de DNS para crear un conjunto de registros

Procedimiento

  1. Obtén el token haciendo referencia a Autenticación.
  2. Agregue Content-Type y X-Auth-Token en el encabezado de solicitud.
  3. Especifique los siguientes parámetros en el cuerpo de la solicitud:
    {
        "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)
         }
    }
  4. Envíe una solicitud POST https://DNS endpoint/v2/zones.
  5. Compruebe la respuesta de la solicitud.
    • El resultado de la solicitud puede tener éxito o fallar en la respuesta.
    • Si la solicitud falla, se devuelve un código de error y la información de error. Para obtener más información, véase Código de error.
    • Para obtener más información acerca de los parámetros de la respuesta, consulte Creación de una zona privada.
    • Para obtener más información sobre los códigos de retorno generales en la respuesta, consulte Código de estado.

    A continuación se muestra un ejemplo de respuesta de una solicitud correcta:

    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"
        }
    }
  6. Agregue Content-Type y X-Auth-Token en el encabezado de solicitud.
  7. Especifique los siguientes parámetros en el cuerpo de la solicitud:
    {
         "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>)
    }
  8. Envíe una solicitud POST https://DNS endpoint/v2/zones/{zone_id}/recordsets, donde zone_id es el ID de la zona a la que se va a agregar el conjunto de registros.
  9. Compruebe la respuesta de la solicitud.
    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"
    }