Consulta das mensagens
Função
Essa API é usada para consultar o deslocamento e o conteúdo de uma mensagem. Essa API consulta o deslocamento da mensagem com base no carimbo de data/hora e, em seguida, consulta o conteúdo da mensagem com base no deslocamento.
Método de chamada
Para obter detalhes, consulte Chamada de APIs.
URI
GET /v2/{project_id}/instances/{instance_id}/messages
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
project_id |
Sim |
String |
ID do projeto. Para obter detalhes sobre como obtê-lo, consulte Obtenção de um ID de projeto. |
instance_id |
Sim |
String |
ID da instância. |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
topic |
Sim |
String |
Nome do tópico. Um nome de tópico deve começar com uma letra e só pode conter letras, hifens (-), sublinhados (_) e dígitos. |
asc |
Não |
Boolean |
Se deseja classificar as mensagens por horário. |
start_time |
Não |
String |
Hora de início. O valor é um carimbo de data/hora UNIX, em milissegundos. Esse parâmetro é obrigatório quando você consulta o deslocamento da mensagem. |
end_time |
Não |
String |
Hora de término. O valor é um carimbo de data/hora UNIX, em milissegundos. Esse parâmetro é obrigatório quando você consulta o deslocamento da mensagem. |
limit |
Não |
String |
Número de mensagens exibidas em cada página. |
offset |
Não |
String |
Número da página. |
download |
Não |
Boolean |
Se o download é necessário. |
message_offset |
Não |
String |
Deslocamento da mensagem. Esse parâmetro é obrigatório quando você consulta o conteúdo da mensagem. Se start_time e end_time não estiverem vazios, este parâmetro é inválido. |
partition |
Não |
String |
Partição. Esse parâmetro é obrigatório quando você consulta o conteúdo da mensagem. Se start_time e end_time não estiverem vazios, este parâmetro é inválido. |
keyword |
Não |
String |
Palavra-chave. O valor varia de 0 a 50. Mínimo: 0 Máximo: 50 |
Parâmetros de solicitação
Nenhum
Parâmetros de resposta
Código de status: 200
Parâmetro |
Tipo |
Descrição |
---|---|---|
messages |
Array of MessagesEntity objects |
Lista de mensagens. |
total |
Long |
Número total de mensagens. |
size |
Long |
Número de registros em cada página. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
topic |
String |
Nome do tópico. |
partition |
Integer |
Partição onde a mensagem está localizada. |
key |
String |
Key de mensagem. |
value |
String |
Conteúdo da mensagem. |
size |
Integer |
Tamanho da mensagem. |
timestamp |
Long |
Tempo de produção da mensagem. O valor é um carimbo de data/hora UNIX, em ms. |
huge_message |
Boolean |
Bandeira de big data. |
message_offset |
Long |
Deslocamento da mensagem. |
message_id |
String |
ID da mensagem. |
app_id |
String |
ID da aplicação. |
tag |
String |
Rótulo da mensagem. |
Código de status: 400
Parâmetro |
Tipo |
Descrição |
---|---|---|
error_code |
String |
Código de erro. |
error_msg |
String |
Descrição do erro. |
Código de status: 403
Parâmetro |
Tipo |
Descrição |
---|---|---|
error_code |
String |
Código de erro. |
error_msg |
String |
Descrição do erro. |
Exemplo de solicitações
- Consulta do deslocamento da mensagem.
GET https://{endpoint}/v2/{project_id}/instances/{instance_id}/messages?asc=false&end_time=1608609032042&limit=10&offset=0&start_time=1608608432042&topic=topic-test
- Consulta do conteúdo da mensagem.
GET https://{endpoint}/v2/{project_id}/instances/{instance_id}/messages?download=false&message_offset=0&partition=0&topic=topic-test
Exemplo de respostas
Código de status: 200
A consulta foi bem-sucedida.
{ "messages" : [ { "topic" : "topic-test", "partition" : 0, "value" : "hello world", "size" : 21, "timestamp" : 1607598463502, "huge_message" : false, "message_offset" : 4, "message_id" : "", "app_id" : "", "tag" : "" } ], "total" : 1, "size" : 1 }
Código de exemplo do SDK
O código de exemplo 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 |
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.kafka.v2.region.KafkaRegion; import com.huaweicloud.sdk.kafka.v2.*; import com.huaweicloud.sdk.kafka.v2.model.*; public class ShowInstanceMessagesSolution { 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); KafkaClient client = KafkaClient.newBuilder() .withCredential(auth) .withRegion(KafkaRegion.valueOf("<YOUR REGION>")) .build(); ShowInstanceMessagesRequest request = new ShowInstanceMessagesRequest(); request.withInstanceId("{instance_id}"); try { ShowInstanceMessagesResponse response = client.showInstanceMessages(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 |
# coding: utf-8 from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkkafka.v2.region.kafka_region import KafkaRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkkafka.v2 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") projectId = "{project_id}" credentials = BasicCredentials(ak, sk, projectId) \ client = KafkaClient.new_builder() \ .with_credentials(credentials) \ .with_region(KafkaRegion.value_of("<YOUR REGION>")) \ .build() try: request = ShowInstanceMessagesRequest() request.instance_id = "{instance_id}" response = client.show_instance_messages(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 |
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" kafka "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/kafka/v2" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/kafka/v2/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/kafka/v2/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 := kafka.NewKafkaClient( kafka.KafkaClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.ShowInstanceMessagesRequest{} request.InstanceId = "{instance_id}" response, err := client.ShowInstanceMessages(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } } |
Mais
Para obter o código de exemplo do SDK de mais linguagens de programação, consulte a guia Código de exemplo no API Explorer. O código de exemplo do SDK pode ser gerado automaticamente.
Códigos de status
Código de status |
Descrição |
---|---|
200 |
A consulta foi bem-sucedida. |
400 |
Parâmetros inválidos. |
403 |
Falha na autenticação. |
Códigos de erro
Consulte Códigos de erro.