Querying the Results of a Backend Server Check Task
Function
This API is used to query the results of a backend server check task.
Calling Method
For details, see Calling APIs.
URI
GET /v3/{project_id}/elb/members/check/jobs/{job_id}
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
project_id |
Yes |
String |
Definition: Specifies the project ID. For details about how to obtain a project ID, see Obtaining a Project ID. Constraints: N/A Range: The value can contain a maximum of 32 characters, including digits and lowercase letters. Default value: N/A |
job_id |
Yes |
String |
Definition: Specifies the task ID returned by the API for creating a backend server check task. |
Request Parameters
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
X-Auth-Token |
Yes |
String |
Definition: Specifies the token used for IAM authentication. Constraints: N/A Range: N/A Default value: N/A |
Response Parameters
Status code: 200
Parameter |
Type |
Description |
---|---|---|
member_check |
MemberCheckJobInfo object |
Definition: Specifies the information about the backend server check task. |
request_id |
String |
Definition: Specifies the request ID. Range: The value is automatically generated, and can contain characters including digits, lowercase letters, and hyphens (-). |
Parameter |
Type |
Description |
---|---|---|
status |
String |
Definition: Specifies the result of a backend server check task. The value can be processed, processing, or failed. Range: N/A |
result |
MemberCheckJobResult object |
Definition: Specifies the result of each check item. |
created_at |
String |
Definition: Specifies the task creation time. Range: N/A |
updated_at |
String |
Definition: Specifies the task update time. Range: N/A |
job_id |
String |
Definition: Specifies the task ID. |
check_item_total_num |
Integer |
Definition: Specifies the total number of check items. Range: N/A |
check_item_finished_num |
Integer |
Definition: Specifies the number of checked items. Range: N/A |
listener_id |
String |
Definition: Specifies the ID of a listener to query the status of the backend servers that are associated with this listener. Range: N/A |
member_id |
String |
Definition: Specifies the backend server ID. Range: N/A |
Parameter |
Type |
Description |
---|---|---|
config |
MemberCheckJobResultGroup object |
Definition: Specifies the configuration check. Range: N/A |
acl |
MemberCheckJobResultGroup object |
Definition: Specifies the network ACL rule check. Range: N/A |
security_group |
MemberCheckJobResultGroup object |
Definition: Specifies the security group rule check. Range: N/A |
Parameter |
Type |
Description |
---|---|---|
check_result |
Boolean |
Definition: Specifies the check result. true indicates that the check is passed, and false indicates that the check is not passed. Range: N/A |
check_items |
Array of MemberCheckJobResultItem objects |
Definition: Specifies the summary of grouped check items. |
check_status |
String |
Definition: Specifies the result of a backend server check task. The value can be processed, processing, or failed. Range: N/A |
Parameter |
Type |
Description |
---|---|---|
name |
String |
Definition: Specifies the check item name. Range: N/A |
reason |
String |
Definition: Specifies the exception cause. Range: N/A |
severity |
String |
Definition: Specifies the exception severity, which can be Major (severe) or Tips (informational). Range: N/A |
subject |
String |
Definition: Specifies the check type. config indicates configuration check. Range: N/A |
job_id |
String |
Definition: Specifies the task ID. Range: N/A |
reason_template |
String |
Definition: Specifies the exception reason template. Range: N/A |
reason_params |
Array of strings |
Definition: Specifies the exception variables, which is used to dynamically generate exception causes based on the exception cause template. Range: N/A |
Example Requests
Querying the results of a backend server check task
POST https://{ELB_Endpoint}/v3/04dd36f964000fe22f9ac00bc85b1a1d/elb/members/check/jobs/04a9bc65-b75b-478d-b4d6-e693bb61dd35
Example Responses
Status code: 200
Successful request.
{ "member_check" : { "status" : "processed", "result" : { "config" : { "check_result" : true, "check_items" : [ { "name" : "check_hc_config_port", "reason" : null, "severity" : "Tips", "subject" : "config", "job_id" : "919221ce-0011-4558-81ca-2866e6e68a27", "reason_template" : "healthCheck {$hm_id}'s protocolPort {$protocol_port} is different from member port {$member_port}", "reason_params" : [ ] } ], "check_status" : "processed" }, "acl" : { "check_result" : true, "check_items" : [ { "name" : "acl_check_hc_protocol_egress", "reason" : null, "severity" : "Major", "subject" : "networkAcl", "job_id" : "919221ce-0011-4558-81ca-2866e6e68a27", "reason_template" : "healthCheck {$hm_id}'s protocol is {$hc_protocol}, but the transport layer protocol corresponding to the protocol {$trans_protocol} is not allowed by ACL {$acl_id} egress policies", "reason_params" : [ ] }, { "name" : "acl_check_hc_dest_port_egress", "reason" : null, "severity" : "Major", "subject" : "networkAcl", "job_id" : "919221ce-0011-4558-81ca-2866e6e68a27", "reason_template" : "healthCheck destination port may not allowed by ACL {$acl_id} egress policies, it is recommended to open all destination ports", "reason_params" : [ ] }, { "name" : "acl_check_hc_dest_ip_egress", "reason" : null, "severity" : "Major", "subject" : "networkAcl", "job_id" : "919221ce-0011-4558-81ca-2866e6e68a27", "reason_template" : "healthCheck destination IP {$dest_ip} is not allowed by ACL {$acl_id} egress policies", "reason_params" : [ ] }, { "name" : "acl_check_hc_source_port_egress", "reason" : null, "severity" : "Major", "subject" : "networkAcl", "job_id" : "919221ce-0011-4558-81ca-2866e6e68a27", "reason_template" : "healthCheck source port {$source_port} is not allowed by ACL {$acl_id} egress policies", "reason_params" : [ ] }, { "name" : "acl_check_hc_source_ip_egress", "reason" : null, "severity" : "Major", "subject" : "networkAcl", "job_id" : "919221ce-0011-4558-81ca-2866e6e68a27", "reason_template" : "healthCheck source IP {$source_ip} is not allowed by ACL {$acl_id} egress policies", "reason_params" : [ ] }, { "name" : "acl_check_hc_protocol_ingress", "reason" : null, "severity" : "Major", "subject" : "networkAcl", "job_id" : "919221ce-0011-4558-81ca-2866e6e68a27", "reason_template" : "healthCheck {$hm_id}'s protocol is {$hc_protocol}, but the transport layer protocol corresponding to the protocol {$trans_protocol} is not allowed by ACL {$acl_id} ingress policies", "reason_params" : [ ] }, { "name" : "acl_check_hc_dest_port_ingress", "reason" : null, "severity" : "Major", "subject" : "networkAcl", "job_id" : "919221ce-0011-4558-81ca-2866e6e68a27", "reason_template" : "healthCheck destination port {$dest_port} is not allowed by ACL {$acl_id} ingress policies", "reason_params" : [ ] }, { "name" : "acl_check_hc_dest_ip_ingress", "reason" : null, "severity" : "Major", "subject" : "networkAcl", "job_id" : "919221ce-0011-4558-81ca-2866e6e68a27", "reason_template" : "healthCheck destination IP {$dest_ip} is not allowed by ACL {$acl_id} ingress policies", "reason_params" : [ ] }, { "name" : "acl_check_hc_source_port_ingress", "reason" : null, "severity" : "Tips", "subject" : "networkAcl", "job_id" : "919221ce-0011-4558-81ca-2866e6e68a27", "reason_template" : "healthCheck source port may not allowed by ACL {$acl_id} ingress policies, it is recommended to open all destination ports", "reason_params" : [ ] }, { "name" : "acl_check_hc_source_ip_ingress", "reason" : null, "severity" : "Major", "subject" : "networkAcl", "job_id" : "919221ce-0011-4558-81ca-2866e6e68a27", "reason_template" : "healthCheck source IP {$source_ip} is not allowed by ACL {$acl_id} ingress policies", "reason_params" : [ ] } ], "check_status" : "processed" }, "security_group" : { "check_result" : true, "check_items" : [ { "name" : "security_group_check_hc_protocol_egress", "reason" : null, "severity" : "Major", "subject" : "securityGroup", "job_id" : "919221ce-0011-4558-81ca-2866e6e68a27", "reason_template" : "healthCheck {$hm_id}'s protocol is {$hc_protocol}, but the transport layer protocol corresponding to the protocol {$transport_protocol} is not allowed by securityGroup {$security_group_id} egress rules", "reason_params" : [ ] }, { "name" : "security_group_check_hc_port_egress", "reason" : null, "severity" : "Major", "subject" : "securityGroup", "job_id" : "919221ce-0011-4558-81ca-2866e6e68a27", "reason_template" : "healthCheck dest port {$dest_port} is not allowed by securityGroup {$security_group_id} egress rules", "reason_params" : [ ] }, { "name" : "security_group_check_hc_source_ip_egress", "reason" : null, "severity" : "Major", "subject" : "securityGroup", "job_id" : "919221ce-0011-4558-81ca-2866e6e68a27", "reason_template" : "healthCheck source IP {$source_ip} is not allowed by securityGroup {$security_group_id} egress rules", "reason_params" : [ ] }, { "name" : "security_group_check_hc_protocol_ingress", "reason" : null, "severity" : "Major", "subject" : "securityGroup", "job_id" : "919221ce-0011-4558-81ca-2866e6e68a27", "reason_template" : "healthCheck {$hm_id}'s protocol is {$hc_protocol}, but the transport layer protocol corresponding to the protocol {$transport_protocol} is not allowed by securityGroup {$security_group_id} ingress rules", "reason_params" : [ ] }, { "name" : "security_group_check_hc_port_ingress", "reason" : null, "severity" : "Major", "subject" : "securityGroup", "job_id" : "919221ce-0011-4558-81ca-2866e6e68a27", "reason_template" : "healthCheck dest port {$dest_port} is not allowed by securityGroup {$security_group_id} ingress rules", "reason_params" : [ ] }, { "name" : "security_group_check_hc_source_ip_ingress", "reason" : null, "severity" : "Major", "subject" : "securityGroup", "job_id" : "919221ce-0011-4558-81ca-2866e6e68a27", "reason_template" : "healthCheck source IP {$source_ip} is not allowed by securityGroup {$security_group_id} ingress rules", "reason_params" : [ ] } ], "check_status" : "processed" } }, "created_at" : "2024-12-08T07:55:04Z", "updated_at" : "2024-12-08T07:55:05Z", "job_id" : "919221ce-0011-4558-81ca-2866e6e68a27", "check_item_total_num" : 17, "check_item_finished_num" : 17, "listener_id" : "b445cc43-02d7-4863-9481-283b7fb1c222", "member_id" : "02272819-5655-4c6b-892b-105604f6aea0" }, "request_id" : "5980e624-dc64-46b9-8d74-e5834655dab5" }
SDK Sample Code
The SDK sample code is as follows.
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 |
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.elb.v3.region.ElbRegion; import com.huaweicloud.sdk.elb.v3.*; import com.huaweicloud.sdk.elb.v3.model.*; public class ShowMemberHealthCheckJobSolution { 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"); String projectId = "{project_id}"; ICredential auth = new BasicCredentials() .withProjectId(projectId) .withAk(ak) .withSk(sk); ElbClient client = ElbClient.newBuilder() .withCredential(auth) .withRegion(ElbRegion.valueOf("<YOUR REGION>")) .build(); ShowMemberHealthCheckJobRequest request = new ShowMemberHealthCheckJobRequest(); request.withJobId("{job_id}"); try { ShowMemberHealthCheckJobResponse response = client.showMemberHealthCheckJob(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()); } } } |
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 |
# coding: utf-8 import os from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkelb.v3.region.elb_region import ElbRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkelb.v3 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 = os.environ["CLOUD_SDK_AK"] sk = os.environ["CLOUD_SDK_SK"] projectId = "{project_id}" credentials = BasicCredentials(ak, sk, projectId) client = ElbClient.new_builder() \ .with_credentials(credentials) \ .with_region(ElbRegion.value_of("<YOUR REGION>")) \ .build() try: request = ShowMemberHealthCheckJobRequest() request.job_id = "{job_id}" response = client.show_member_health_check_job(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) |
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 |
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" elb "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/elb/v3" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/elb/v3/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/elb/v3/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") projectId := "{project_id}" auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). WithProjectId(projectId). Build() client := elb.NewElbClient( elb.ElbClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.ShowMemberHealthCheckJobRequest{} request.JobId = "{job_id}" response, err := client.ShowMemberHealthCheckJob(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } } |
For SDK sample code of more programming languages, see the Sample Code tab in API Explorer. SDK sample code can be automatically generated.
Status Codes
Status Code |
Description |
---|---|
200 |
Successful request. |
Error Codes
See Error Codes.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot