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/ Distributed Cache Service/ Referencia de la API/ Ejemplos/ Problemas comunes de la creación de instancias DCS mediante una API
Actualización más reciente 2022-11-09 GMT+08:00

Problemas comunes de la creación de instancias DCS mediante una API

En este tema se describen los problemas comunes que pueden producirse al crear instancias de DCS mediante API.

Tabla 1 Problemas comunes al crear instancias DCS

Problema

Solución

Configuración de la cantidad de réplica al comprar una instancia mediante una API

Si una instancia se compra mediante una API, su cantidad de réplica está determinada por el parámetro spec_code especificado durante la compra. La cantidad de réplica es el valor de replica_count en la respuesta de ejemplo proporcionada en Consulta de variantes de productos.

Obtención del ID de subred

Utilice una API para obtener el ID de subred correcto al crear una instancia.

Recursos zona de disponibilidad insuficientes durante la compra de una instancia

Si los recursos en una zona de disponibilidad son insuficientes, la creación de instancia en la zona de disponibilidad fallará. Puede utilizar el valor de flavors_available_zones.az_codes para asegurarse de que el zona de disponibilidad que utiliza tiene suficientes recursos, como se muestra en la respuesta de ejemplo en Consulta de variantes de productos.

Consulta de cuotas de recursos

Llamar a la API descrita en Consulta de las cuotas del inquilino. El valor de la quota indica el número máximo de instancias que se pueden crear y la memoria total máxima permitida.

Configuración de la cantidad de réplica al comprar una instancia mediante una API

If an instance is purchased using an API, its replica quantity is determined by the spec_code parameter specified during the purchase. El número de réplicas es el valor de replica_count en la respuesta de ejemplo de la Consulta de variantes de productos API.

Ejemplo de solicitud:

GET https://{dcs_endpoint}/v2/flavors?cache_mode={cache_mode}&engine={engine}&engine_version={engine_version}&cpu_type={cpu_type}&capacity={capacity}

Ejemplo de respuesta:

{
 "flavors": [
  {
   "dec": false,
   "spec_code": "redis.ha.xu1.large.r4.2",
   "cloud_service_type_code": "hws.service.type.dcs",
   "cloud_resource_type_code": "hws.resource.type.dcs3",
   "cache_mode": "ha",
   "engine": "redis",
   "engine_version": "4.0;5.0",
   "product_type": "generic",
   "cpu_type": "x86_64",
   "storage_type": "DRAM",
   "capacity": [
    "2"
   ],
   "billing_mode": [
    "Hourly",
    "Monthly",
    "Yearly"
   ],
   "tenant_ip_count": 4,
   "pricing_type": "normal",
   "is_dec": false,
   "attrs": [
    {
     "capacity": "2",
     "name": "max_memory",
     "value": "2"
    },
    {
     "capacity": "2",
     "name": "max_connections",
     "value": "50000"
    },
    {
     "capacity": "2",
     "name": "sharding_num",
     "value": "1"
    },
    {
     "capacity": "2",
     "name": "proxy_num",
     "value": "0"
    },
    {
     "capacity": "2",
     "name": "db_number",
     "value": "256"
    },
    {
     "capacity": "2",
     "name": "max_clients",
     "value": "10000"
    },
    {
     "capacity": "2",
     "name": "max_bandwidth",
     "value": "128"
    }
   ],
   "flavors_available_zones": [
    {
     "capacity": "2",
     "unit": "GB",
     "available_zones": [
      "a0865121f83b41cbafce65930a22a6e8",
      "15dcd3f789cb4fc088dbdece9c5eb547",
      "2dcb154ac2724a6d92e9bcc859657c1e",
      "effdcbc7d4d64a02aa1fa26b42f56533"
     ],
     "az_codes": [
      "xx-xx-xx1",
      "xx-xx-xx2",
      "xx-xx-xx3",
      "xx-xx-xx4"
     ]
    }
   ],
   "replica_count": 4,
   "inquery_spec_code": null
  }
 ]
}

Al comprar una instancia, asegúrese de que el valor de spec_code corresponde al valor de la capacity.

Obtención del ID de subred

Cuando compre una instancia, configure el ID de subred correcto para que pueda conectarse correctamente a la instancia. Puede obtener el ID de subred utilizando GET /v1/{project_id}/subnets?{vpc_id}. vpc_id se puede obtener usando la API GET /v1/{project_id}/vpcs.

Ejemplo de solicitud para obtener vpc_id:

GET https://{vpc_endpoint}/v1/7d80ae32f57b499eb8781f9a9f57c538/vpcs

Para obtener el valor de {vpc_endpoint}, consulte Regions y puntos de conexión.

Ejemplo de respuesta para obtener vpc_id:

{
	"vpcs": [{
		"id": "743bf021-2c2d-4511-aeac-85bd48c06af7",
		"name": "vpc-d2d4",
		"description": "",
		"cidr": "192.168.0.0/16",
		"status": "OK",
		"routes": [],
		"enterprise_project_id": "0"
	}]
}

Ejemplo de solicitud para obtener el ID de subred:

