Consulta de ECSs
Função
Essa API é usada para consultar ECSs.
Método de chamada
Para obter detalhes, consulte Chamada de APIs.
URI
GET /v5/{project_id}/host-management/hosts
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
project_id |
Sim |
String |
ID do projeto Mínimo: 1 Máximo: 256 |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
enterprise_project_id |
Não |
String |
ID do projeto empresarial Padrão: 0 Mínimo: 1 Máximo: 256 |
version |
Não |
String |
Edição do HSS. Seu valor pode ser:
Mínimo: 1 Máximo: 64 |
agent_status |
Não |
String |
Status de agente. Seu valor pode ser:
Mínimo: 1 Máximo: 20 |
detect_result |
Não |
String |
Resultado da detecção. Seu valor pode ser:
Mínimo: 1 Máximo: 32 |
host_name |
Não |
String |
Nome de servidor |
host_id |
Não |
String |
ID de servidor |
host_status |
Não |
String |
Status de host. Seu valor pode ser:
Mínimo: 1 Máximo: 32 |
os_type |
Não |
String |
Tipo de SO. Seu valor pode ser:
Mínimo: 0 Máximo: 64 |
private_ip |
Não |
String |
Endereço IP privado de servidor |
public_ip |
Não |
String |
Endereço IP público do servidor |
ip_addr |
Não |
String |
Endereço IP público ou privado |
protect_status |
Não |
String |
Status de proteção. Seu valor pode ser:
Mínimo: 1 Máximo: 32 |
group_id |
Não |
String |
ID do grupo de servidores |
group_name |
Não |
String |
Nome do grupo de servidores Mínimo: 1 Máximo: 64 |
has_intrusion |
Não |
Boolean |
Existem alarmes. |
policy_group_id |
Não |
String |
ID do grupo de políticas Mínimo: 0 Máximo: 128 |
policy_group_name |
Não |
String |
Nome do grupo de políticas Mínimo: 0 Máximo: 256 |
charging_mode |
Não |
String |
Modo de cobrança. Seu valor pode ser:
Mínimo: 1 Máximo: 32 |
refresh |
Não |
Boolean |
Se deve sincronizar à força servidores de ECSs |
above_version |
Não |
Boolean |
Se deve retornar todas as versões posteriores à versão atual |
outside_host |
Não |
Boolean |
Se um servidor é um servidor da Huawei Cloud |
asset_value |
Não |
String |
Importância de ativo. Seu valor pode ser:
Mínimo: 0 Máximo: 128 |
label |
Não |
String |
Tag de ativo Mínimo: 1 Máximo: 64 |
server_group |
Não |
String |
Grupo de servidores de ativos Mínimo: 1 Máximo: 64 |
agent_upgradable |
Não |
Boolean |
Se o agente pode ser atualizado |
limit |
Não |
Integer |
Número de registros exibidos em cada página. O valor padrão é 10. Mínimo: 0 Máximo: 200 Padrão: 10 |
offset |
Não |
Integer |
Deslocamento, que especifica a posição inicial do registro a ser retornado. O valor deve ser um número não menor que 0. O valor padrão é 0. Mínimo: 0 Máximo: 2000000 Padrão: 0 |
Parâmetros de solicitação
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
X-Auth-Token |
Sim |
String |
Token do usuário. Ele pode ser obtido chamando a API do IAM usada para obter um token de usuário. O valor de X-Subject-Token no cabeçalho da resposta é um token. Mínimo: 1 Máximo: 32768 |
region |
Não |
String |
ID da região Mínimo: 0 Máximo: 128 |
Parâmetros de resposta
Código de status: 200
Parâmetro |
Tipo |
Descrição |
---|---|---|
total_num |
Integer |
Número total de registros Mínimo: 0 Máximo: 2097152 |
data_list |
Array of Host objects |
Consulta sobre o status e a lista do servidor de nuvem Comprimento da matriz: 0–10241 |
Parâmetro |
Tipo |
Descrição |
---|---|---|
host_name |
String |
Nome de servidor Mínimo: 0 Máximo: 128 |
host_id |
String |
ID de servidor Mínimo: 0 Máximo: 128 |
agent_id |
String |
ID do agente Mínimo: 0 Máximo: 128 |
private_ip |
String |
Endereço IP privado Mínimo: 0 Máximo: 128 |
public_ip |
String |
Endereço IP elástico Mínimo: 0 Máximo: 128 |
enterprise_project_id |
String |
ID do projeto empresarial Mínimo: 0 Máximo: 256 |
enterprise_project_name |
String |
Nome do projeto empresarial Mínimo: 0 Máximo: 256 |
host_status |
String |
Status do servidor. Seu valor pode ser:
Mínimo: 1 Máximo: 32 |
agent_status |
String |
Status de agente. Seu valor pode ser:
Mínimo: 1 Máximo: 32 |
install_result_code |
String |
Resultado da instalação. Seu valor pode ser:
Mínimo: 1 Máximo: 32 |
version |
String |
Edição do HSS. Seu valor pode ser:
Mínimo: 1 Máximo: 32 |
protect_status |
String |
Status de proteção. Seu valor pode ser:
Mínimo: 1 Máximo: 32 |
os_image |
String |
Imagem de disco do sistema Mínimo: 0 Máximo: 128 |
os_type |
String |
Tipo de SO. Seu valor pode ser:
Mínimo: 0 Máximo: 128 |
os_bit |
String |
Versão de bit do SO Mínimo: 0 Máximo: 128 |
detect_result |
String |
Resultado da verificação do servidor. Seu valor pode ser:
Mínimo: 1 Máximo: 32 |
expire_time |
Long |
Tempo de expiração da versão de teste. (O valor -1 indica que a cota é uma versão não de teste. Se o valor não for -1, o valor indica o tempo de expiração da versão de teste.) Mínimo: 0 Máximo: 4824695185000 |
charging_mode |
String |
Modo de cobrança. Seu valor pode ser:
Mínimo: 1 Máximo: 32 |
resource_id |
String |
ID da instância do recurso do serviço de nuvem (UUID) Mínimo: 0 Máximo: 128 |
outside_host |
Boolean |
Se um servidor não é um servidor da Huawei Cloud |
group_id |
String |
ID do grupo de servidores Mínimo: 1 Máximo: 128 |
group_name |
String |
Nome do grupo de servidores Mínimo: 1 Máximo: 128 |
policy_group_id |
String |
ID do grupo de políticas Mínimo: 1 Máximo: 128 |
policy_group_name |
String |
Nome do grupo de políticas Mínimo: 1 Máximo: 128 |
asset |
Integer |
Risco de ativo Mínimo: 0 Máximo: 2097152 |
vulnerability |
Integer |
Número total de riscos de vulnerabilidade, incluindo vulnerabilidades de software Linux, vulnerabilidades de sistema Windows, vulnerabilidades de Web-CMS e vulnerabilidades de aplicações. Mínimo: 0 Máximo: 2097152 |
baseline |
Integer |
Número total de riscos de linha de base, incluindo riscos de configuração e senhas fracas. Mínimo: 0 Máximo: 2097152 |
intrusion |
Integer |
Riscos totais de intrusão Mínimo: 0 Máximo: 2097152 |
asset_value |
String |
Importância de ativo. Seu valor pode ser:
Mínimo: 0 Máximo: 128 |
labels |
Array of strings |
Lista de tags Mínimo: 0 Máximo: 64 Comprimento da matriz: 0–100 |
agent_create_time |
Long |
Tempo de instalação do agente, que é um carimbo de data/hora. A unidade padrão é milissegundos. Mínimo: 0 Máximo: 4824695185000 |
agent_update_time |
Long |
Hora em que o status do agente é alterado. Este é um carimbo de data/hora. A unidade padrão é milissegundos. Mínimo: 0 Máximo: 4824695185000 |
agent_version |
String |
Versão do agente Mínimo: 1 Máximo: 32 |
upgrade_status |
String |
Status de atualização. Seu valor pode ser:
Mínimo: 1 Máximo: 32 |
upgrade_result_code |
String |
Causa da falha de atualização. Este parâmetro é exibido somente se upgrade_status for upgrade_failed. Seu valor pode ser:
Mínimo: 1 Máximo: 32 |
upgradable |
Boolean |
Se o agente do servidor pode ser atualizado |
open_time |
Long |
Hora em que a proteção está ativada. Este é um carimbo de data/hora. A unidade padrão é milissegundos. Mínimo: 0 Máximo: 4824695185000 |
protect_interrupt |
Boolean |
Se a proteção foi interrompida |
Exemplo de solicitações
Consultar os 10 servidores Linux em todos os projetos empresariais cujo status do agente esteja on-line.
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
Exemplo de respostas
Código de status: 200
Lista de servidores de nuvem
{ "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 amostra do SDK
O código de amostra do SDK é o seguinte.
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) } } |
Mais
Para obter o código de amostra do SDK de mais linguagens de programação, consulte a guia Código de amostra no API Explorer. O código de amostra do SDK pode ser gerado automaticamente.
Códigos de status
Código de status |
Descrição |
---|---|
200 |
Lista de servidores de nuvem |
Códigos de erro
Consulte Códigos de erro.