Em vez de consultar os resultados da tarefa repetidamente, configure uma URL de callback HTTP ou o RocketMQ para receber notificações de conclusão de tarefa do EventBridge. Após a notificação, consulte a API de resultados uma única vez para obter a saída.
Contexto
O Alibaba Cloud Model Studio integra-se ao EventBridge para entregar eventos de conclusão de tarefa aos destinos de evento configurados.
Quando uma tarefa assíncrona termina (com sucesso ou falha), um evento de conclusão de tarefa contendo o status e o ID da tarefa é reportado ao EventBridge, que o encaminha ao seu destino. Para mais destinos de evento, consulte Event targets e Target service types.
Consulta repetida vs. notificações orientadas a eventosDimensão de comparação | Consulta repetida | Orientado a eventos |
|---|---|---|
Limitação de taxa | A API de resultados possui limite de taxa (20 QPS) | Sem limitação de taxa |
Complexidade de integração | Simples — basta consultar a API de resultados. Algumas tarefas (como text-to-image e text-to-video) fornecem SDKs com consulta integrada. | Configure callback HTTP ou RocketMQ no EventBridge e analise as notificações. |
Consumo de recursos do servidor | Consome recursos do servidor com consultas frequentes. | Sem consumo de recursos — o EventBridge envia os dados para você. |
Latência | Depende do intervalo de consulta. | Quase em tempo real — enviado imediatamente após a conclusão. |
Recomendação | Cenários de baixa concorrência ou tolerantes a latência. | Cenários de alta concorrência ou sensíveis a latência. |
Configure um dos seguintes destinos de evento no EventBridge:
- HTTP callback URL: Um endpoint acessível publicamente ou via VPC que aceite requisições POST. Adequado para a maioria dos cenários.
- RocketMQ: Consuma eventos via Message Queue for RocketMQ. Ideal para cenários que exigem alta confiabilidade.
Opção 1: Configurar uma URL de callback HTTP
Visão geral
Após o Alibaba Cloud Model Studio concluir uma tarefa, ele reporta o evento de conclusão ao EventBridge. O EventBridge então envia esse evento para o seu endpoint de callback. Seu endpoint analisa o evento para extrair o ID da tarefa processada com sucesso e chama a API de consulta de resultados uma única vez para recuperar a saída da tarefa.
Benefícios: Em comparação à consulta direta e repetida, esta abordagem evita requisições desnecessárias, reduz o consumo de recursos e diminui a pressão sobre os limites de taxa da API de consulta de resultados.
Faturamento: EventBridge billing.
Por exemplo, o fluxo de invocação assíncrona usando uma URL de callback HTTP para text-to-image é o seguinte:
|
|
Procedimento
Etapa 1: Preparar o endpoint de callback HTTP
Geralmente, implante o endpoint de callback HTTP em seu sistema de negócios para receber notificações de eventos assíncronos. Ele deve atender aos seguintes requisitos:
- URL da requisição: Uma URL HTTP acessível pela rede pública ou uma Alibaba Cloud VPC.
- Método da requisição:
POST. - Corpo da requisição: Formato
JSONcontendo os dados do evento de conclusão da tarefa assíncrona. Você pode visualizar a estrutura exata do evento no console do EventBridge. Exemplo:
Clique em para visualizar a estrutura de dados do evento de conclusão de tarefa assíncrona
{
"datacontenttype": "application/json;charset=utf-8",
"aliyunaccountid": "xxxxx",
"aliyunpublishtime": "2023-10-25T01:45:16.993Z",
"data": {
"start_time": "2023-10-25 09:45:09",
"user_api_unique_key": "apikey:v1:audio:asr:transcription:paraformer-8k-v1",
"task_status": "SUCCEEDED",
"contain_result": false,
"end_time": "2023-10-25 09:45:16",
"task_id": "a154c328-xxxx-xxxx-xxxx-e52a9a7e9a35",
"region": "cn-beijing",
"request_id": "108f38f5-xxxx-xxxx-xxxx-6504db9080b3",
"api_key_id": "1250"
},
"aliyunoriginalaccountid": "xxxxxxxx",
"specversion": "1.0",
"aliyuneventbusname": "default",
"id": "81765e5b-xxxx-xxxx-xxxx-bbad8dde2bd9",
"source": "acs.dashscope",
"time": "2023-1-25T01:45:16.969Z",
"aliyunregionid": "cn-beijing",
"type": "dashscope:System:AsyncTaskFinish"
}
{
"datacontenttype": "application/json;charset=utf-8",
"aliyunaccountid": "xxxxx",
"aliyunpublishtime": "2023-10-25T01:45:16.993Z",
"data": {
"start_time": "2023-10-25 09:45:09",
"user_api_unique_key": "apikey:v1:audio:asr:transcription:paraformer-8k-v1",
"task_status": "SUCCEEDED",
"contain_result": false,
"end_time": "2023-10-25 09:45:16",
"task_id": "a154c328-xxxx-xxxx-xxxx-e52a9a7e9a35",
"region": "ap-southeast-1",
"request_id": "108f38f5-xxxx-xxxx-xxxx-6504db9080b3",
"api_key_id": "1250"
},
"aliyunoriginalaccountid": "xxxxxxxx",
"specversion": "1.0",
"aliyuneventbusname": "default",
"id": "81765e5b-xxxx-xxxx-xxxx-bbad8dde2bd9",
"source": "acs.dashscope",
"time": "2023-1-25T01:45:16.969Z",
"aliyunregionid": "ap-southeast-1",
"type": "dashscope:System:AsyncTaskFinish"
}
Etapa 2: Consultar eventos no console do EventBridge
O console do EventBridge permite consultar eventos entregues pelo Alibaba Cloud Model Studio.
-
Faça login na sua conta Alibaba Cloud e acesse o console do EventBridge. Mude para a Singapore region. No painel de navegação à esquerda, selecione Event buses e clique em default para acessar o barramento de eventos padrão para serviços cloud.
O Alibaba Cloud Model Studio utiliza o barramento de eventos padrão por definição.
-
Clique em Event tracking e insira as condições de consulta para localizar eventos de conclusão de tarefa assíncrona do Alibaba Cloud Model Studio.
- Fonte do evento: Pesquise e selecione acs.dashscope, indicando que o evento se origina do DashScope (o serviço de modelo subjacente do Alibaba Cloud Model Studio).
- Tipo de evento: Pesquise e selecione dashscope:System:AsyncTaskFinish, indicando um evento de conclusão de tarefa assíncrona.
-
Clique em Details para visualizar todos os detalhes do evento reportado.
{
"datacontenttype": "application/json;charset=utf-8",
"aliyunaccountid": "xxxxx",
"aliyunpublishtime": "2023-10-25T01:45:16.993Z",
"data": {
"start_time": "2023-10-25 09:45:09",
"user_api_unique_key": "apikey:v1:audio:asr:transcription:paraformer-8k-v1",
"task_status": "SUCCEEDED",
"contain_result": false,
"end_time": "2023-10-25 09:45:16",
"task_id": "a154c328-xxxx-xxxx-xxxx-e52a9a7e9a35",
"region": "cn-beijing",
"request_id": "108f38f5-xxxx-xxxx-xxxx-6504db9080b3",
"api_key_id": "1250"
},
"aliyunoriginalaccountid": "xxxxxxxx",
"specversion": "1.0",
"aliyuneventbusname": "default",
"id": "81765e5b-xxxx-xxxx-xxxx-bbad8dde2bd9",
"source": "acs.dashscope",
"time": "2023-1-25T01:45:16.969Z",
"aliyunregionid": "cn-beijing",
"type": "dashscope:System:AsyncTaskFinish"
}
{
"datacontenttype": "application/json;charset=utf-8",
"aliyunaccountid": "xxxxx",
"aliyunpublishtime": "2023-10-25T01:45:16.993Z",
"data": {
"start_time": "2023-10-25 09:45:09",
"user_api_unique_key": "apikey:v1:audio:asr:transcription:paraformer-8k-v1",
"task_status": "SUCCEEDED",
"contain_result": false,
"end_time": "2023-10-25 09:45:16",
"task_id": "a154c328-xxxx-xxxx-xxxx-e52a9a7e9a35",
"region": "ap-southeast-1",
"request_id": "108f38f5-xxxx-xxxx-xxxx-6504db9080b3",
"api_key_id": "1250"
},
"aliyunoriginalaccountid": "xxxxxxxx",
"specversion": "1.0",
"aliyuneventbusname": "default",
"id": "81765e5b-xxxx-xxxx-xxxx-bbad8dde2bd9",
"source": "acs.dashscope",
"time": "2023-1-25T01:45:16.969Z",
"aliyunregionid": "ap-southeast-1",
"type": "dashscope:System:AsyncTaskFinish"
}
Clique em para visualizar as descrições dos parâmetros
Parâmetro | Tipo | Descrição | Valor de exemplo |
|---|---|---|---|
datacontenttype | String | Formato de dados do campo data. Apenas |
|
aliyunaccountid | String | ID da conta Alibaba Cloud. | 123456789098**** |
aliyunpublishtime | String | Hora em que o evento foi recebido. | 2020-11-19T21:04:42.179PRC |
data | Object | Conteúdo do evento. Um objeto JSON cuja estrutura é definida pelo serviço de origem. O CloudEvents pode incluir informações contextuais fornecidas pelo produtor do evento no momento da ocorrência, encapsuladas dentro de data. | |
data[].start_time | String | Hora de início da tarefa assíncrona. Formato: yyyy-MM-dd HH:mm:ss | 2023-10-25 09:45:09 |
data[].end_time | String | Hora de conclusão da tarefa assíncrona. Formato: yyyy-MM-dd HH:mm:ss | 2023-10-25 09:45:16 |
data[].user_api_unique_key | String | Chave de API exclusiva (os cinco elementos da API de modelo usados ao enviar a tarefa). Formato:
|
|
data[].task_status | String | Status da tarefa
| SUCCEEDED |
data[].task_id | String | ID da tarefa | a154c328-xxxx-xxxx-xxxx-e52a9a7e9a35 |
data[].region | String | Região onde a tarefa é executada | ap-southeast-1 |
data[].request_id | String | ID da requisição | 108f38f5-xxxx-xxxx-xxxx-6504db9080b3 |
data[].api_key_id | String | ID da chave de API | 1234 |
data[].contain_result | Boolean | Indica se o evento contém detalhes do resultado.
| true |
data[].output_result | JSON | Detalhes do resultado. Retornado quando |
|
aliyunoriginalaccountid | String | ID original da conta Alibaba Cloud | 123456789098**** |
specversion | String | Versão do protocolo CloudEvents | 1.0 |
aliyuneventbusname | String | Nome do barramento de eventos que recebe o evento | default |
id | String | ID do evento — um valor exclusivo que identifica o evento. | 45ef4dewdwe1-7c35-447a-bd93-fab**** |
source | String | Fonte do evento. O serviço que fornece o evento, identificando o que ocorreu. Geralmente inclui o tipo de fonte do evento, mecanismo de publicação ou processo de produção. O remetente deve garantir que a combinação | acs.dashscope |
time | String | Hora em que o evento foi gerado. Se a hora exata do evento for desconhecida, os produtores do CloudEvents podem definir time como outro valor (por exemplo, hora atual), mas todos os produtores da mesma fonte devem usar valores consistentes. | 2020-11-19T21:04:41+08:00 |
aliyunregionid | String | Região que recebe o evento. | ap-southeast-1 |
type | String | Tipo de evento. Descreve o tipo de evento relacionado à fonte. Usado para roteamento, consultas de eventos e aplicação de políticas. O formato é definido pelo produtor e inclui informações de versão. | dashscope:System:AsyncTaskFinish |
Etapa 3: Configurar regras de encaminhamento de eventos
-
No painel de navegação à esquerda, selecione Event rules e clique em Create rule.
-
Configure basic information: Insira um nome e uma descrição personalizados para a regra.
-
Configure event pattern: Especifique quais eventos devem ser encaminhados.
-
Event source: Pesquise e selecione acs.dashscope, indicando que o evento se origina do Alibaba Cloud Model Studio.
-
Event type: Pesquise e selecione dashscope:System:AsyncTaskFinish, indicando um evento de conclusão de tarefa assíncrona.
-
Pattern content: Configure condições de filtro para corresponder a eventos específicos. Utilize os campos dos detalhes do evento consultados na Etapa 2. Para sintaxe de padrões, consulte Event patterns. Exemplos:
- Padrão: Após selecionar a fonte e o tipo de evento, o padrão assume o seguinte formato, encaminhando todos os eventos
dashscope:System:AsyncTaskFinish.
- Padrão: Após selecionar a fonte e o tipo de evento, o padrão assume o seguinte formato, encaminhando todos os eventos
-
{
"source": ["acs.dashscope"],
"type": ["dashscope:System:AsyncTaskFinish"]
}
- Filtrar por campo: Encaminhe apenas eventos onde o campo
user_api_unique_keytermine com:paraformer-8k-v1— ou seja, apenas eventos do modeloparaformer-8k-v1. O tipo de evento édashscope:System:AsyncTaskFinish.
{
"source": ["acs.dashscope"],
"type": ["dashscope:System:AsyncTaskFinish"],
"data": {
"user_api_unique_key": [
{"suffix": ":paraformer-8k-v1"}
]
}
}
- Configure event targets: Suporta múltiplos tipos de event target, incluindo URLs de callback HTTP e filas de mensagens RocketMQ. Consulte a Etapa 4 para mais detalhes.
Etapa 4: Definir o destino do evento como um endpoint de callback HTTP
-
Configure event target: Encaminhe eventos para uma URL de callback HTTP.
-
Tipo de serviço: Selecione “HTTP”.
-
URL: Insira o endpoint do serviço HTTP.
-
Body: Selecione “Complete event”.
-
Tipo de rede: Escolha com base no seu endpoint de serviço.
- O HTTP suporta redes públicas e privadas. Se selecionar rede privada, configure VPC, vSwitch e SecurityGroup.
Opção 2: Configurar RocketMQ
Visão geral
Após o Alibaba Cloud Model Studio concluir uma tarefa, ele reporta o evento de conclusão ao EventBridge. O EventBridge encaminha o evento para o Message Queue for RocketMQ. Sua aplicação escuta a fila de mensagens, consome a mensagem, extrai o ID da tarefa concluída e chama a API de consulta de resultados uma única vez para recuperar a saída da tarefa.
Benefícios: Diferentemente da abordagem de callback HTTP, o RocketMQ garante a entrega de mensagens e suporta tentativas em caso de falha — ideal para cenários que exigem alta confiabilidade de mensagens.
Faturamento: EventBridge billing, RocketMQ billing.
Por exemplo, o fluxo de invocação assíncrona usando RocketMQ para text-to-image é o seguinte:
Crie uma tarefa de texto para imagem e receba um task_id. A tarefa ainda não foi concluída.
Após o Alibaba Cloud Model Studio terminar o processamento, ele reporta o evento de conclusão da tarefa ao EventBridge.
O EventBridge encaminha proativamente o evento para a fila RocketMQ especificada.
Sua aplicação escuta a fila RocketMQ, consome a mensagem e extrai o
task_idconcluído.Por fim, chame a API de consulta de resultados para obter a URL da imagem gerada.

