Ejemplo 1: Creación de una instancia de DCS Redis
Escenario
Esta sección describe cómo crear una instancia de DCS Redis mediante llamada de las API. Para obtener más información sobre cómo llamar a las API, consulta Llamadas a la API.
Se utiliza como ejemplo una instancia DCS Redis 5.0 de nodo único de 2 GB. La instancia utiliza la arquitectura Arm CPU y se puede acceder sin una contraseña.
APIs involucradas
Al crear una instancia de DCS Redis, debe consultar las especificaciones del producto, la VPC y la subred. Llama a las API para realizar los siguientes pasos:
- Paso 1: Determinar la VPC Determine el ID de la VPC que va a utilizar la instancia de DCS.
- Paso 2: Determinar la subred Determine el ID de la subred que va a utilizar la instancia de DCS.
- Paso 3: Determinar las especificaciones del producto Determine las especificaciones del producto de la instancia DCS que se va a crear.
- Paso 4: Crear una instancia Cree una instancia DCS con las especificaciones especificadas.
- Paso 5: Consultar el resultado de la creación Compruebe si la instancia de DCS se ha creado correctamente.
Paso 1: Determinar la VPC
- Consultar VPCs.
- URI
- Solicitud de ejemplo
GET https://{vpc_endpoint}/v1/7d80ae32f57b499eb8781f9a9f57c538/vpcs
Para obtener el valor de {vpc_endpoint}, consulte Regions y puntos de conexión.
- Ejemplo de respuesta
{ "vpcs": [{ "id": "743bf021-2c2d-4511-aeac-85bd48c06af7", "name": "vpc-d2d4", "description": "", "cidr": "192.168.0.0/16", "status": "OK", "routes": [], "enterprise_project_id": "0" }] }
- Registrar el ID de VPC requerido.
Paso 2: Determinar la subred
- Consultar subredes.
- URI
- Solicitud de ejemplo
GET https://{vpc_endpoint}/v1/7d80ae32f57b499eb8781f9a9f57c538/subnets?vpc_id=743bf021-2c2d-4511-aeac-85bd48c06af7
To obtain the value of {vpc_endpoint}, see Regions and Endpoints.
- Ejemplo de respuesta
{ "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": "cn-southwest-2a", "neutron_network_id": "b0d6e0ac-fcce-4e11-a4a6-707e851ae1c3", "neutron_subnet_id": "3d4ccce0-cadc-4af4-8c21-14d2857ffe5e", "extra_dhcp_opts": [] }] }
- Registrar el ID de subred requerido.
Paso 3: Determinar las especificaciones del producto
- Consultar las especificaciones del producto.
- URI
URI format: GET /v2/{project_id}/flavors?spec_code={spec_code}&cache_mode={cache_mode}&engine={engine}&engine_version={engine_version}&cpu_type={cpu_type}&capacity={capacity}
- Solicitud de ejemplo
GET https://{dcs_endpoint}/v2/666486c2d9b948c1bbea57e714d744fa/flavors?cache_mode=single&engine=Redis&engine_version=5.0&cpu_type=aarch64&capacity=2
Para obtener el valor de {dcs_endpoint}, consulte Regions y puntos de conexión.
- Ejemplo de respuesta
[{ "dec": false, "spec_code": "redis.single.au1.large.2", "cloud_service_type_code": "hws.service.type.dcs", "cloud_resource_type_code": "hws.resource.type.dcs3", "cache_mode": "single", "engine": "redis", "engine_version": "4.0;5.0", "product_type": "generic", "cpu_type": "aarch64", "storage_type": "DRAM", "capacity": ["2"], "billing_mode": ["Hourly", "RI", "Monthly", "Yearly"], "tenant_ip_count": 1, "pricing_type": "normal", "is_dec": false, "attrs": [{ "capacity": "2", "name": "max_memory", "value": "2" }, { "capacity": "2", "name": "max_connections", "value": "10000" }, { "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", "effdcbc7d4d64a02aa1fa26b42f56533"], "az_codes": ["cn-north-4b", "cn-north-4a"] }] }]
- URI
- Seleccione un producto según sea necesario y registre el código de especificación del producto y el código de la zona de disponibilidad donde hay recursos disponibles.
Paso 4: Crear una instancia
- URI
- Solicitud de ejemplo
POST https://{dcs_endpoint}/v2/666486c2d9b948c1bbea57e714d744fa/instances
Para obtener el valor de {dcs_endpoint}, consulte Regions y puntos de conexión.
Body:
{ "az_codes": ["cn-north-4a"], "capacity": 2, "engine": "Redis", "engine_version": "5.0", "name": "dcs-api-test", "no_password_access": true, "security_group_id": "1982d3a8-67a0-4fc9-a850-bc42a26ba2c0", "spec_code": "redis.single.xu1.large.2", "subnet_id": "b0d6e0ac-fcce-4e11-a4a6-707e851ae1c3", "vpc_id": "743bf021-2c2d-4511-aeac-85bd48c06af7" }
- Ejemplo de respuesta
{ "instances": [{ "instance_id": "21bc7b53-2494-4f10-bb0b-c0b913d9e329", "instance_name": "dcs-api-test" }] }
Para obtener más información sobre los parámetros para crear una instancia de DCS Redis, consulte Creación de una instancia DCS.
Paso 5: Consultar el resultado de la creación
- URI
- Solicitud de ejemplo
GET https://{dcs_endpoint}/v2/666486c2d9b948c1bbea57e714d744fa/instances/21bc7b53-2494-4f10-bb0b-c0b913d9e329
Para obtener el valor de {dcs_endpoint}, consulte Regions y puntos de conexión.
- Ejemplo de respuesta
{ "free": null, "max_memory": 2048, "used_memory": 1, "instance_id": "21bc7b53-2494-4f10-bb0b-c0b913d9e329", "name": "dcs-api-test", "resource_spec_code": "redis.single.au1.large.2", "engine": "Redis", "engine_version": "5.0", "internal_version": null, "charging_mode": 0, "capacity": 2, "capacity_minor": null, "vpc_id": "743bf021-2c2d-4511-aeac-85bd48c06af7", "vpc_name": "vpc-d2d4", "ip": "192.168.0.100", "domain_name": "redis-88a7bbb-dcs-api-test.dcs.huaweicloud.com", "readonly_domain_name": null, "port": 6379, "status": "RUNNING", "freeze_scene": null, "created_at": "2020-06-05T03:30:36.273Z", "update_at": "2020-06-05T03:30:47.231Z", "error_code": null, "user_id": "d53977d1adfb49c5b025ba7d33a13fd7", "user_name": "paas_dcs_a00421997_02", "maintain_begin": "02:00:00", "maintain_end": "06:00:00", "no_password_access": "true", "access_user": null, "enable_publicip": false, "publicip_id": null, "publicip_address": null, "enable_ssl": false, "service_upgrade": false, "service_task_id": "", "enterprise_project_id": "0", "security_group_id": null, "tags": [], "product_type": "generic", "cpu_type": "aarch64", "storage_type": "DRAM", "launched_at": "2020-06-05T03:30:47.238Z", "is_free": null, "libos": false, "cache_mode": "single", "available_zones": ["d539378ec1314c85b76fefa3f7071458"], "subnet_id": "a4112635-3ec0-471c-95c3-5cf49b9533af", "backend_addrs": null, "crr_role": null, "cloud_service_type_code": "hws.service.type.dcs", "cloud_resource_type_code": "hws.resource.type.dcs3", "support_slow_log_flag": null, "ipv6": null, "enable_ipv6": false, "description": "", "product_id": "redis.single.au1.large.2-h", "security_group_name": null, "subnet_name": "dcs-beta", "order_id": null, "subnet_cidr": "192.168.0.0/24", "task": null, "instance_backup_policy": null, "enterprise_project_name": null }
Si el estado de la instancia es RUNNING, la instancia se ha creado correctamente.