Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Amazon CloudWatch Events para Amazon EBS
Amazon EBS emite notificaciones basadas en Amazon CloudWatch Events cuando se producen una serie de cambios de estado de volumen, instantánea y cifrado. Con Eventos de CloudWatch, puede establecer reglas que activen acciones programáticas como respuesta a un cambio en el estado de la clave de cifrado, volumen o instantánea. Por ejemplo, cuando se crea una instantánea, puede activar una función de AWS Lambda para compartir la instantánea completada con otra cuenta o copiarla en otra región con fines de recuperación de desastres.
Los eventos en CloudWatch se representan como objetos JSON. Los campos que son únicos del evento se encuentran en la sección "detail" del objeto JSON. El campo "event" contiene el nombre del evento. El campo "result" contiene el estado completad de la acción que desencadenó el evento. Para obtener más información, consulte Patrones de evento en Eventos de CloudWatch en la Guía del usuario de Amazon CloudWatch Events.
Para obtener más información, consulte Uso de eventos en la Guía del usuario de Amazon CloudWatch.
Contenido
Eventos de volumen de EBS
Amazon EBS envía eventos a Eventos de CloudWatch cuando se producen los eventos de volumen siguientes.
Eventos
Crear volumen (CreateVolume)
El evento createVolume
se envía a la cuenta de AWS cuando se completa una acción para crear un volumen.
Sin embargo, no se guarda, registra o archiva. Este evento tiene un resultado de available
o failed
. La creación producirá un error si se ha proporcionado una clave de KMS no válida,
tal como se muestra en los siguientes ejemplos.
Datos de evento
La lista siguiente es un ejemplo de un objeto JSON emitido por EBS para un evento
createVolume
correcto.
{
"version": "0",
"id": "01234567
-0123
-0123
-0123
-012345678901
",
"detail-type": "EBS Volume Notification",
"source": "aws.ec2",
"account": "012345678901
",
"time": "yyyy
-mm
-dd
Thh
:mm
:ss
Z",
"region": "us-east-1
",
"resources": [
"arn:aws:ec2:us-east-1
:012345678901
:volume/vol-01234567
"
],
"detail": {
"result": "available",
"cause": "",
"event": "createVolume",
"request-id": "01234567
-0123
-0123
-0123
-0123456789ab
"
}
}
La lista siguiente es un ejemplo de un objeto JSON emitido por EBS después de que
un evento createVolume
diera error. La causa del error fue una clave KMS deshabilitada.
{
"version": "0",
"id": "01234567
-0123
-0123
-0123
-0123456789ab
",
"detail-type": "EBS Volume Notification",
"source": "aws.ec2",
"account": "012345678901
",
"time": "yyyy
-mm
-dd
Thh
:mm
:ss
Z",
"region": "sa-east-1
",
"resources": [
"arn:aws:ec2:sa-east-1
:0123456789ab
:volume/vol-01234567
",
],
"detail": {
"event": "createVolume",
"result": "failed",
"cause": "arn:aws:kms:sa-east-1
:0123456789ab
:key/01234567
-0123
-0123
-0123
-0123456789ab
is disabled.",
"request-id": "01234567
-0123
-0123
-0123
-0123456789ab
",
}
}
A continuación se ofrece un ejemplo de un objeto JSON emitido por EBS después de que
un evento createVolume
diera error. La causa del error fue una importación pendiente de clave KMS.
{
"version": "0",
"id": "01234567
-0123
-0123
-0123
-0123456789ab
",
"detail-type": "EBS Volume Notification",
"source": "aws.ec2",
"account": "012345678901
",
"time": "yyyy
-mm
-dd
Thh
:mm
:ss
Z",
"region": "sa-east-1
",
"resources": [
"arn:aws:ec2:sa-east-1
:0123456789ab
:volume/vol-01234567
",
],
"detail": {
"event": "createVolume",
"result": "failed",
"cause": "arn:aws:kms:sa-east-1
:0123456789ab
:key/01234567
-0123
-0123
-0123
-0123456789ab
is pending import.",
"request-id": "01234567
-0123
-0123
-0123
-0123456789ab
",
}
}
Eliminar volumen (deleteVolume)
El evento deleteVolume
se envía a la cuenta de AWS cuando se completa una acción para eliminar un volumen.
Sin embargo, no se guarda, registra o archiva. Este evento da como resultado deleted
. Si la eliminación no se completa, el evento no se enviará nunca.
Datos de evento
La lista siguiente es un ejemplo de un objeto JSON emitido por EBS para un evento
deleteVolume
correcto.
{
"version": "0",
"id": "01234567
-0123
-0123
-0123
-012345678901
",
"detail-type": "EBS Volume Notification",
"source": "aws.ec2",
"account": "012345678901
",
"time": "yyyy
-mm
-dd
Thh
:mm
:ss
Z",
"region": "us-east-1
",
"resources": [
"arn:aws:ec2:us-east-1
:012345678901
:volume/vol-01234567
"
],
"detail": {
"result": "deleted",
"cause": "",
"event": "deleteVolume",
"request-id": "01234567
-0123
-0123
-0123
-0123456789ab
"
}
}
Asociar o volver a asociar volumen (attachVolume, reattachVolume)
El evento attachVolume
o reattachVolume
se envía a la cuenta de AWS cuando no se logra asociar o volver a asociar un volumen
a una instancia. Sin embargo, no se guarda, registra o archiva. Si utiliza una clave
de KMS para cifrar un volumen de EBS y la clave deja de ser válida, EBS emitirá un
evento si dicha clave se usa posteriormente para adjuntar o volver a adjuntar a una
instancia, tal como se muestra en los ejemplos siguientes.
Datos de evento
La lista siguiente es un ejemplo de un objeto JSON emitido por EBS después de que
un evento attachVolume
diera error. La causa del error fue una eliminación pendiente de clave KMS.
AWS puede intentar volver a adjuntarse a un volumen después del mantenimiento rutinario del servidor.
{
"version": "0",
"id": "01234567
-0123
-0123
-0123
-0123456789ab
",
"detail-type": "EBS Volume Notification",
"source": "aws.ec2",
"account": "012345678901
",
"time": "yyyy
-mm
-dd
Thh
:mm
:ss
Z",
"region": "us-east-1
",
"resources": [
"arn:aws:ec2:us-east-1
:0123456789ab
:volume/vol-01234567
",
"arn:aws:kms:us-east-1
:0123456789ab
:key/01234567
-0123
-0123
-0123
-0123456789ab
"
],
"detail": {
"event": "attachVolume",
"result": "failed",
"cause": "arn:aws:kms:us-east-1
:0123456789ab
:key/01234567
-0123
-0123
-0123
-0123456789ab
is pending deletion.",
"request-id": ""
}
}
La lista siguiente es un ejemplo de un objeto JSON emitido por EBS después de que
un evento reattachVolume
diera error. La causa del error fue una eliminación pendiente de clave KMS.
{
"version": "0",
"id": "01234567
-0123
-0123
-0123
-0123456789ab
",
"detail-type": "EBS Volume Notification",
"source": "aws.ec2",
"account": "012345678901
",
"time": "yyyy
-mm
-dd
Thh
:mm
:ss
Z",
"region": "us-east-1
",
"resources": [
"arn:aws:ec2:us-east-1
:0123456789ab
:volume/vol-01234567
",
"arn:aws:kms:us-east-1
:0123456789ab
:key/01234567
-0123
-0123
-0123
-0123456789ab
"
],
"detail": {
"event": "reattachVolume",
"result": "failed",
"cause": "arn:aws:kms:us-east-1
:0123456789ab
:key/01234567
-0123
-0123
-0123
-0123456789ab
is pending deletion.",
"request-id": ""
}
}
Eventos de instantánea de EBS
Amazon EBS envía eventos a Eventos de CloudWatch cuando se producen los eventos de volumen siguientes.
Crear instantánea (createSnapshot)
El evento createSnapshot
se envía a la cuenta de AWS cuando se completa una acción para crear una instantánea.
Sin embargo, no se guarda, registra o archiva. Este evento tiene un resultado de succeeded
o failed
.
Datos de evento
La lista siguiente es un ejemplo de un objeto JSON emitido por EBS para un evento
createSnapshot
correcto. En la sección detail
, el campo source
contiene el ARN del volumen de origen. Los campos startTime
y endTime
indican el inicio y la finalización de la creación de la instantánea.
{
"version": "0",
"id": "01234567
-0123
-0123
-0123
-012345678901
",
"detail-type": "EBS Snapshot Notification",
"source": "aws.ec2",
"account": "012345678901
",
"time": "yyyy
-mm
-dd
Thh
:mm
:ss
Z",
"region": "us-east-1
",
"resources": [
"arn:aws:ec2:us-west-2
::snapshot/snap-01234567
"
],
"detail": {
"event": "createSnapshot",
"result": "succeeded",
"cause": "",
"request-id": "",
"snapshot_id": "arn:aws:ec2:us-west-2
::snapshot/snap-01234567
",
"source": "arn:aws:ec2:us-west-2
::volume/vol-01234567
",
"startTime": "yyyy
-mm
-dd
Thh
:mm
:ss
Z",
"endTime": "yyyy
-mm
-dd
Thh
:mm
:ss
Z" }
}
Crear instantáneas (createSnapshots)
El evento createSnapshots
se envía a la cuenta de AWS cuando se completa una acción para crear una instantánea
de varios volúmenes. Este evento tiene un resultado de succeeded
o failed
.
Datos de evento
La lista siguiente es un ejemplo de un objeto JSON emitido por EBS para un evento
createSnapshots
correcto. En la sección detail
, el campo source
contiene los ARN de los volúmenes de origen del conjunto de instantáneas de varios
volúmenes. Los campos startTime
y endTime
indican el inicio y la finalización de la creación de la instantánea.
{
"version": "0",
"id": "01234567-0123-0123-0123-012345678901
",
"detail-type": "EBS Multi-Volume Snapshots Completion Status",
"source": "aws.ec2",
"account": "012345678901
",
"time": "yyyy
-mm
-dd
Thh
:mm
:ss
Z",
"region": "us-east-1
",
"resources": [
"arn:aws:ec2::us-east-1
:snapshot/snap-01234567
",
"arn:aws:ec2::us-east-1
:snapshot/snap-012345678
"
],
"detail": {
"event": "createSnapshots",
"result": "succeeded",
"cause": "",
"request-id": "",
"startTime": "yyyy
-mm
-dd
Thh
:mm
:ss
Z",
"endTime": "yyyy
-mm
-dd
Thh
:mm
:ss
Z",
"snapshots": [
{
"snapshot_id": "arn:aws:ec2::us-east-1
:snapshot/snap-01234567
",
"source": "arn:aws:ec2::us-east-1
:volume/vol-01234567
",
"status": "completed"
},
{
"snapshot_id": "arn:aws:ec2::us-east-1
:snapshot/snap-012345678
",
"source": "arn:aws:ec2::us-east-1
:volume/vol-012345678
",
"status": "completed"
}
]
}
}
La lista siguiente es un ejemplo de un objeto JSON emitido por EBS después de que
un evento createSnapshots
diera error. La causa del error fue que no se pudieron completar una o varias instantáneas.
Los valores de snapshot_id
son los ARN de las instantáneas erróneas. startTime
y endTime
representan la hora de inicio y de fin de la acción create-snapshots.
{
"version": "0",
"id": "01234567-0123-0123-0123-012345678901
",
"detail-type": "EBS Multi-Volume Snapshots Completion Status",
"source": "aws.ec2",
"account": "012345678901
",
"time": "yyyy
-mm
-dd
Thh
:mm
:ss
Z",
"region": "us-east-1
",
"resources": [
"arn:aws:ec2::us-east-1
:snapshot/snap-01234567
",
"arn:aws:ec2::us-east-1
:snapshot/snap-012345678
"
],
"detail": {
"event": "createSnapshots",
"result": "failed",
"cause": "Snapshot snap-01234567
is in status deleted",
"request-id": "",
"startTime": "yyyy
-mm
-dd
Thh
:mm
:ss
Z",
"endTime": "yyyy
-mm
-dd
Thh
:mm
:ss
Z",
"snapshots": [
{
"snapshot_id": "arn:aws:ec2::us-east-1
:snapshot/snap-01234567
",
"source": "arn:aws:ec2::us-east-1
:volume/vol-01234567
",
"status": "error"
},
{
"snapshot_id": "arn:aws:ec2::us-east-1
:snapshot/snap-012345678
",
"source": "arn:aws:ec2::us-east-1
:volume/vol-012345678
",
"status": "deleted"
}
]
}
}
Copiar instantánea (copySnapshot)
El evento copySnapshot
se envía a la cuenta de AWS cuando se completa una acción de copia de una instantánea.
Sin embargo, no se guarda, registra o archiva. Este evento tiene un resultado de succeeded
o failed
.
Datos de evento
La lista siguiente es un ejemplo de un objeto JSON emitido por EBS tras un evento
copySnapshot
correcto. El valor de snapshot_id
es el ARN de la instantánea recién creada. En la sección detail
, el valor de source
es el ARN de la instantánea de origen. startTime
y endTime
representan la hora de inicio y de fin de la acción copy-snapshot.
{
"version": "0",
"id": "01234567
-0123
-0123
-0123
-012345678901
",
"detail-type": "EBS Snapshot Notification",
"source": "aws.ec2",
"account": "123456789012
",
"time": "yyyy
-mm
-dd
Thh
:mm
:ss
Z",
"region": "us-east-1
",
"resources": [
"arn:aws:ec2:us-west-2
::snapshot/snap-01234567
"
],
"detail": {
"event": "copySnapshot",
"result": "succeeded",
"cause": "",
"request-id": "",
"snapshot_id": "arn:aws:ec2:us-west-2
::snapshot/snap-01234567
",
"source": "arn:aws:ec2:eu-west-1
::snapshot/snap-76543210
",
"startTime": "yyyy
-mm
-dd
Thh
:mm
:ss
Z",
"endTime": "yyyy
-mm
-dd
Thh
:mm
:ss
Z",
"Incremental": "True"
}
}
La lista siguiente es un ejemplo de un objeto JSON emitido por EBS después de que
un evento copySnapshot
diera error. La causa del error fue un ID de instantánea de origen no válido. El
valor de snapshot_id
es el ARN de la instantánea con errores. En la sección detail
, el valor de source
es el ARN de la instantánea de origen. startTime
y endTime
representan la hora de inicio y de fin de la acción copy-snapshot.
{
"version": "0",
"id": "01234567
-0123
-0123
-0123
-012345678901
",
"detail-type": "EBS Snapshot Notification",
"source": "aws.ec2",
"account": "123456789012
",
"time": "yyyy
-mm
-dd
Thh
:mm
:ss
Z",
"region": "us-east-1
",
"resources": [
"arn:aws:ec2:us-west-2
::snapshot/snap-01234567
"
],
"detail": {
"event": "copySnapshot",
"result": "failed",
"cause": "Source snapshot ID is not valid",
"request-id": "",
"snapshot_id": "arn:aws:ec2:us-west-2
::snapshot/snap-01234567
",
"source": "arn:aws:ec2:eu-west-1
::snapshot/snap-76543210
",
"startTime": "yyyy
-mm
-dd
Thh
:mm
:ss
Z",
"endTime": "yyyy
-mm
-dd
Thh
:mm
:ss
Z"
}
}
Compartir instantánea (shareSnaphot)
El evento shareSnapshot
se envía a la cuenta de AWS cuando otra cuenta comparte una instantánea con ella
Sin embargo, no se guarda, registra o archiva. El resultado siempre es succeeded
.
Datos de evento
A continuación se muestra un ejemplo de un objeto JSON emitido por EBS tras la finalización
de un evento shareSnapshot
. En la sección detail
, el valor de source
es el número de cuenta de AWS del usuario que compartió la instantánea con usted.
startTime
y endTime
representan la hora de inicio y de fin de la acción share-snapshot. El evento shareSnapshot
solo se activa cuando se comparte una instantánea privada con otro usuario. Si se
comparte una instantánea pública, no se desencadena el evento.
{
"version": "0",
"id": "01234567
-01234
-0123
-0123
-012345678901
",
"detail-type": "EBS Snapshot Notification",
"source": "aws.ec2",
"account": "012345678901
",
"time": "yyyy
-mm
-dd
Thh
:mm
:ss
Z",
"region": "us-east-1
",
"resources": [
"arn:aws:ec2:us-west-2
::snapshot/snap-01234567
"
],
"detail": {
"event": "shareSnapshot",
"result": "succeeded",
"cause": "",
"request-id": "",
"snapshot_id": "arn:aws:ec2:us-west-2
::snapshot/snap-01234567
",
"source": 012345678901
,
"startTime": "yyyy
-mm
-dd
Thh
:mm
:ss
Z",
"endTime": "yyyy
-mm
-dd
Thh
:mm
:ss
Z"
}
}
Eventos de modificación del volumen de EBS
Amazon EBS envía eventos modifyVolume
a Eventos de CloudWatch cuando se modifica un volumen. Sin embargo, no se guarda,
registra o archiva.
{
"version": "0",
"id": "01234567
-0123
-0123
-0123
-012345678901
",
"detail-type": "EBS Volume Notification",
"source": "aws.ec2",
"account": "012345678901
",
"time": "yyyy
-mm
-dd
Thh
:mm
:ss
Z",
"region": "us-east-1
",
"resources": [
"arn:aws:ec2:us-east-1
:012345678901
:volume/vol-03a55cf56513fa1b6
"
],
"detail": {
"result": "optimizing
",
"cause": "",
"event": "modifyVolume",
"request-id": "01234567
-0123
-0123
-0123
-0123456789ab
"
}
}
Eventos de restauración rápida de instantáneas de EBS
Amazon EBS envía eventos a Eventos de CloudWatch cuando cambia el estado de restauración rápida de una instantánea. Los eventos se emiten en la medida de lo posible.
El siguiente es un ejemplo de los datos de este evento.
{
"version": "0",
"id": "01234567
-0123
-0123
-0123
-012345678901
",
"detail-type": "EBS Fast Snapshot Restore State-change Notification",
"source": "aws.ec2",
"account": "123456789012
",
"time": "yyyy
-mm
-dd
Thh
:mm
:ss
Z",
"region": "us-east-1
",
"resources": [
"arn:aws:ec2:us-east-1
::snapshot/snap-03a55cf56513fa1b6
"
],
"detail": {
"snapshot-id": "snap-1234567890abcdef0
",
"state": "optimizing
",
"zone": "us-east-1a
",
"message": "Client.UserInitiated - Lifecycle state transition
",
}
}
Los valores posibles de state
son enabling
, optimizing
, enabled
, disabling
y disabled
.
Los valores posibles para message
son los siguientes:
Client.InvalidSnapshot.InvalidState - The requested snapshot transitioned to an invalid state (Error)
-
Falló una solicitud para habilitar la restauración rápida de instantáneas y el estado pasó a
disabling
odisabled
. La restauración rápida de instantáneas no se puede habilitar para esta instantánea. Client.UserInitiated
-
El estado cambió satisfactoriamente a
enabling
odisabling
. Client.UserInitiated - Lifecycle state transition
-
El estado cambió satisfactoriamente a
optimizing
,enabled
odisabled
. Server.InsufficientCapacity - There was insufficient capacity available to satisfy the request
-
Falló una solicitud para habilitar la restauración rápida de instantáneas por capacidad insuficiente y el estado pasó a
disabling
odisabled
. Espere e inténtelo de nuevo. Server.InternalError - An internal error caused the operation to fail
-
Falló una solicitud para habilitar la restauración rápida de instantáneas por un error interno y el estado pasó a
disabling
odisabled
. Espere e inténtelo de nuevo. Client.InvalidSnapshot.InvalidState - The requested snapshot was deleted or access permissions were revoked
-
El estado de restauración rápida de la instantánea ha pasado a
disabling
odisabled
porque el propietario de la instantánea eliminó o dejó de compartir la instantánea. La restauración rápida de instantáneas no se puede habilitar para una instantánea que se ha eliminado o que ya no se comparte con usted.
Utilizar AWS Lambda para controlar eventos de CloudWatch
Puede usar Amazon EBS y Eventos de CloudWatch para automatizar el flujo de trabajo de copia de seguridad de datos. Esto requiere que cree una política de IAM, una función de AWS Lambda para controlar el evento y una regla de Amazon CloudWatch Events que coincida con los eventos entrantes y los enrute a la función Lambda.
En el procedimiento siguiente se usa el evento createSnapshot
para copiar automáticamente una instantánea completada en otra región para la recuperación
de desastres.
Para copiar una instantánea completada en otra región
-
Cree una política de IAM, como la que se muestra en el ejemplo siguiente, para proporcionar permisos para utilizar la acción
CopySnapshot
y escribir en el registro de Eventos de CloudWatch. Asigne la política al usuario de IAM que controlará el evento de CloudWatch.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:*" }, { "Effect": "Allow", "Action": [ "ec2:CopySnapshot" ], "Resource": "*" } ] }
-
Defina una función en Lambda que esté disponible desde la consola de CloudWatch. CloudWatch llama a la función de muestra de Lambda de ejemplo que se muestra a continuación, escrita en Node.js, cuando Amazon EBS desencadena un evento
createSnapshot
coincidente (lo que significa que la instantánea se completó). Cuando se le llama, la función copia la instantánea deus-east-2
enus-east-1
.// Sample Lambda function to copy an EBS snapshot to a different region var AWS = require('aws-sdk'); var ec2 = new AWS.EC2(); // define variables var destinationRegion = '
us-east-1
'; var sourceRegion = 'us-east-2
'; console.log ('Loading function'); //main function exports.handler = (event, context, callback) => { // Get the EBS snapshot ID from the CloudWatch event details var snapshotArn = event.detail.snapshot_id.split('/'); const snapshotId = snapshotArn[1]; const description = `Snapshot copy from ${snapshotId} in ${sourceRegion}.`; console.log ("snapshotId:", snapshotId); // Load EC2 class and update the configuration to use destination Region to initiate the snapshot. AWS.config.update({region: destinationRegion}); var ec2 = new AWS.EC2(); // Prepare variables for ec2.modifySnapshotAttribute call const copySnapshotParams = { Description: description, DestinationRegion: destinationRegion, SourceRegion: sourceRegion, SourceSnapshotId: snapshotId }; // Execute the copy snapshot and log any errors ec2.copySnapshot(copySnapshotParams, (err, data) => { if (err) { const errorMessage = `Error copying snapshot ${snapshotId} to Region ${destinationRegion}.`; console.log(errorMessage); console.log(err); callback(errorMessage); } else { const successMessage = `Successfully started copy of snapshot ${snapshotId} to Region ${destinationRegion}.`; console.log(successMessage); console.log(data); callback(null, successMessage); } }); };Para asegurarse de que la función de Lambda está disponible en la consola de CloudWatch, créela en la región en la que se producirá el evento de CloudWatch. Para obtener más información, consulte AWS Lambda Developer Guide.
-
Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/
. -
Elija Events (Eventos), Create rule (Crear regla), Select event source (Seleccionar origen de evento) y Amazon EBS Snapshots (Instantáneas).
-
En Specific Event(s) (Eventos específicos), elija createSnapshot y en Specific Result(s) (Resultados específicos), elija succeeded (éxito).
-
En Rule target (Destino de regla), busque y elija la función de muestra que ha creado previamente.
-
Elija Target (Destino), Add Target (Añadir destino).
-
En Lambda function (Función Lambda), seleccione la función Lambda que ha creado previamente y elija Configure details (Configurar detalles).
-
En la página Configure rule details (Configurar detalles de regla), escriba valores en Name (Nombre) y Description (Descripción). Seleccione la casilla de verificación State para activar la función (estableciéndola en Enabled).
-
Elija Create rule.
La regla debería aparecer ahora en la pestaña Rules (Reglas). En el ejemplo mostrado, el evento que ha configurado debería activarlo EBS la próxima vez que copie una instantánea.