Procedimento
Etapa 1: Preparar uma instância RocketMQ (ignore se já possuir uma fila RocketMQ)
Para receber eventos via RocketMQ, prepare primeiro uma fila RocketMQ.
-
Acesse o console do RocketMQ. No painel de navegação à esquerda, selecione Instances e clique em Create Instance.
Exemplo de ID de instância:
rmq-cn-nwy*******. -
Crie um Topic para a instância e insira um nome personalizado para o tópico.
-
Crie um Group para a instância e insira um nome personalizado para o grupo.
Etapa 2: Consultar eventos no console do EventBridge
O console do EventBridge permite consultar eventos entregues pelo Alibaba Cloud Model Studio.
-
Faça login na sua conta Alibaba Cloud e acesse o console do EventBridge. Mude para a Singapore region. No painel de navegação à esquerda, selecione Event buses e clique em default para acessar o barramento de eventos padrão para serviços cloud.
O Alibaba Cloud Model Studio utiliza o barramento de eventos padrão por definição.
-
Clique em Event tracking e insira as condições de consulta para localizar eventos de conclusão de tarefa assíncrona do Alibaba Cloud Model Studio.
- Fonte do evento: Pesquise e selecione acs.dashscope, indicando que o evento se origina do DashScope (o serviço de modelo subjacente do Alibaba Cloud Model Studio).
- Tipo de evento: Pesquise e selecione dashscope:System:AsyncTaskFinish, indicando um evento de conclusão de tarefa assíncrona.
-
Clique em Details para visualizar todos os detalhes do evento reportado.
{ "datacontenttype": "application/json;charset=utf-8", "aliyunaccountid": "xxxxx", "aliyunpublishtime": "2023-10-25T01:45:16.993Z", "data": { "start_time": "2023-10-25 09:45:09", "user_api_unique_key": "apikey:v1:audio:asr:transcription:paraformer-8k-v1", "task_status": "SUCCEEDED", "contain_result": false, "end_time": "2023-10-25 09:45:16", "task_id": "a154c328-xxxx-xxxx-xxxx-e52a9a7e9a35", "region": "cn-beijing", "request_id": "108f38f5-xxxx-xxxx-xxxx-6504db9080b3", "api_key_id": "1250" }, "aliyunoriginalaccountid": "xxxxxxxx", "specversion": "1.0", "aliyuneventbusname": "default", "id": "81765e5b-xxxx-xxxx-xxxx-bbad8dde2bd9", "source": "acs.dashscope", "time": "2023-1-25T01:45:16.969Z", "aliyunregionid": "cn-beijing", "type": "dashscope:System:AsyncTaskFinish" }{ "datacontenttype": "application/json;charset=utf-8", "aliyunaccountid": "xxxxx", "aliyunpublishtime": "2023-10-25T01:45:16.993Z", "data": { "start_time": "2023-10-25 09:45:09", "user_api_unique_key": "apikey:v1:audio:asr:transcription:paraformer-8k-v1", "task_status": "SUCCEEDED", "contain_result": false, "end_time": "2023-10-25 09:45:16", "task_id": "a154c328-xxxx-xxxx-xxxx-e52a9a7e9a35", "region": "ap-southeast-1", "request_id": "108f38f5-xxxx-xxxx-xxxx-6504db9080b3", "api_key_id": "1250" }, "aliyunoriginalaccountid": "xxxxxxxx", "specversion": "1.0", "aliyuneventbusname": "default", "id": "81765e5b-xxxx-xxxx-xxxx-bbad8dde2bd9", "source": "acs.dashscope", "time": "2023-1-25T01:45:16.969Z", "aliyunregionid": "ap-southeast-1", "type": "dashscope:System:AsyncTaskFinish" }Clique em para visualizar as descrições dos parâmetros
Parâmetro
Tipo
Descrição
Valor de exemplo
datacontenttype
String
Formato de dados do campo data. Apenas
application/jsoné suportado.application/json;charset=utf-8aliyunaccountid
String
ID da conta Alibaba Cloud.
123456789098****
aliyunpublishtime
String
Hora em que o evento foi recebido.
2020-11-19T21:04:42.179PRC
data
Object
Conteúdo do evento. Um objeto JSON cuja estrutura é definida pelo serviço de origem. O CloudEvents pode incluir informações contextuais fornecidas pelo produtor do evento no momento da ocorrência, encapsuladas dentro de data.
data[].start_time
String
Hora de início da tarefa assíncrona.
Formato: yyyy-MM-dd HH:mm:ss
2023-10-25 09:45:09
data[].end_time
String
Hora de conclusão da tarefa assíncrona.
Formato: yyyy-MM-dd HH:mm:ss
2023-10-25 09:45:16
data[].user_api_unique_key
String
Chave de API exclusiva (os cinco elementos da API de modelo usados ao enviar a tarefa). Formato:
apikey:version:group:task:function-call:modelversion: versão
group: grupo
task: nome da tarefa
function-call: nome do método
model: nome do modelo
apikey:v1:audio:asr:transcription:paraformer-8k-v1data[].task_status
String
Status da tarefa
PENDING: na fila
RUNNING: processando
SUCCEEDED: Processamento bem-sucedido.
FAILED: falhou
CANCELED: Tarefa cancelada
UNKNOWN: tarefa inexistente ou status desconhecido
SUCCEEDED
data[].task_id
String
ID da tarefa
a154c328-xxxx-xxxx-xxxx-e52a9a7e9a35
data[].region
String
Região onde a tarefa é executada
ap-southeast-1
data[].request_id
String
ID da requisição
108f38f5-xxxx-xxxx-xxxx-6504db9080b3
data[].api_key_id
String
ID da chave de API
1234
data[].contain_result
Boolean
Indica se o evento contém detalhes do resultado.
true: Contém detalhes do resultado.
false: Não contém detalhes do resultado.
true
data[].output_result
JSON
Detalhes do resultado. Retornado quando
contain_resultétrue.{"request_id": "6abe5b9b-f95c-9a23-8bed-0a04c2158b5c", "output": {"task_id": "84d0e919-5eda-40a1-a6e9-a94033840693", "task_status": "SUCCEEDED", "submit_time": "2026-05-20 15:38:19.940", "scheduled_time": "2026-05-20 15:38:19.995", "end_time": "2026-05-20 15:38:25.186", "text": "This is a simulated text generation result."}, "usage": {"output_tokens": 100, "input_tokens": 21}}aliyunoriginalaccountid
String
ID original da conta Alibaba Cloud
123456789098****
specversion
String
Versão do protocolo CloudEvents
1.0
aliyuneventbusname
String
Nome do barramento de eventos que recebe o evento
default
id
String
ID do evento — um valor exclusivo que identifica o evento.
45ef4dewdwe1-7c35-447a-bd93-fab****
source
String
Fonte do evento.
O serviço que fornece o evento, identificando o que ocorreu. Geralmente inclui o tipo de fonte do evento, mecanismo de publicação ou processo de produção. O remetente deve garantir que a combinação
source+idde cada evento seja exclusiva.acs.dashscope
time
String
Hora em que o evento foi gerado.
Se a hora exata do evento for desconhecida, os produtores do CloudEvents podem definir time como outro valor (por exemplo, hora atual), mas todos os produtores da mesma fonte devem usar valores consistentes.
2020-11-19T21:04:41+08:00
aliyunregionid
String
Região que recebe o evento.
ap-southeast-1
type
String
Tipo de evento.
Descreve o tipo de evento relacionado à fonte. Usado para roteamento, consultas de eventos e aplicação de políticas. O formato é definido pelo produtor e inclui informações de versão.
dashscope:System:AsyncTaskFinish
Etapa 3: Configurar regras de encaminhamento de eventos
-
No painel de navegação à esquerda, selecione Event rules e clique em Create rule.
-
Configure basic information: Insira um nome e uma descrição personalizados para a regra.
-
Configure event pattern: Especifique quais eventos devem ser encaminhados.
-
Event source: Pesquise e selecione acs.dashscope, indicando que o evento se origina do Alibaba Cloud Model Studio.
-
Event type: Pesquise e selecione dashscope:System:AsyncTaskFinish, indicando um evento de conclusão de tarefa assíncrona.
-
Pattern content: Configure condições de filtro para corresponder a eventos específicos. Utilize os campos dos detalhes do evento consultados na Etapa 2. Para sintaxe de padrões, consulte Event patterns. Exemplos:
- Padrão: Após selecionar a fonte e o tipo de evento, o padrão assume o seguinte formato, encaminhando todos os eventos
dashscope:System:AsyncTaskFinish.
- Padrão: Após selecionar a fonte e o tipo de evento, o padrão assume o seguinte formato, encaminhando todos os eventos
-
{ "source": ["acs.dashscope"], "type": ["dashscope:System:AsyncTaskFinish"] }- Filtrar por campo: Encaminhe apenas eventos onde o campo
user_api_unique_keytermine com:paraformer-8k-v1— ou seja, apenas eventos do modeloparaformer-8k-v1. O tipo de evento édashscope:System:AsyncTaskFinish.
{ "source": ["acs.dashscope"], "type": ["dashscope:System:AsyncTaskFinish"], "data": { "user_api_unique_key": [ {"suffix": ":paraformer-8k-v1"} ] } }- Configure event targets: Suporta múltiplos tipos de event target, incluindo URLs de callback HTTP e filas de mensagens RocketMQ. Consulte a Etapa 4 para mais detalhes.
Etapa 4: Definir o destino do evento como RocketMQ
Após criar o RocketMQ, abra a interface de configuração de destino de evento e selecione sua instância RocketMQ.
Etapa 5: Visualizar mensagens no console do RocketMQ
Após a configuração, envie uma tarefa assíncrona. Quando concluída, visualize a mensagem no tópico RocketMQ configurado.
- Para visualizar mensagens online no RocketMQ, ative o recurso de experiência de envio/recepção com um clique.
- Este recurso utiliza Function Compute. Se exceder a cota de teste gratuito, serão aplicadas cobranças mínimas. Consulte Function Compute billing rules.
Na página Topics, localize seu tópico e clique em Details na coluna Actions.
Na página de detalhes do tópico, mude para a aba One-click send/receive experience. Na seção Basic Features, selecione um método de consumo, como PushConsumer.
Após configurar parâmetros como Topic Name e Group ID, clique em Run para começar a receber mensagens. A aba Run Results exibe as mensagens recebidas, incluindo ID da mensagem e hora de recebimento.
Etapa 6: Usar o SDK para receber e consumir mensagens
Utilize o Java SDK do RocketMQ para implementar a seguinte lógica: inscreva-se no tópico relevante e implemente um listener de mensagens. Processe a mensagem assim que for recebida.
O exemplo a seguir mostra o código de cliente Java para RocketMQ 5.0.
- Em um projeto Maven, adicione esta dependência:
<dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client-java</artifactId> <version>5.0.4</version> </dependency>- Código de exemplo para consumir mensagens MQ:
import com.alibaba.fastjson2.JSON; import org.apache.rocketmq.client.apis.*; import org.apache.rocketmq.client.apis.consumer.ConsumeResult; import org.apache.rocketmq.client.apis.consumer.FilterExpression; import org.apache.rocketmq.client.apis.consumer.FilterExpressionType; import org.apache.rocketmq.client.apis.consumer.PushConsumer; import org.apache.rocketmq.shaded.org.slf4j.Logger; import org.apache.rocketmq.shaded.org.slf4j.LoggerFactory; import java.io.IOException; import java.nio.ByteBuffer; import java.util.Collections; public class ConsumerExample { private static final Logger LOGGER = LoggerFactory.getLogger(ConsumerExample.class); private ConsumerExample() { } public static void main(String[] args) throws ClientException, IOException, InterruptedException { /* Endpoint obtained from the Endpoints tab on the instance details page in the console. If accessing from an Alibaba Cloud ECS instance over the internal network, use the VPC endpoint. If accessing from a local public network or on-premises IDC, use the public endpoint. Public endpoint access requires enabling public network access for the instance. */ String endpoints = "xxxx"; // Specify the target topic to subscribe to. The topic must be created in the console beforehand; otherwise, an error occurs. String topic = "xxxx"; // Specify the consumer group for the consumer. The group must be created in the console beforehand; otherwise, an error occurs. String consumerGroup = "xxxx"; final ClientServiceProvider provider = ClientServiceProvider.loadService(); ClientConfigurationBuilder builder = ClientConfiguration.newBuilder().setEndpoints(endpoints); /* If using a public endpoint, configure the instance username and password, available on the instance details page in the console. If accessing from an Alibaba Cloud ECS instance over the internal network, skip this configuration—the server intelligently retrieves VPC info. */ builder.setCredentialProvider(new StaticSessionCredentialsProvider("xxxx", "xxxx")); ClientConfiguration clientConfiguration = builder.build(); // Subscription filter rule—subscribe to messages with any tag. String tag = "*"; FilterExpression filterExpression = new FilterExpression(tag, FilterExpressionType.TAG); // Initialize PushConsumer with consumer group, communication parameters, and subscription relationship. PushConsumer pushConsumer = provider.newPushConsumerBuilder() .setClientConfiguration(clientConfiguration) // Set consumer group. .setConsumerGroup(consumerGroup) // Set pre-bound subscription relationships. .setSubscriptionExpressions(Collections.singletonMap(topic, filterExpression)) // Set message listener. .setMessageListener(messageView -> { try { // Process message and return consumption result. ByteBuffer buffer = messageView.getBody(); ByteBuffer newBuffer = ByteBuffer.allocate(buffer.capacity()); for (int i = 0; i < buffer.capacity(); i++) { newBuffer.put(buffer.get(i)); } String result = new String(newBuffer.array()); LOGGER.info("Consume message={}", JSON.toJSONString(result)); System.out.println(result); return ConsumeResult.SUCCESS; } catch (Exception e) { LOGGER.error("deal message has error", e); return ConsumeResult.FAILURE; } }) .build(); Thread.sleep(Long.MAX_VALUE); // Close PushConsumer when no longer needed. pushConsumer.close(); } }FAQ
Uma regra de evento pode ter múltiplos destinos de evento?
Sim. Uma única regra de evento pode ter vários destinos. Se configurado, o mesmo evento será entregue a todos os destinos.
Configurei uma regra de evento, mas não estou recebendo eventos. Por quê?
Certifique-se de que a região da regra de encaminhamento de eventos corresponde à região do evento. Por exemplo, uma regra configurada na região Singapore encaminha apenas eventos de Singapore — não de outras regiões. Verifique a região do EventBridge no seletor de regiões no topo da página do console.
A requisição ao serviço HTTP/HTTPS expira ou retorna erro?
Siga estas etapas para solucionar o problema:
-
Verifique o status do serviço HTTP/HTTPS.
-
Confirme a URL configurada no destino do evento.
-
Cheque o tipo de rede configurado para o destino do evento:
-
PublicNetwork: Rede pública — garanta que a URL seja acessível publicamente.
-
PrivateNetwork: Rede VPC — se selecionado, verifique as configurações de VPC, vSwitch e SecurityGroup.
- Revise as configurações de VPC e vSwitch.
- Analise as configurações do grupo de segurança de rede.
-
-
Para outras definições de parâmetros, consulte Event target parameters.
-
-
Clique em Confirm para salvar a regra. Se o destino do evento exibir um estilo HTTP, a configuração foi bem-sucedida.
A coluna Event target da regra agora exibe HTTP (1).
