Todos os produtos
Search
Central de documentação

Alibaba Cloud Model Studio:Receive task completion notifications via HTTP callback or MQ

Última atualização: Sep 02, 2026

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 eventos

Dimensã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:

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:

  • 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 envia proativamente o evento para o endpoint de callback HTTP.

  • O endpoint de callback analisa o evento para obter o task_id concluído.

  • Por fim, chame a API de consulta de resultados para obter a URL da imagem gerada.

image

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 JSON contendo 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.

  1. 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.

  2. 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.
  3. 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-8

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:

apikey:version:group:task:function-call:model

  • version: 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-v1

data[].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+id de 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

  1. No painel de navegação à esquerda, selecione Event rules e clique em Create rule.

  2. Configure basic information: Insira um nome e uma descrição personalizados para a regra.

  3. 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.
{
  "source": ["acs.dashscope"],
  "type": ["dashscope:System:AsyncTaskFinish"]
}
  • Filtrar por campo: Encaminhe apenas eventos onde o campo user_api_unique_key termine com :paraformer-8k-v1 — ou seja, apenas eventos do modelo paraformer-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"}
    ]
  }
}
  1. 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

  1. 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_id concluído.

    • Por fim, chame a API de consulta de resultados para obter a URL da imagem gerada.

    image

    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.

    1. 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*******.

    2. Crie um Topic para a instância e insira um nome personalizado para o tópico.

    3. 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.

    1. 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.

    2. 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.
    3. 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-8

    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:

    apikey:version:group:task:function-call:model

    • version: 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-v1

    data[].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+id de 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

    1. No painel de navegação à esquerda, selecione Event rules e clique em Create rule.

    2. Configure basic information: Insira um nome e uma descrição personalizados para a regra.

    3. 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.
    {
      "source": ["acs.dashscope"],
      "type": ["dashscope:System:AsyncTaskFinish"]
    }
    
    • Filtrar por campo: Encaminhe apenas eventos onde o campo user_api_unique_key termine com :paraformer-8k-v1 — ou seja, apenas eventos do modelo paraformer-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"}
        ]
      }
    }
    
    1. 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.

    • Tipo de serviço: Selecione “Message Queue for RocketMQ”.
    • Versão: A versão do RocketMQ que você criou, como RocketMQ 5.x.
    • ID da instância: O ID da sua instância RocketMQ. Consulte Step 1.
    • Topic: O nome do tópico que você criou. Consulte Step 1.

    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:

    1. Verifique o status do serviço HTTP/HTTPS.

    2. Confirme a URL configurada no destino do evento.

    3. 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.
    4. Para outras definições de parâmetros, consulte Event target parameters.

  2. 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).