Consulta de ECS
Función
Esta API se utiliza para consultar ECS.
Método de invocación
Para obtener más información, consulte Invocación a las API.
URI
GET /v5/{project_id}/host-management/hosts
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
project_id |
Sí |
String |
ID de proyecto Mínimo: 1 Máximo: 256 |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
enterprise_project_id |
No |
String |
ID del proyecto empresarial Valor predeterminado: 0 Mínimo: 1 Máximo: 256 |
version |
No |
String |
Edición de HSS. Su valor puede ser:
Mínimo: 1 Máximo: 64 |
agent_status |
No |
String |
Estado de agente. Su valor puede ser:
Mínimo: 1 Máximo: 20 |
detect_result |
No |
String |
Resultado de la detección. Su valor puede ser:
Mínimo: 1 Máximo: 32 |
host_name |
No |
String |
Nombre del servidor |
host_id |
No |
String |
ID del servidor |
host_status |
No |
String |
Estado del host. Su valor puede ser:
Mínimo: 1 Máximo: 32 |
os_type |
No |
String |
Tipo de sistema operativo. Su valor puede ser:
Mínimo: 0 Máximo: 64 |
private_ip |
No |
String |
Dirección IP privada del servidor |
public_ip |
No |
String |
Dirección IP pública del servidor |
ip_addr |
No |
String |
Dirección IP pública o privada |
protect_status |
No |
String |
Estado de protección. Su valor puede ser:
Mínimo: 1 Máximo: 32 |
group_id |
No |
String |
ID de grupo de servidores |
group_name |
No |
String |
Nombre del grupo de servidores Mínimo: 1 Máximo: 64 |
has_intrusion |
No |
Boolean |
Las alarmas existen. |
policy_group_id |
No |
String |
ID de grupo de política Mínimo: 0 Máximo: 128 |
policy_group_name |
No |
String |
Nombre del grupo de políticas Mínimo: 0 Máximo: 256 |
charging_mode |
No |
String |
Modo de facturación. Su valor puede ser:
Mínimo: 1 Máximo: 32 |
refresh |
No |
Boolean |
Si se deben sincronizar a la fuerza los servidores de los ECS |
above_version |
No |
Boolean |
Si se devuelven todas las versiones posteriores a la versión actual |
outside_host |
No |
Boolean |
Si un servidor es un servidor Huawei Cloud |
asset_value |
No |
String |
Importancia de los activos. Su valor puede ser:
Mínimo: 0 Máximo: 128 |
label |
No |
String |
Etiqueta de activo Mínimo: 1 Máximo: 64 |
server_group |
No |
String |
Grupo de servidores de activos Mínimo: 1 Máximo: 64 |
agent_upgradable |
No |
Boolean |
Si se puede actualizar el agente |
limit |
No |
Integer |
Número de registros mostrados en cada página. El valor predeterminado es 10. Mínimo: 0 Máximo: 200 Valor predeterminado: 10 |
offset |
No |
Integer |
Desfase, que especifica la posición inicial del registro que se va a devolver. El valor debe ser un número no menor que 0. El valor predeterminado es 0. Mínimo: 0 Máximo: 2000000 Valor predeterminado: 0 |
Parámetros de solicitud
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
X-Auth-Token |
Sí |
String |
Token de usuario. Se puede obtener invocando a la API de IAM utilizada para obtener un token de usuario. El valor de X-Subject-Token en el encabezado de respuesta es un token. Mínimo: 1 Máximo: 32768 |
region |
No |
String |
ID de región Mínimo: 0 Máximo: 128 |
Parámetros de respuesta
Código de estado: 200
Parámetro |
Tipo |
Descripción |
---|---|---|
total_num |
Integer |
Número total de registros Mínimo: 0 Máximo: 2097152 |
data_list |
Array of Host objects |
Consulta sobre el estado y la lista del servidor en la nube Longitud de la matriz: 0 - 10241 |
Parámetro |
Tipo |
Descripción |
---|---|---|
host_name |
String |
Nombre del servidor Mínimo: 0 Máximo: 128 |
host_id |
String |
ID del servidor Mínimo: 0 Máximo: 128 |
agent_id |
String |
ID de agente Mínimo: 0 Máximo: 128 |
private_ip |
String |
Dirección IP privada Mínimo: 0 Máximo: 128 |
public_ip |
String |
Dirección IP elástica Mínimo: 0 Máximo: 128 |
enterprise_project_id |
String |
ID del proyecto empresarial Mínimo: 0 Máximo: 256 |
enterprise_project_name |
String |
Nombre del proyecto de empresa Mínimo: 0 Máximo: 256 |
host_status |
String |
Estado del servidor. Su valor puede ser:
Mínimo: 1 Máximo: 32 |
agent_status |
String |
Estado de agente. Su valor puede ser:
Mínimo: 1 Máximo: 32 |
install_result_code |
String |
Resultado de la instalación. Su valor puede ser:
Mínimo: 1 Máximo: 32 |
version |
String |
Edición de HSS. Su valor puede ser:
Mínimo: 1 Máximo: 32 |
protect_status |
String |
Estado de protección. Su valor puede ser:
Mínimo: 1 Máximo: 32 |
os_image |
String |
Imagen del disco de sistema Mínimo: 0 Máximo: 128 |
os_type |
String |
Tipo de sistema operativo. Su valor puede ser:
Mínimo: 0 Máximo: 128 |
os_bit |
String |
Versión de bits del sistema operativo Mínimo: 0 Máximo: 128 |
detect_result |
String |
Resultado del análisis del servidor. Su valor puede ser:
Mínimo: 1 Máximo: 32 |
expire_time |
Long |
Hora de vencimiento de la versión de prueba. (El valor -1 indica que la cuota no es versión de prueba. Si el valor no es -1, el valor indica la hora de caducidad de la versión de prueba). Mínimo: 0 Máximo: 4824695185000 |
charging_mode |
String |
Modo de facturación. Su valor puede ser:
Mínimo: 1 Máximo: 32 |
resource_id |
String |
ID de instancia de recurso de servicio en la nube (UUID) Mínimo: 0 Máximo: 128 |
outside_host |
Boolean |
Si un servidor es un servidor que no es de Huawei Cloud |
group_id |
String |
ID de grupo de servidores Mínimo: 1 Máximo: 128 |
group_name |
String |
Nombre del grupo de servidores Mínimo: 1 Máximo: 128 |
policy_group_id |
String |
ID de grupo de política Mínimo: 1 Máximo: 128 |
policy_group_name |
String |
Nombre del grupo de políticas Mínimo: 1 Máximo: 128 |
asset |
Integer |
Riesgo de activos Mínimo: 0 Máximo: 2097152 |
vulnerability |
Integer |
Número total de riesgos de vulnerabilidad, incluidas vulnerabilidades de software Linux, vulnerabilidades de sistemas Windows, vulnerabilidades de Web-CMS y vulnerabilidades de aplicaciones. Mínimo: 0 Máximo: 2097152 |
baseline |
Integer |
Número total de riesgos básicos, incluidos los riesgos de configuración y las contraseñas débiles. Mínimo: 0 Máximo: 2097152 |
intrusion |
Integer |
Riesgos totales de intrusión Mínimo: 0 Máximo: 2097152 |
asset_value |
String |
Importancia de los activos. Su valor puede ser:
Mínimo: 0 Máximo: 128 |
labels |
Array of strings |
Lista de etiquetas Mínimo: 0 Máximo: 64 Longitud de matriz: 0 - 100 |
agent_create_time |
Long |
Tiempo de instalación del agente, que es una marca de tiempo. La unidad predeterminada son los milisegundos. Mínimo: 0 Máximo: 4824695185000 |
agent_update_time |
Long |
Hora en la que se cambia el estado del agente. Esto es una marca de tiempo. La unidad predeterminada son los milisegundos. Mínimo: 0 Máximo: 4824695185000 |
agent_version |
String |
Versión del agente Mínimo: 1 Máximo: 32 |
upgrade_status |
String |
Estado de actualización. Su valor puede ser:
Mínimo: 1 Máximo: 32 |
upgrade_result_code |
String |
Causa del error de actualización. Este parámetro solo se muestra si upgrade_status es upgrade_failed. Su valor puede ser:
Mínimo: 1 Máximo: 32 |
upgradable |
Boolean |
Si se puede actualizar el agente del servidor |
open_time |
Long |
Hora en que la protección está habilitada. Esto es una marca de tiempo. La unidad predeterminada son los milisegundos. Mínimo: 0 Máximo: 4824695185000 |
protect_interrupt |
Boolean |
Si se interrumpe la protección |
Solicitudes de ejemplo
Consulte los 10 servidores Linux de todos los proyectos empresariales cuyo estado de agente esté en línea.
GET https://{endpoint}/v5/{project_id}/host-management/hosts?limit=10&offset=0&agent_status=online&os_type=Linux&enterprise_project_id=all_granted_eps
Ejemplo de respuestas
Código de estado: 200
Lista de servidores en la nube
{ "total_num" : 1, "data_list" : [ { "agent_id" : "2758d2a61598fd9144cfa6b201049e7c0af8c3f1280cd24e3ec95a2f0811a2a2", "agent_status" : "online", "asset" : 0, "asset_value" : "common", "baseline" : 0, "charging_mode" : "packet_cycle", "detect_result" : "risk", "enterprise_project_id" : "all_granted_eps", "enterprise_project_name" : "default", "group_id" : "7c659ea3-006f-4687-9f1c-6d975d955f37", "group_name" : "default", "host_id" : "caa958ad-a481-4d46-b51e-6861b8864515", "host_name" : "ecs-r00431580-ubuntu", "host_status" : "ACTIVE", "intrusion" : 0, "expire_time" : -1, "os_bit" : "64", "os_type" : "Linux", "outside_host" : false, "policy_group_id" : "2758d2a61598fd9144cfa6b201049e7c0af8c3f1280cd24e3ec95a2f0811a2a2", "policy_group_name" : "wtp_ecs-r00431580-ubuntu(default)", "private_ip" : "192.168.0.182", "protect_status" : "opened", "protect_interrupt" : false, "public_ip" : "100.85.123.9", "resource_id" : "60f08ea4-c74e-4a45-be1c-3c057e373af2", "version" : "hss.version.wtp", "vulnerability" : 97, "labels" : [ "" ], "agent_create_time" : 0, "agent_update_time" : 0, "open_time" : 0 } ] }
Código de ejemplo del SDK
El código de ejemplo del SDK es el siguiente.
Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
package com.huaweicloud.sdk.test; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; import com.huaweicloud.sdk.hss.v5.region.HssRegion; import com.huaweicloud.sdk.hss.v5.*; import com.huaweicloud.sdk.hss.v5.model.*; public class ListHostStatusSolution { public static void main(String[] args) { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment String ak = System.getenv("CLOUD_SDK_AK"); String sk = System.getenv("CLOUD_SDK_SK"); ICredential auth = new BasicCredentials() .withAk(ak) .withSk(sk); HssClient client = HssClient.newBuilder() .withCredential(auth) .withRegion(HssRegion.valueOf("<YOUR REGION>")) .build(); ListHostStatusRequest request = new ListHostStatusRequest(); request.withEnterpriseProjectId("<enterprise_project_id>"); request.withVersion("<version>"); request.withAgentStatus("<agent_status>"); request.withDetectResult("<detect_result>"); request.withHostName("<host_name>"); request.withHostId("<host_id>"); request.withHostStatus("<host_status>"); request.withOsType("<os_type>"); request.withPrivateIp("<private_ip>"); request.withPublicIp("<public_ip>"); request.withIpAddr("<ip_addr>"); request.withProtectStatus("<protect_status>"); request.withGroupId("<group_id>"); request.withGroupName("<group_name>"); request.withHasIntrusion(<has_intrusion>); request.withPolicyGroupId("<policy_group_id>"); request.withPolicyGroupName("<policy_group_name>"); request.withChargingMode("<charging_mode>"); request.withRefresh(<refresh>); request.withAboveVersion(<above_version>); request.withOutsideHost(<outside_host>); request.withAssetValue("<asset_value>"); request.withLabel("<label>"); request.withServerGroup("<server_group>"); request.withAgentUpgradable(<agent_upgradable>); request.withLimit(<limit>); request.withOffset(<offset>); try { ListHostStatusResponse response = client.listHostStatus(request); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getRequestId()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } } } |
Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# coding: utf-8 from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkhss.v5.region.hss_region import HssRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkhss.v5 import * if __name__ == "__main__": # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak = __import__('os').getenv("CLOUD_SDK_AK") sk = __import__('os').getenv("CLOUD_SDK_SK") credentials = BasicCredentials(ak, sk) \ client = HssClient.new_builder() \ .with_credentials(credentials) \ .with_region(HssRegion.value_of("<YOUR REGION>")) \ .build() try: request = ListHostStatusRequest() request.enterprise_project_id = "<enterprise_project_id>" request.version = "<version>" request.agent_status = "<agent_status>" request.detect_result = "<detect_result>" request.host_name = "<host_name>" request.host_id = "<host_id>" request.host_status = "<host_status>" request.os_type = "<os_type>" request.private_ip = "<private_ip>" request.public_ip = "<public_ip>" request.ip_addr = "<ip_addr>" request.protect_status = "<protect_status>" request.group_id = "<group_id>" request.group_name = "<group_name>" request.has_intrusion = <HasIntrusion> request.policy_group_id = "<policy_group_id>" request.policy_group_name = "<policy_group_name>" request.charging_mode = "<charging_mode>" request.refresh = <Refresh> request.above_version = <AboveVersion> request.outside_host = <OutsideHost> request.asset_value = "<asset_value>" request.label = "<label>" request.server_group = "<server_group>" request.agent_upgradable = <AgentUpgradable> request.limit = <limit> request.offset = <offset> response = client.list_host_status(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) |
Go
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" hss "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/hss/v5" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/hss/v5/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/hss/v5/region" ) func main() { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak := os.Getenv("CLOUD_SDK_AK") sk := os.Getenv("CLOUD_SDK_SK") auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). Build() client := hss.NewHssClient( hss.HssClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.ListHostStatusRequest{} enterpriseProjectIdRequest:= "<enterprise_project_id>" request.EnterpriseProjectId = &enterpriseProjectIdRequest versionRequest:= "<version>" request.Version = &versionRequest agentStatusRequest:= "<agent_status>" request.AgentStatus = &agentStatusRequest detectResultRequest:= "<detect_result>" request.DetectResult = &detectResultRequest hostNameRequest:= "<host_name>" request.HostName = &hostNameRequest hostIdRequest:= "<host_id>" request.HostId = &hostIdRequest hostStatusRequest:= "<host_status>" request.HostStatus = &hostStatusRequest osTypeRequest:= "<os_type>" request.OsType = &osTypeRequest privateIpRequest:= "<private_ip>" request.PrivateIp = &privateIpRequest publicIpRequest:= "<public_ip>" request.PublicIp = &publicIpRequest ipAddrRequest:= "<ip_addr>" request.IpAddr = &ipAddrRequest protectStatusRequest:= "<protect_status>" request.ProtectStatus = &protectStatusRequest groupIdRequest:= "<group_id>" request.GroupId = &groupIdRequest groupNameRequest:= "<group_name>" request.GroupName = &groupNameRequest hasIntrusionRequest:= <has_intrusion> request.HasIntrusion = &hasIntrusionRequest policyGroupIdRequest:= "<policy_group_id>" request.PolicyGroupId = &policyGroupIdRequest policyGroupNameRequest:= "<policy_group_name>" request.PolicyGroupName = &policyGroupNameRequest chargingModeRequest:= "<charging_mode>" request.ChargingMode = &chargingModeRequest refreshRequest:= <refresh> request.Refresh = &refreshRequest aboveVersionRequest:= <above_version> request.AboveVersion = &aboveVersionRequest outsideHostRequest:= <outside_host> request.OutsideHost = &outsideHostRequest assetValueRequest:= "<asset_value>" request.AssetValue = &assetValueRequest labelRequest:= "<label>" request.Label = &labelRequest serverGroupRequest:= "<server_group>" request.ServerGroup = &serverGroupRequest agentUpgradableRequest:= <agent_upgradable> request.AgentUpgradable = &agentUpgradableRequest limitRequest:= int32(<limit>) request.Limit = &limitRequest offsetRequest:= int32(<offset>) request.Offset = &offsetRequest response, err := client.ListHostStatus(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } } |
Más información
Para obtener un código de ejemplo del SDK de más lenguajes de programación, consulte la pestaña Código de ejemplo en API Explorer. El código de ejemplo del SDK se puede generar automáticamente.
Códigos de estado
Código de estado |
Descripción |
---|---|
200 |
Lista de servidores en la nube |
Códigos de error
Consulte Códigos de error.