Al crear una regla de notificación de eventos, puede utilizar Simple Message Queue (SMQ) para enviar mensajes de eventos desde sus recursos de Object Storage Service (OSS) a un endpoint específico. Este tema aborda los tipos de eventos, el formato de los mensajes y los pasos para crear reglas de notificación.
Contexto
Después de crear una regla de notificación de eventos, Simple Message Queue (SMQ) envía mensajes de eventos desde los recursos de OSS especificados a un endpoint, como se muestra a continuación.
Cuando una operación de OSS activa una regla de notificación de eventos coincidente, se agrega un encabezado a la respuesta. Este encabezado describe el resultado de la notificación sin afectar la respuesta original de la API. Si ninguna regla coincide, no se agrega ningún encabezado. Si una regla coincide, el encabezado se agrega independientemente de si el mensaje se envió correctamente. El formato es:
x-oss-process-status: 'ewogICAgImNvZGUiOiAiU3VjY2VzcyIsCiAgICAibWVzc2FnZSI6ICJOb3RpZmljYXRpb25TdWNjZWVkIiwKICAgICJ0eXBlIjogIkV2ZW50Tm90aWZpY2F****'
Clave: x-oss-process-status
-
Valor: Una cadena codificada en Base64. El siguiente ejemplo muestra el objeto JSON decodificado:
{ "code":"Success", // The result of the event notification attempt. Returns Success or Fail. Success indicates that OSS sent the message to the topic, but does not guarantee that the topic pushed the message to the endpoint. "message":"NotificationSucceed", // A detailed description of the operation. If it fails, this field provides the reason for the failure. "type":"EventNotification", // The operation type. For event notifications, this is always EventNotification. "version":"1.0" }
Push types describe los métodos de entrega de mensajes disponibles.
Casos de uso
Supervisar la actividad de los recursos. Cree reglas para recibir notificaciones cuando otros usuarios realicen operaciones en sus buckets.
Analizar datos y tendencias. Rastree la frecuencia operativa a lo largo del tiempo o importe mensajes de notificación a servicios como E-MapReduce (EMR) para un análisis más detallado.
Supervisar métricas operativas. Rastree métricas como consultas por segundo (QPS) para operaciones específicas en sus recursos.
Tipos de eventos
|
Grupo |
Tipo |
Descripción |
|
ObjectCreated (Crear objeto) |
ObjectCreated:PutObject |
Carga un objeto. PutObject. |
|
ObjectCreated:PostObject |
Carga un objeto mediante POST basado en formulario. PostObject. |
|
|
ObjectCreated:CopyObject |
Copia un objeto. CopyObject. |
|
|
ObjectCreated:AppendObject |
Anexa datos para cargar un objeto. AppendObject. |
|
|
ObjectCreated:InitiateMultipartUpload |
Inicia una carga multiparte. InitiateMultipartUpload. |
|
|
ObjectCreated:UploadPart |
Carga una parte en una carga multiparte. UploadPart. |
|
|
ObjectCreated:UploadPartCopy |
Copia una parte en una carga multiparte. UploadPartCopy. |
|
|
ObjectCreated:CompleteMultipartUpload |
Completa una carga multiparte. CompleteMultipartUpload. |
|
|
ObjectCreated:PutSymlink |
Crea un enlace simbólico para un objeto. PutSymlink. |
|
|
ObjectCreated:Mirror |
El objeto se crea mediante duplicación. Nota
De forma predeterminada, la duplicación de OSS activa ObjectCreated:PutObject. Para usar ObjectCreated:Mirror en su lugar, envíe un ticket. |
|
|
ObjectCreated:* |
Cualquier evento con el prefijo Nota
Este comodín abarca todos los tipos de eventos actuales y futuros bajo ObjectCreated. |
|
|
ObjectDownloaded (Descargar objeto) |
ObjectDownloaded:GetObject |
Se descarga un objeto. |
|
ObjectModified (Modificar objeto) |
ObjectModified:UpdateObjectMeta |
Los metadatos del objeto se modifican mediante UpdateObjectMeta. |
|
ObjectModified:ChangeStorageClass |
La clase de almacenamiento de un objeto cambia debido a una regla de ciclo de vida. |
|
|
ObjectModified:* |
Cualquier evento con el prefijo Nota
Este comodín abarca todos los tipos de eventos actuales y futuros bajo ObjectModified. |
|
|
ObjectRemoved (Eliminar objeto) |
ObjectRemoved:DeleteObject |
Elimina un solo objeto. DeleteObject. |
|
ObjectRemoved:DeleteObjects |
Elimina varios objetos. DeleteMultipleObjects. |
|
|
ObjectRemoved:AbortMultipartUpload |
Cancela una carga multiparte y elimina sus partes. AbortMultipartUpload. |
|
|
ObjectRemoved:* |
Cualquier evento con el prefijo Nota
Este comodín abarca todos los tipos de eventos actuales y futuros bajo ObjectRemoved. |
|
|
ObjectReplication (Replicar objeto) |
ObjectReplication:ObjectCreated |
Ocurre una operación de escritura como parte de un proceso de replicación de datos. |
|
ObjectReplication:ObjectRemoved |
Ocurre una operación de eliminación como parte de un proceso de replicación de datos. |
|
|
ObjectReplication:ObjectModified |
Ocurre una operación de sobrescritura como parte de un proceso de replicación de datos. |
|
|
ObjectReplication:* |
Cualquier evento con el prefijo Nota
Este comodín abarca todos los tipos de eventos actuales y futuros bajo ObjectReplication. |
|
|
ObjectRestore (Restaurar objeto) |
ObjectRestore:FinishRestore |
Un objeto se restaura desde el almacenamiento de archivo. Aplica únicamente a objetos Cold Archive y Deep Cold Archive. |
Formato del mensaje
Los mensajes de notificación de eventos de OSS son objetos JSON codificados en Base64. El siguiente ejemplo muestra una carga útil de mensaje decodificada.
{
"events":[
{
"eventName":"ObjectDownloaded:GetObject",
"eventSource":"acs:oss",
"eventTime":"2016-07-01T11:17:30.000Z",
"eventVersion":"1.0",
"oss":{
"bucket":{
"arn":"acs:oss:cn-shenzhen:123456789098****:event-notification-test-shenzhen",
"name":"event-notification-test-shenzhen",
"ownerIdentity":"123456789098****"
},
"object":{
"deltaSize":0,
"eTag":"0CC175B9C0F1B6A831C399E26977****",
"key":"test",
"readFrom":0,
"readTo":1,
"size":1
},
"ossSchemaVersion":"1.0",
"ruleId":"GetObjectRule"
},
"region":"cn-shenzhen",
"requestParameters":{
"sourceIPAddress":"140.205.XX.XX"
},
"responseElements":{
"requestId":"5776514AF09A9E654242****"
},
"userIdentity":{
"principalId":"123456789098****"
},
"xVars":{
"x:callback-var1":"value1",
"x:callback-var2":"value2"
}
}
]
}
La carga útil del mensaje contiene los siguientes parámetros.
|
Parámetro |
Descripción |
|
eventName |
El tipo de evento. |
|
eventSource |
El origen del evento. |
|
eventTime |
La hora en que ocurrió el evento, en UTC. |
|
eventVersion |
La versión del esquema del evento. |
|
oss |
Contiene detalles sobre el evento de OSS. |
|
bucket |
Contiene detalles sobre el bucket. |
|
arn |
El Alibaba Cloud Resource Name (ARN) del bucket. |
|
name |
El nombre del bucket. |
|
ownerIdentity |
El ID del usuario propietario del bucket. |
|
object |
Contiene detalles sobre el objeto. |
|
deltaSize |
El cambio en el tamaño del objeto, en bytes. |
|
eTag |
El ETag del objeto. Para solicitudes PutObject, este es el hash MD5. Para otras operaciones, es un identificador único (no un hash MD5). Utilice el ETag para verificar la integridad del contenido del objeto. |
|
key |
El nombre del objeto. |
|
readFrom |
La posición inicial de byte para una operación de lectura. |
|
readTo |
La posición final de byte para una operación de lectura. |
|
size |
El tamaño total del objeto en bytes. |
|
ossSchemaVersion |
La versión del esquema específico de OSS. |
|
ruleId |
El ID de la regla que activó el evento. |
|
region |
La región donde se encuentra el bucket. |
|
requestParameters |
Parámetros de la solicitud original. |
|
sourceIPAddress |
La dirección IP de origen de la solicitud. |
|
responseElements |
Elementos de la respuesta. |
|
requestId |
El ID único de la solicitud. |
|
userIdentity |
Información sobre el usuario que realizó la solicitud. |
|
principalId |
El User ID (UID) del solicitante. |
|
xVars |
Parámetros personalizados de una configuración de callback de OSS. |
Notas de uso
Las reglas de notificación de eventos tardan aproximadamente 10 minutos en surtir efecto después de su creación.
Se crea un tema para cada nueva regla, lo cual puede generar cargos según la guía Billing.
Las reglas de notificación de eventos se pueden crear y eliminar, pero no modificar.
(Opcional) Paso 1: Crear una cola
Cree una cola si planea usarla como destino de notificación. También puede agregar suscripciones después de crear la regla de eventos.
Inicie sesión en la consola de Simple Message Queue (anteriormente MNS).
En el panel de navegación izquierdo, seleccione .
En la barra de navegación superior, seleccione una región.
En la página Queues, haga clic en Create Queue.
-
En el panel Create Queue, configure los siguientes parámetros y haga clic en OK:
Name: el nombre de la cola.
Maximum Message Length: la longitud máxima del mensaje que se envía a la cola.
Long Polling Period: la duración máxima durante la cual se retienen las solicitudes de long polling después de llamar a la operación ReceiveMessage.
Visibility Timeout Period: la duración durante la cual un mensaje permanece en estado Inactive después de recibirse desde la cola.
Message Retention Period: la duración máxima durante la cual existe un mensaje en la cola. Después del período de retención especificado, el mensaje se elimina independientemente de si fue recibido.
Message Delay Period: el período después del cual se consumen todos los mensajes enviados a la cola.
Enable Logging Feature: especifica si se habilita la función de registro.
Una vez creada la cola, esta aparece en la página Queues.
(Opcional) Paso 2: Crear un bucket
Si el bucket deseado ya existe, puede omitir este paso.
Inicie sesión en la consola de OSS.
En el panel de navegación izquierdo, haga clic en Buckets.
En la página Buckets, haga clic en Create bucket.
-
En el panel Create bucket, configure los parámetros del bucket y luego haga clic en OK.
Bucket name: Introduzca event-notification-test.
Region: Seleccione la misma región que su cola.
Block public access: Seleccione Off.
-
ACL: Seleccione Public Read/Write.
NotaMantenga los valores predeterminados para las demás configuraciones.
Paso 3: Crear una regla personalizada
Al crear una regla, Simple Message Queue (SMQ) crea automáticamente un tema y una suscripción para el endpoint especificado. Puede gestionarlos en la consola de SMQ.
Inicie sesión en la consola de Simple Message Queue (anteriormente MNS).
En el panel de navegación izquierdo, haga clic en Event Notifications.
En la barra de navegación superior, seleccione una región.
En la página Event Notifications, haga clic en la pestaña OSS y luego en Create Rule.
-
En el panel Create rule - OSS, configure los siguientes ajustes y luego haga clic en OK.
Instance Name: Introduzca un nombre para la regla.
Event Type: Seleccione uno o más tipos de eventos.
-
Match rule: Configure la regla de coincidencia.
NotaUna regla de coincidencia puede ser un nombre completo, un prefijo, un sufijo o una combinación de prefijo y sufijo. Las diferentes reglas no pueden tener definiciones de recursos superpuestas. Un recurso de OSS se especifica en el formato
bucket/object. Por ejemplo, en el recursomovie/hello.avi,moviees el bucket yhello.avies el objeto.Nombre completo: movie/hello.avi.
-
Prefijo:
movie/hello: Coincide con todos los objetos en el bucket
movieque tienen el prefijohello.movie/: Coincide con todos los objetos en el bucket
movie.mov: Coincide con todos los objetos en cualquier bucket cuyo nombre tenga el prefijo
mov.
Sufijo: .avi: Coincide con todos los objetos en cualquier bucket que tengan el sufijo
.avi.Prefijo y Sufijo: Prefijo movie/ y sufijo .avi: Coincide con todos los objetos en el bucket
movieque tengan el sufijo.avi.
Destination: Seleccione Queue e introduzca el nombre de la cola que creó en Step 1.
Paso 4: Cargar un objeto
Inicie sesión en la consola de OSS.
En el panel de navegación izquierdo, haga clic en Buckets.
En la página Buckets, haga clic en el nombre del bucket de destino.
Seleccione Object management > Object list y luego haga clic en Upload object.
-
En el panel Upload object, especifique el directorio de carga y el ACL del objeto, y luego haga clic en Upload object. Upload objects by using the OSS console.
La columna Status muestra "Uploaded".
Paso 5: Recibir mensajes
Inicie sesión en la consola de Simple Message Queue (anteriormente MNS).
En el panel de navegación izquierdo, seleccione .
En la barra de navegación superior, seleccione una región.
En la página Queues, busque la cola de destino y, en la columna Action, seleccione More > Send and receive messages.
-
En la página Send and receive messages, en la sección Receive messages, haga clic en Receive message.
La lista de mensajes de la cola se muestra en la sección Receive messages.
En la lista de mensajes, busque el mensaje de destino y luego haga clic en Details en la columna Actions para ver su contenido en el cuadro de diálogo Message details.