En lugar de sondear los resultados de las tareas, puede configurar una URL de callback HTTP o RocketMQ para recibir notificaciones de finalización de tareas desde EventBridge. Una vez notificado, consulte la API de resultados una vez para obtener la salida.
Antecedentes
Alibaba Cloud Model Studio se integra con EventBridge para entregar eventos de finalización de tareas a sus destinos de evento configurados.
Cuando finaliza una tarea asíncrona (éxito o fallo), se reporta un evento de finalización de tarea que contiene el estado y el ID de la tarea a EventBridge, el cual lo reenvía a su destino. Para más destinos de eventos, consulte Destinos de eventos y Tipos de servicios de destino.
Notificaciones por sondeo frente a notificaciones basadas en eventos
Dimensión de comparación | Sondeo | Impulsado por eventos |
|---|---|---|
Limitación de tasa | La API de resultados tiene límite de velocidad (20 QPS) | Sin limitación de tasa |
Complejidad de integración | Simple: sondee la API de resultados. Algunas tareas (como texto a imagen y texto a video) proporcionan SDK con sondeo integrado. | Configure callback HTTP o RocketMQ en EventBridge y analice las notificaciones. |
Consumo de recursos del servidor | Consume recursos del servidor con consultas frecuentes. | Sin consumo de recursos: EventBridge le envía los eventos. |
Latencia | Depende del intervalo de sondeo. | Casi en tiempo real: se envía inmediatamente al finalizar. |
Recomendación | Escenarios de baja concurrencia o tolerantes a la latencia. | Escenarios de alta concurrencia o sensibles a la latencia. |
- URL de callback HTTP: Un endpoint accesible públicamente o de VPC que acepta solicitudes POST. Adecuado para la mayoría de los escenarios.
- RocketMQ: Consuma eventos mediante Message Queue for RocketMQ. Ideal para escenarios de alta fiabilidad.
Opción 1: Configurar una URL de callback HTTP
Visión general
Una vez que Alibaba Cloud Model Studio completa una tarea, reporta el evento de finalización de tarea a EventBridge. EventBridge luego envía este evento a su endpoint de callback. Su endpoint de callback analiza el evento para extraer el ID de la tarea procesada exitosamente y llama a la API de consulta de resultados una vez para recuperar la salida de la tarea.
Beneficios: En comparación con el sondeo directo, este enfoque evita solicitudes de sondeo innecesarias, reduce el consumo de recursos y disminuye la presión sobre los límites de velocidad de la API de consulta de resultados.
Facturación: Facturación de EventBridge.
Por ejemplo, el flujo de invocación asíncrona usando una URL de callback HTTP para texto a imagen es el siguiente:
| ![]() |
Procedimiento
Paso 1: Preparar el endpoint de callback HTTP
Paso 1: Preparar el endpoint de callback HTTP
- URL de solicitud: Una URL HTTP accesible a través de la red pública o una VPC de Alibaba Cloud.
- Método de solicitud:
POST. - Cuerpo de la solicitud: formato
JSONque contiene los datos del evento de finalización de tarea asíncrona. Puede ver la estructura exacta del evento en la consola de EventBridge. Ejemplo:
Haga clic para ver la estructura de datos del evento de finalización de tarea asíncrona
Haga clic para ver la estructura de datos del evento de finalización de tarea asíncrona
Paso 2: Consultar eventos en la consola de EventBridge
Paso 2: Consultar eventos en la consola de EventBridge
-
Inicie sesión en su cuenta de Alibaba Cloud y vaya a la consola de EventBridge. Cambie a la región de Singapore. En el panel de navegación izquierdo, seleccione Event buses y haga clic en default para ingresar al bus de eventos predeterminado para servicios en la nube.
Alibaba Cloud Model Studio utiliza el bus de eventos predeterminado por defecto.
-
Haga clic en Event tracking e introduzca condiciones de consulta para encontrar eventos de finalización de tareas asíncronas de Alibaba Cloud Model Studio.
- Origen del evento: Busque y seleccione
acs.dashscope, lo que indica que el evento se origina en DashScope (el servicio de modelos subyacente de Alibaba Cloud Model Studio). - Tipo de evento: Busque y seleccione
dashscope:System:AsyncTaskFinish, lo que indica un evento de finalización de tarea asíncrona.
- Origen del evento: Busque y seleccione
- Haga clic en Details para ver todos los detalles del evento reportado.
Haga clic para ver las descripciones de los parámetros
Haga clic para ver las descripciones de los parámetros
Parámetro | Tipo | Descripción | Valor de ejemplo |
|---|---|---|---|
datacontenttype | String | Formato de datos del campo data. Solo se admite |
|
aliyunaccountid | String | ID de cuenta de Alibaba Cloud. | 123456789098**** |
aliyunpublishtime | String | Hora en que se recibió el evento. | 2020-11-19T21:04:42.179PRC |
data | Object | Contenido del evento. Un objeto JSON cuya estructura es definida por el servicio de origen. CloudEvents puede incluir información contextual proporcionada por el productor del evento en el momento de la ocurrencia, encapsulada dentro de data. | |
data[].start_time | String | Hora de inicio de la tarea asíncrona. Formato: yyyy-MM-dd HH:mm:ss | 2023-10-25 09:45:09 |
data[].end_time | String | Hora de finalización de la tarea asíncrona. Formato: yyyy-MM-dd HH:mm:ss | 2023-10-25 09:45:16 |
data[].user_api_unique_key | String | Clave única de API (los cinco elementos de la API del modelo utilizados al enviar la tarea). Formato:
|
|
data[].task_status | String | Estado de la tarea
| SUCCEEDED |
data[].task_id | String | ID de tarea | a154c328-xxxx-xxxx-xxxx-e52a9a7e9a35 |
data[].region | String | Región donde se ejecuta la tarea | ap-southeast-1 |
data[].request_id | String | ID de solicitud | 108f38f5-xxxx-xxxx-xxxx-6504db9080b3 |
data[].api_key_id | String | ID de clave de API | 1234 |
data[].contain_result | Boolean | Indica si el evento contiene detalles del resultado.
| true |
data[].output_result | JSON | Detalles del resultado. Se devuelve cuando |
|
aliyunoriginalaccountid | String | ID de cuenta original de Alibaba Cloud | 123456789098**** |
specversion | String | Versión del protocolo CloudEvents | 1.0 |
aliyuneventbusname | String | Nombre del bus de eventos que recibe el evento | default |
id | String | ID de evento: un valor único que identifica el evento. | 45ef4dewdwe1-7c35-447a-bd93-fab**** |
source | String | Origen del evento. El servicio que proporciona el evento, identificando lo que ocurrió. Normalmente incluye el tipo de origen del evento, el mecanismo de publicación o el proceso de producción. El remitente debe garantizar que la combinación | acs.dashscope |
time | String | Hora en que se generó el evento. Si se desconoce la hora exacta del evento, los productores de CloudEvents pueden establecer time en otro valor (por ejemplo, la hora actual), pero todos los productores para el mismo origen deben usar valores consistentes. | 2020-11-19T21:04:41+08:00 |
aliyunregionid | String | Región que recibe el evento. | ap-southeast-1 |
type | String | Tipo de evento. Describe el tipo de evento relacionado con el origen. Se utiliza para enrutamiento, consultas de eventos y aplicación de políticas. El formato es definido por el productor e incluye información de versión. | dashscope:System:AsyncTaskFinish |
Paso 3: Configurar reglas de reenvío de eventos
Paso 3: Configurar reglas de reenvío de eventos
- En el panel de navegación izquierdo, seleccione Event rules y haga clic en Create rule.
- Configurar información básica: Introduzca un nombre y una descripción personalizados para la regla.
-
Configurar patrón de eventos: Especifique qué eventos reenviar.
-
Origen del evento: Busque y seleccione
acs.dashscope, lo que indica que el evento se origina en Alibaba Cloud Model Studio. -
Tipo de evento: Busque y seleccione
dashscope:System:AsyncTaskFinish, lo que indica un evento de finalización de tarea asíncrona. -
Contenido del patrón: Configure condiciones de filtro para coincidir con eventos específicos. Utilice los campos de los detalles del evento consultados en el Paso 2. Para la sintaxis de patrones, consulte Patrones de eventos. Ejemplos:
- Predeterminado: Después de seleccionar el origen y el tipo de evento, el patrón toma el siguiente valor predeterminado, reenviando todos los eventos
dashscope:System:AsyncTaskFinish.
- Predeterminado: Después de seleccionar el origen y el tipo de evento, el patrón toma el siguiente valor predeterminado, reenviando todos los eventos
-
Origen del evento: Busque y seleccione
- Filtrar por campo: Reenviar solo eventos donde el campo
user_api_unique_keytermine con:paraformer-8k-v2, es decir, solo eventos para el modeloparaformer-8k-v2. El tipo de evento esdashscope:System:AsyncTaskFinish.
- Configurar destinos de eventos: Admite múltiples tipos de destino de evento, incluidas URLs de callback HTTP y colas de mensajes RocketMQ. Consulte el Paso 4 para más detalles.
Paso 4: Establecer el destino del evento en un endpoint de callback HTTP
Paso 4: Establecer el destino del evento en un endpoint de callback HTTP
-
Configurar destino del evento: Reenviar eventos a una URL de callback HTTP.
- Tipo de servicio: Seleccione “HTTP”.
- URL: Introduzca el endpoint del servicio HTTP.
- Cuerpo: Seleccione “Complete event”.
-
Tipo de red: Elija según su endpoint de servicio.
- HTTP admite redes públicas y privadas. Si selecciona red privada, configure VPC, vSwitch y SecurityGroup.
- Haga clic en Confirm para guardar la regla. Si el destino del evento muestra un estilo HTTP, la configuración fue exitosa. La columna Destino del evento de la regla ahora muestra HTTP (1).
Opción 2: Configurar RocketMQ
Visión general
Una vez que Alibaba Cloud Model Studio completa una tarea, reporta el evento de finalización de tarea a EventBridge. EventBridge reenvía el evento a Message Queue for RocketMQ. Su aplicación escucha la cola de mensajes, consume el mensaje, extrae el ID de la tarea completada y llama a la API de consulta de resultados una vez para recuperar la salida de la tarea.
Beneficios: A diferencia del enfoque de callback HTTP, RocketMQ garantiza la entrega de mensajes y admite reintentos en caso de fallo, ideal para escenarios que requieren alta fiabilidad de mensajes.
Facturación: Facturación de EventBridge, Facturación de RocketMQ.
Por ejemplo, el flujo de invocación asíncrona usando RocketMQ para texto a imagen es el siguiente:
| ![]() |
Procedimiento
Paso 1: Preparar una instancia de RocketMQ (omita si ya tiene una cola RocketMQ)
Paso 1: Preparar una instancia de RocketMQ (omita si ya tiene una cola RocketMQ)
-
Vaya a la consola de RocketMQ. En el panel de navegación izquierdo, seleccione Instances y haga clic en Create Instance.
Ejemplo de ID de instancia:
rmq-cn-nwy*******. -
Cree un
Topicpara la instancia e introduzca un nombre de tema personalizado. -
Cree un
Grouppara la instancia e introduzca un nombre de grupo personalizado.
Paso 2: Consultar eventos en la consola de EventBridge
Paso 2: Consultar eventos en la consola de EventBridge
-
Inicie sesión en su cuenta de Alibaba Cloud y vaya a la consola de EventBridge. Cambie a la región de Singapore. En el panel de navegación izquierdo, seleccione Event buses y haga clic en default para ingresar al bus de eventos predeterminado para servicios en la nube.
Alibaba Cloud Model Studio utiliza el bus de eventos predeterminado por defecto.
-
Haga clic en Event tracking e introduzca condiciones de consulta para encontrar eventos de finalización de tareas asíncronas de Alibaba Cloud Model Studio.
- Origen del evento: Busque y seleccione
acs.dashscope, lo que indica que el evento se origina en DashScope (el servicio de modelos subyacente de Alibaba Cloud Model Studio). - Tipo de evento: Busque y seleccione
dashscope:System:AsyncTaskFinish, lo que indica un evento de finalización de tarea asíncrona.
- Origen del evento: Busque y seleccione
- Haga clic en Details para ver todos los detalles del evento reportado.
Haga clic para ver las descripciones de los parámetros
Haga clic para ver las descripciones de los parámetros
Parámetro | Tipo | Descripción | Valor de ejemplo |
|---|---|---|---|
datacontenttype | String | Formato de datos del campo data. Solo se admite |
|
aliyunaccountid | String | ID de cuenta de Alibaba Cloud. | 123456789098**** |
aliyunpublishtime | String | Hora en que se recibió el evento. | 2020-11-19T21:04:42.179PRC |
data | Object | Contenido del evento. Un objeto JSON cuya estructura es definida por el servicio de origen. CloudEvents puede incluir información contextual proporcionada por el productor del evento en el momento de la ocurrencia, encapsulada dentro de data. | |
data[].start_time | String | Hora de inicio de la tarea asíncrona. Formato: yyyy-MM-dd HH:mm:ss | 2023-10-25 09:45:09 |
data[].end_time | String | Hora de finalización de la tarea asíncrona. Formato: yyyy-MM-dd HH:mm:ss | 2023-10-25 09:45:16 |
data[].user_api_unique_key | String | Clave única de API (los cinco elementos de la API del modelo utilizados al enviar la tarea). Formato:
|
|
data[].task_status | String | Estado de la tarea
| SUCCEEDED |
data[].task_id | String | ID de tarea | a154c328-xxxx-xxxx-xxxx-e52a9a7e9a35 |
data[].region | String | Región donde se ejecuta la tarea | ap-southeast-1 |
data[].request_id | String | ID de solicitud | 108f38f5-xxxx-xxxx-xxxx-6504db9080b3 |
data[].api_key_id | String | ID de clave de API | 1234 |
data[].contain_result | Boolean | Indica si el evento contiene detalles del resultado.
| true |
data[].output_result | JSON | Detalles del resultado. Se devuelve cuando |
|
aliyunoriginalaccountid | String | ID de cuenta original de Alibaba Cloud | 123456789098**** |
specversion | String | Versión del protocolo CloudEvents | 1.0 |
aliyuneventbusname | String | Nombre del bus de eventos que recibe el evento | default |
id | String | ID de evento: un valor único que identifica el evento. | 45ef4dewdwe1-7c35-447a-bd93-fab**** |
source | String | Origen del evento. El servicio que proporciona el evento, identificando lo que ocurrió. Normalmente incluye el tipo de origen del evento, el mecanismo de publicación o el proceso de producción. El remitente debe garantizar que la combinación | acs.dashscope |
time | String | Hora en que se generó el evento. Si se desconoce la hora exacta del evento, los productores de CloudEvents pueden establecer time en otro valor (por ejemplo, la hora actual), pero todos los productores para el mismo origen deben usar valores consistentes. | 2020-11-19T21:04:41+08:00 |
aliyunregionid | String | Región que recibe el evento. | ap-southeast-1 |
type | String | Tipo de evento. Describe el tipo de evento relacionado con el origen. Se utiliza para enrutamiento, consultas de eventos y aplicación de políticas. El formato es definido por el productor e incluye información de versión. | dashscope:System:AsyncTaskFinish |
Paso 3: Configurar reglas de reenvío de eventos
Paso 3: Configurar reglas de reenvío de eventos
- En el panel de navegación izquierdo, seleccione Event rules y haga clic en Create rule.
- Configurar información básica: Introduzca un nombre y una descripción personalizados para la regla.
-
Configurar patrón de eventos: Especifique qué eventos reenviar.
-
Origen del evento: Busque y seleccione
acs.dashscope, lo que indica que el evento se origina en Alibaba Cloud Model Studio. -
Tipo de evento: Busque y seleccione
dashscope:System:AsyncTaskFinish, lo que indica un evento de finalización de tarea asíncrona. -
Contenido del patrón: Configure condiciones de filtro para coincidir con eventos específicos. Utilice los campos de los detalles del evento consultados en el Paso 2. Para la sintaxis de patrones, consulte Patrones de eventos. Ejemplos:
- Predeterminado: Después de seleccionar el origen y el tipo de evento, el patrón toma el siguiente valor predeterminado, reenviando todos los eventos
dashscope:System:AsyncTaskFinish.
- Predeterminado: Después de seleccionar el origen y el tipo de evento, el patrón toma el siguiente valor predeterminado, reenviando todos los eventos
-
Origen del evento: Busque y seleccione
- Filtrar por campo: Reenviar solo eventos donde el campo
user_api_unique_keytermine con:paraformer-8k-v2, es decir, solo eventos para el modeloparaformer-8k-v2. El tipo de evento esdashscope:System:AsyncTaskFinish.
- Configurar destinos de eventos: Admite múltiples tipos de destino de evento, incluidas URLs de callback HTTP y colas de mensajes RocketMQ. Consulte el Paso 4 para más detalles.
Paso 4: Establecer el destino del evento en RocketMQ
Paso 4: Establecer el destino del evento en RocketMQ
Paso 5: Ver mensajes en la consola de RocketMQ
Paso 5: Ver mensajes en la consola de RocketMQ
- Para ver mensajes en línea en RocketMQ, habilite la función de experiencia de envío/recepción con un clic.
- Esta función utiliza Function Compute. Si supera la cuota de prueba gratuita, se aplicarán cargos mínimos. Consulte las Reglas de facturación de Function Compute.
Paso 6: Usar el SDK para recibir y consumir mensajes
Paso 6: Usar el SDK para recibir y consumir mensajes
- En un proyecto Maven, agregue esta dependencia:
- Código de ejemplo para consumir mensajes de MQ:
FAQ
¿Puede una regla de evento tener múltiples destinos de evento?
Sí. Una sola regla de evento puede tener múltiples destinos de evento. Si se configura, el mismo evento se entrega a cada destino.
Configuré una regla de evento pero no recibo eventos. ¿Por qué?
Asegúrese de que la región de la regla de reenvío de eventos coincida con la región del evento. Por ejemplo, una regla configurada en la región de Singapore solo reenvía eventos de Singapore, no de otras regiones. Verifique la región de EventBridge en el selector de región en la parte superior de la página de la consola.
¿La solicitud al servicio HTTP/HTTPS expira o devuelve un error?
Siga estos pasos para solucionar problemas:
- Verifique el estado del servicio HTTP/HTTPS.
- Verifique la URL configurada en el destino del evento.
-
Verifique el tipo de red configurado para el destino del evento:
- PublicNetwork: Red pública; asegúrese de que la URL sea accesible públicamente.
-
PrivateNetwork: Red VPC; si se selecciona, verifique las configuraciones de VPC, vSwitch y SecurityGroup.
- Verifique la configuración de VPC y vSwitch.
- Verifique la configuración del grupo de seguridad de red.
- Para otras configuraciones de parámetros, consulte Parámetros del destino del evento.