GET https://{vpc_endpoint}/v1/7d80ae32f57b499eb8781f9a9f57c538/subnets?vpc_id=743bf021-2c2d-4511-aeac-85bd48c06af7

Ejemplo de respuesta para obtener el ID de subred:

{
	"subnets": [{
		"id": "b0d6e0ac-fcce-4e11-a4a6-707e851ae1c3",
		"name": "subnet-d2e4",
		"description": "",
		"cidr": "192.168.0.0/24",
		"dnsList": ["100.125.1.250",
		"100.125.129.250"],
		"status": "ACTIVE",
		"vpc_id": "743bf021-2c2d-4511-aeac-85bd48c06af7",
		"ipv6_enable": false,
		"gateway_ip": "192.168.0.1",
		"dhcp_enable": true,
		"primary_dns": "100.125.1.250",
		"secondary_dns": "100.125.129.250",
		"availability_zone": "xxxxxx",
		"neutron_network_id": "b0d6e0ac-fcce-4e11-a4a6-707e851ae1c3",
		"neutron_subnet_id": "3d4ccce0-cadc-4af4-8c21-14d2857ffe5e",
		"extra_dhcp_opts": []
	}]
}

Recursos zona de disponibilidad insuficientes durante la compra de una instancia

Al comprar una instancia, si desea comprobar si los recursos de un variante son suficientes en un zona de disponibilidad, Puede llamar a la API descrita en Consulta de variantes de productos para ver detalles sobre las Zonas de disponibilidad donde el variante está disponible y determinar las Zonas de disponibilidad que se pueden usar en función del valor de flavors_available_zones.

A continuación se muestra una solicitud de ejemplo para consultar Zonas de disponibilidad con recursos suficientes para el variante redis.ha.xu1.large.r2.2 en una región:

https://{dcs_endpoint}/v2/05041fffa40025702f6dc009cc6f8f33/flavors?spec_code=redis.ha.xu1.large.r2.2

Ejemplo de respuesta:

{
 "flavors": [
  {
   "dec": false,
   "spec_code": "redis.ha.xu1.large.r2.2",
   "cloud_service_type_code": "hws.service.type.dcs",
   "cloud_resource_type_code": "hws.resource.type.dcs3",
   "cache_mode": "ha",
   "engine": "redis",
   "engine_version": "4.0;5.0",
   "product_type": "generic",
   "cpu_type": "x86_64",
   "storage_type": "DRAM",
   "capacity": [
    "2"
   ],
   "billing_mode": [
    "Hourly",
    "Monthly",
    "Yearly"
   ],
   "tenant_ip_count": 2,
   "pricing_type": "normal",
   "is_dec": false,
   "attrs": [
    {
     "capacity": "2",
     "name": "max_memory",
     "value": "2"
    },
    {
     "capacity": "2",
     "name": "max_connections",
     "value": "50000"
    },
    {
     "capacity": "2",
     "name": "sharding_num",
     "value": "1"
    },
    {
     "capacity": "2",
     "name": "proxy_num",
     "value": "0"
    },
    {
     "capacity": "2",
     "name": "db_number",
     "value": "256"
    },
    {
     "capacity": "2",
     "name": "max_clients",
     "value": "10000"
    },
    {
     "capacity": "2",
     "name": "max_bandwidth",
     "value": "128"
    }
   ],
   "flavors_available_zones": [
    {
     "capacity": "2",
     "unit": "GB",
     "available_zones": [
      "a0865121f83b41cbafce65930a22a6e8",
      "15dcd3f789cb4fc088dbdece9c5eb547",
      "2dcb154ac2724a6d92e9bcc859657c1e",
      "effdcbc7d4d64a02aa1fa26b42f56533"
     ],
     "az_codes": [
      "xx-xx-xx1",
      "xx-xx-xx2",
      "xx-xx-xx3",
      "xx-xx-xx4"
     ]
    }
   ],
   "replica_count": 2,
   "inquery_spec_code": null
  }
 ]
}

flavors_available_zones indica las Zonas de disponibilidad con recursos suficientes para el variante.

Consulta de cuotas de recursos

Para consultar las cuotas de recursos de la cuenta actual, incluidas las cuotas usadas, llama a la API descrita en Consulta de las cuotas del inquilino.

Ejemplo de solicitud:

GET https://{dcs_endpoint}/v2/05041fffa40025702f6dc009cc6f8f33/quota

Ejemplo de respuesta:

{
 "quotas": {
  "resources": [
   {
    "quota": 160,
    "used": 1,
    "type": "instance",
    "min": 0,
    "max": 2147483647,
    "unit": null
   },
   {
    "quota": 64000,
    "used": 0,
    "type": "ram",
    "min": 0,
    "max": 1048576,
    "unit": "GB"
   }
  ]
 }
}
  • Cuando type se establece en instance, max y min indican las cuotas de instancia máxima y mínima que se pueden aplicar, respectivamente.
  • Cuando type se establece en ram, max y min indican las cuotas de memoria máxima y mínima que se pueden aplicar, respectivamente.
  • quota es el número máximo de instancias que se pueden crear y la memoria total máxima permitida.
  • used es el número de instancias creadas y de memoria usada.