Administración de ECS de Huawei Cloud (Diagnóstico de Fallos de Creación y Gestión de Instancias)
ALTO - No responda basándose en conocimiento general. Siga el procedimiento a continuación.
Paso 0: Asegurar skill-quality-cli (obligatorio; se instala en el primer uso)
bash scripts/ensure_cli.sh # idempotente: instala solo si está ausente (sin actualización automática)
export PATH="$HOME/.local/bin:$PATH"
skill-quality-cli version # verificar que funciona
Ejecute este paso primero: la generación de informes de calidad depende de
skill-quality-cli, asegurado de forma idempotente porscripts/ensure_cli.sh(se instala una vez si falta, se omite si está presente; sin actualización automática — ejecuteskill-quality-cli upgradepara actualizar manualmente). Si está desconectado o la descarga falla, la habilidad se degrada silenciosamente (el flujo de negocio no se ve afectado); vuelva a ejecutar este paso cuando recupere la conexión. Ejecute siemprehcloud ECS <Operación> --helpantes de construir comandos para descubrir nombres de parámetros y requisitos exactos.
Descripción general
Esta habilidad proporciona capacidades de agente de IA para Huawei Cloud ECS (Elastic Cloud Server / 弹性云服务器): gestión del ciclo de vida de instancias (crear/iniciar/parar/reiniciar/eliminar), consulta de instancias/cuotas/sabores/imágenes y un diagnóstico de fallos de creación en 6 pasos que elimina las causas más comunes de "fallo al crear la instancia ECS" en orden: cuota → sabor → imagen → red → par de claves → disco.
Expone 23 acciones huawei_* en cinco grupos de capacidades:
| Capacidad | Nivel de riesgo | Acciones |
|---|---|---|
| Consulta (solo lectura) | R3 — ejecución automática | huawei_list_ecs_instances, huawei_get_ecs_instance, huawei_list_ecs_flavors, huawei_list_ecs_images, huawei_list_ecs_quotas |
| Diagnóstico (solo lectura) | R3 — ejecución automática | huawei_diagnose_ecs_create_failure, huawei_analyze_ecs_health |
| Gestión — ciclo de vida | R2 — vista previa + confirmación | huawei_create_ecs_instance, huawei_start_ecs_instance, huawei_stop_ecs_instance, huawei_restart_ecs_instance |
| Gestión — ciclo de vida | R1 — vista previa + confirmación | huawei_delete_ecs_instance |
| Gestión — operaciones de cambio (§5) | R2 — vista previa + confirmación | huawei_resize_ecs_instance, huawei_reinstall_ecs_os, huawei_reset_ecs_password, huawei_replace_ecs_keypair, huawei_bind_ecs_eip, huawei_change_ecs_security_group, huawei_add_ecs_nic, huawei_attach_ecs_volume, huawei_detach_ecs_volume |
| Gestión — operaciones de cambio (§5) | R1 — vista previa + confirmación | huawei_unbind_ecs_eip, huawei_remove_ecs_nic |
Toda acción de escritura es asíncrona: la API devuelve un job_id y el trabajo real continúa en
segundo plano. Sondear ese trabajo es un paso obligatorio posterior, no un extra opcional — consulte
§6 Sondeo de trabajos asíncronos.
Límites del alcance:
- ✅ Consultar instancias ECS, sabores, imágenes, cuotas (solo lectura)
- ✅ Diagnosticar fallos de creación de ECS (cuota → sabor → imagen → red → par de claves → disco) y analizar el estado de la instancia (estado / disco / red)
- ✅ Crear (pospago), iniciar, parar, reiniciar, eliminar instancias ECS (R2/R1: siempre vista previa + confirmación)
- ✅ Cambiar una instancia existente: redimensionar sabor, reinstalar SO, restablecer contraseña, reemplazar par de claves, vincular/desvincular EIP, conectar/desconectar un grupo de seguridad existente, añadir/eliminar una NIC, conectar/desconectar un volumen (R2/R1: siempre vista previa + confirmación)
- ❌ NUNCA crear, eliminar o reconfigurar el recurso VPC / subred / grupo de seguridad ni el recurso de volumen EVS en sí mismo. Esta habilidad solo conecta o desconecta recursos existentes a una instancia; utilice las habilidades dedicadas de VPC / EVS para la mutación a nivel de recurso.
- ❌ NUNCA ejecutar ninguna acción de escritura sin la confirmación explícita del usuario
- ❌ NUNCA informar de una escritura como "completada" antes de que su trabajo asíncrono alcance
SUCCESSy, paracreate, antes de que la instancia alcanceACTIVE - ❌ NUNCA mostrar credenciales (AK/SK, contraseñas, tokens) en ninguna salida o informe
- ➡️ Fuera del alcance: RDS / consultas de base de datos. Esta habilidad solo gestiona cómputo. Cuando el usuario pregunte
sobre una base de datos de la que depende una instancia ECS, devuelva la pregunta al usuario con un
puntero a una habilidad RDS dedicada o a la consola de Huawei Cloud RDS — esta habilidad nunca invoca otra
habilidad. Consulte
references/related-skills.mdpara el texto de transferencia.
Dependencia: La telemetría de calidad se recopila automáticamente a través de skill-quality-cli
(instalado por scripts/ensure_cli.sh si está ausente).
Advertencias críticas
| Problema | Por qué |
|---|---|
| El agotamiento de cuota es la causa #1 de fallo de creación | Insufficient quota / Quota exceeded significa que instancias/núcleos/RAM/volúmenes alcanzaron el límite del proyecto — compruebe ShowServerLimits primero |
| El sabor debe existir en la región/AZ de destino | Un sabor existe globalmente pero puede estar agotado o no disponible en la AZ seleccionada — filtre ListFlavors por --availability_zone |
La imagen debe ser active y coincidir con la arquitectura del sabor | Imagen eliminada/imagen privada con __os_type/architecture incorrecta (x86 vs ARM) falla en el aprovisionamiento — compruebe IMS ListImages --status=active |
| La subred sin IPs libres bloquea la creación | Si el CIDR de la subred está agotado o dhcp está deshabilitado, la asignación de NIC falla |
| El grupo de seguridad debe existir antes de crear | Hacer referencia a un ID de grupo de seguridad inexistente falla la solicitud |
| Los errores de par de claves son engañosos | Si key_name está establecido pero el par de claves no existe, la creación falla con KeypairNotFound — verifique con KPS ListKeypairs |
| Disponibilidad de disco/AZ | Los tipos de volumen raíz/datos (SATA/SAS/GPSSD) pueden no estar disponibles en la AZ de destino — compruebe EVS ListVolumes y las cuotas de volumen |
| La eliminación es irreversible | R1: verifique la instancia primero, confirme que no hay dependencia de datos, luego solicite confirmación explícita del usuario |
Requisitos previos
- CLI hcloud (KooCLI 7.2.x o posterior) instalada y autenticada.
- Guía de instalación y configuración: consulte
references/cli-installation-guide.md - Dos modos de autenticación compatibles:
- Credenciales AK/SK: variables de entorno
HUAWEICLOUD_SDK_AK/HUAWEICLOUD_SDK_SK(oHUAWEI_ACCESS_KEY/HUAWEI_SECRET_KEY), o configuración interactiva a través del asistente hcloud configure - Perfil hcloud local: ejecute "hcloud configure list"; debe mostrar un perfil válido con modo
AKSKy unaccessKeyIdreal
- Credenciales AK/SK: variables de entorno
- Verifique la autenticación con "hcloud configure list"
- Guía de instalación y configuración: consulte
- Región: ECS es específico de región. Siempre pase
--cli-region={region}(por ejemplo,cn-north-4).--project_idse rellena automáticamente desde el perfil cuando se omite. - Permisos IAM: las políticas de mínimo privilegio se proporcionan en
references/iam-policies.md.- Consulta/diagnóstico:
ecs:cloudServers:list,ecs:cloudServers:get,ecs:cloudServerFlavors:list,ecs:cloudServerImages:list,ecs:jobs:get,ecs:serverVolumes:list,ims:images:list,vpc:subnets:list,vpc:securityGroups:list,vpc:publicIps:list,evs:volumes:list,kps:keypairs:list(paso 5 de diagnóstico,hcloud KPS ListKeypairs) - Gestión:
ecs:cloudServers:create,ecs:cloudServers:action(iniciar/parar/reiniciar, redimensionar, reinstalar, restablecer contraseña, cambios de NIC y grupo de seguridad),ecs:cloudServers:delete - Las operaciones de cambio (§5) también necesitan la acción de escritura de cada recurso que tocan, por ejemplo,
evs:volumes:deletecon--delete_volume=true,vpc:publicIps:deletecon--delete_publicip=true; la lista exacta está enreferences/iam-policies.md.
- Consulta/diagnóstico:
skill-quality-cli— asegurado porbash scripts/ensure_cli.sh(idempotente, omite si está presente)- Actualización: ejecute
skill-quality-cli upgrademanualmente (sin actualización automática) - Deshabilitar informe de telemetría: establezca
SKILL_QUALITY_REPORT=0
- Actualización: ejecute
Flujo de trabajo
1. Identificar objetivo → región, instance_id / flavor_id / image_id / vpc_id / subnet_id / key_name, palabras clave de intención
2. Clasificar intención →
- Consulta/Diagnóstico (R3): listar / mostrar / analizar / diagnosticar — ejecución automática
- Gestión del ciclo de vida (R2): crear / iniciar / parar / reiniciar — SIEMPRE mostrar vista previa y solicitar confirmación explícita
- Gestión del ciclo de vida (R1): eliminar — SIEMPRE mostrar los detalles de la instancia, advertencia de irreversibilidad, confirmación explícita
- Gestión de operaciones de cambio (R2): redimensionar / reinstalar / restablecer contraseña / reemplazar par de claves / vincular EIP /
cambiar grupo de seguridad / añadir NIC / conectar volumen — SIEMPRE vista previa + confirmación
- Gestión de operaciones de cambio (R1): desvincular EIP / eliminar NIC / eliminar par de claves — SIEMPRE mostrar la
conexión actual, advertencia de irreversibilidad, confirmación explícita
3. Verificación previa → para creación y para cada operación de cambio, ejecute primero las comprobaciones de solo lectura relevantes
(cuota, sabor, imagen, red, par de claves, disco) para que el usuario confirme según el estado real
4. Ejecutar → construir el comando hcloud a partir de las plantillas verificadas a continuación
5. Capturar el id del trabajo → la API de escritura devuelve un job_id inmediatamente; el trabajo aún se está ejecutando
6. Sondear trabajo asíncrono → `hcloud ECS ShowJob` hasta que `status=SUCCESS|FAIL`; para crear, SONDEAR TAMBIÉN
`hcloud ECS ShowServer` hasta que `status=ACTIVE`; luego informar del estado FINAL al usuario
7. Salida → resumen JSON estructurado + informe de diagnóstico legible
8. Informar calidad → automático a través del envoltorio de ejecución skill-quality-cli (consulte el Paso 0 / Requisitos previos #4)
Compuertas de confirmación (NO DEBEN omitirse):
- Acciones R2 (
huawei_create_ecs_instance,huawei_start_ecs_instance,huawei_stop_ecs_instance,huawei_restart_ecs_instance): muestre el comando completo, la(s) instancia(s) de destino y pregunte "¿confirmar?" antes de ejecutar. - Acción R1 (
huawei_delete_ecs_instance): primero ejecute la comprobación de solo lectura (ShowServerpara confirmar que la instancia existe y registrar su estado/sabor/volúmenes). Muestre el comando completo con la advertencia de eliminación irreversible y solicite confirmación explícita antes de ejecutar. - Acciones de operaciones de cambio (R2:
huawei_resize_ecs_instance,huawei_reinstall_ecs_os,huawei_reset_ecs_password,huawei_replace_ecs_keypair,huawei_bind_ecs_eip,huawei_change_ecs_security_group,huawei_add_ecs_nic,huawei_attach_ecs_volume): muestre el estado actual (a través deShowServer/ListServerVolumeAttachments/ListServerInterfaces), el comando completo y el estado final esperado, luego pregunte "¿confirmar?". - Acciones de operaciones de cambio (R1:
huawei_unbind_ecs_eip,huawei_remove_ecs_nic): muestre qué se desconectará y el impacto en la conectividad (un EIP desvinculado pierde acceso público; una NIC eliminada pierde esa ruta de red y su IP privada), solicite confirmación explícita y nunca las encadene con una eliminación. Parahuawei_detach_ecs_volume(R2) advierta que--delete_flag=1elimina el disco de datos. - Verificación previa de creación: antes de
huawei_create_ecs_instance, SIEMPRE ejecutehuawei_diagnose_ecs_create_failure(o al menos las comprobaciones de cuota + sabor + imagen) para que el usuario vea que el entorno está listo, luego confirme. - El sondeo asíncrono es obligatorio: nunca cierre una acción de escritura antes de que el trabajo alcance un estado
terminal. Un
job_idsin sondeo es una acción incompleta, no un éxito.
Las operaciones de escritura están marcadas como [W] / 写操作 en los bloques de comando a continuación (palabras clave de detección:
create / start / stop / restart / delete — los mismos verbos que el detector de operaciones de escritura de la canalización de prueba utiliza).
Comandos principales
Todos los comandos a continuación se muestran en forma dual: el comando ejecutable simple
hcloud <Servicio> <Operación>y la carga útil idéntica envuelta conskill-quality-cli run --skill-name huawei-cloud-ecs-manage -- ...para la generación de informes de calidad. Requieren la CLI de KooCLI (hcloud) instalada y autenticada (consulte Requisitos previos); no se necesita ningún paquete SDK de Python para ningún comando de negocio.
⚠️ Obligatorio: cada comando
hclouden esta habilidad DEBE estar envuelto conskill-quality-cli run --skill-name huawei-cloud-ecs-manage -- <comando>— las llamadashcloudsimples están estrictamente prohibidas.
1. Consulta (R3 — solo lectura, ejecución automática)
huawei_list_ecs_instances — listar instancias ECS y su estado:
# Opcional: --limit={n} --offset={n} --status={ACTIVE|SHUTOFF|ERROR|BUILD|...} --name={nombre} --server_id={id1,id2}
hcloud ECS ListServersDetails --cli-region={region}
skill-quality-cli run --skill-name huawei-cloud-ecs-manage -- hcloud ECS ListServersDetails --cli-region={region}
huawei_get_ecs_instance — consultar los detalles completos de una instancia (estado, direcciones, sabor, volúmenes, fallo):
hcloud ECS ShowServer --cli-region={region} --server_id={server_id}
skill-quality-cli run --skill-name huawei-cloud-ecs-manage -- hcloud ECS ShowServer --cli-region={region} --server_id={server_id}
huawei_list_ecs_flavors — listar sabores disponibles (opcionalmente limitado a una AZ):
# Opcional: --availability_zone={az} --flavor_id={flavor_id} --limit={n} --marker={marcador}
hcloud ECS ListFlavors --cli-region={region}
skill-quality-cli run --skill-name huawei-cloud-ecs-manage -- hcloud ECS ListFlavors --cli-region={region}
huawei_list_ecs_images — listar imágenes disponibles (filtrar por tipo de SO / arquitectura / estado):
# Opcional: --__os_type={Linux|Windows} --architecture={x86|arm} --status={active} --name={nombre} --limit={n}
hcloud IMS ListImages --cli-region={region}
skill-quality-cli run --skill-name huawei-cloud-ecs-manage -- hcloud IMS ListImages --cli-region={region}
huawei_list_ecs_quotas — consultar el uso de cuotas del proyecto:
hcloud ECS ShowServerLimits --cli-region={region}
skill-quality-cli run --skill-name huawei-cloud-ecs-manage -- hcloud ECS ShowServerLimits --cli-region={region}
ShowServerLimits devuelve límites absolutos y uso (maxTotalInstances/totalInstancesUsed,
maxTotalCores/totalCoresUsed, maxTotalRAMSize/totalRamUsed, maxTotalKeypairs). Tenga en cuenta que no
tiene un campo de volumen — para cuotas de volumen de disco, utilice adicionalmente:
# Obligatorio: --target_project_id={project_id} --usage=True
hcloud EVS CinderListQuotas --target_project_id={project_id} --usage=True --cli-region={region}
skill-quality-cli run --skill-name huawei-cloud-ecs-manage -- hcloud EVS CinderListQuotas --target_project_id={project_id} --usage=True --cli-region={region}
2. Diagnóstico (R3 — solo lectura, ejecución automática)
huawei_diagnose_ecs_create_failure — diagnóstico de fallos de creación en 6 pasos
…
[truncado para traducción]