Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ Distributed Cache Service/ Referência de API/ Exemplos/ Problemas comuns na criação de instâncias de DCS usando uma API
Atualizado em 2022-11-09 GMT+08:00

Problemas comuns na criação de instâncias de DCS usando uma API

Este tópico descreve problemas comuns que podem ocorrer quando você cria instâncias de DCS usando as API.

Tabela 1 Problemas comuns de criação de instâncias de DCS

Edição

Solução

Configurando a quantidade de réplicas ao comprar uma instância usando uma API

Se uma instância for comprada usando uma API, sua quantidade de réplica será determinada pelo parâmetro spec_code especificado durante a compra. A quantidade de réplica é o valor de replica_count no exemplo de resposta fornecido em Consulta de variantes do produto.

Obtendo a ID da sub-rede

Use uma API para obter o ID de sub-rede correto ao criar uma instância.

Recursos de AZ insuficientes durante a compra da instância

Se os recursos em uma AZ forem insuficientes, a criação de instâncias na AZ falhará. Você pode usar o valor de flavors_available_zones.az_codes para garantir que a AZ que você usa tenha recursos suficientes, conforme mostrado no exemplo de resposta em Consulta de variantes do produto.

Consultando Cotas de Recurso

Chame a API descrita em Consulta das cotas de locatário. O valor de quota indica o número máximo de instâncias que podem ser criadas e a memória total máxima permitida.

Configurando a quantidade de réplicas ao comprar uma instância usando uma API

Se uma instância for comprada usando uma API, sua quantidade de réplica será determinada pelo parâmetro spec_code especificado durante a compra. O número de réplicas é o valor de replica_count na resposta de exemplo da Consulta de variantes do produto API.

Exemplo de solicitação:

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

Exemplo de resposta:

{
 "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
  }
 ]
}

Ao comprar uma instância, certifique-se de que o valor de spec_code corresponda ao valor da capacity.

Obtendo a ID da sub-rede

Ao comprar uma instância, configure o ID de sub-rede correto para que você possa se conectar com êxito à instância. Você pode obter o ID de sub-rede usando GET /v1/{project_id}/subnets?{vpc_id}. vpc_id pode ser obtido usando a API GET /v1/{project_id}/vpcs.

Exemplo de solicitação para obtenção de vpc_id:

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

Para obter o valor de {vpc_endpoint}, consulte Regiões e Endpoints.

Exemplo de resposta para obtenção de 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"
	}]
}

Exemplo de solicitação para obter o ID da sub-rede:

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

Exemplo de resposta para obter o ID da sub-rede:

{
	"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 de AZ insuficientes durante a compra da instância

Ao comprar uma instância, se você quiser verificar se os recursos de um sabor são suficientes em uma AZ, você pode chamar a API descrita em Consulta de variantes do produto para exibir detalhes sobre as AZ em que a sabor está disponível e determinar as AZ que podem ser usadas com base no valor de flavors_available_zones.

Veja a seguir um exemplo de solicitação para consultar as AZ com recursos suficientes para sabor redis.ha.xu1.large.r2.2 em uma região:

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

Exemplo de resposta:

{
 "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 as AZ com recursos suficientes para o sabor.

Consultando Cotas de Recurso

Para consultar as cotas de recursos da conta atual, incluindo as cotas usadas, chame a API descrita em Consulta das cotas de locatário.

Exemplo de solicitação:

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

Exemplo de resposta:

{
 "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"
   }
  ]
 }
}
  • Quando type é definido como instance, max e min indicam as cotas máximas e mínimas de instância que podem ser aplicadas, respectivamente.
  • Quando type é definido como ram, max e min indicam as cotas máximas e mínimas de memória que podem ser aplicadas, respectivamente.
  • quota é o número máximo de instâncias que podem ser criadas e a memória total máxima permitida.
  • used é o número de instâncias criadas e de memória usada.