

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.

# Reproducción de mensajes de Amazon SNS para los suscriptores de temas FIFO
<a name="message-archiving-and-replay-subscriber"></a>

La reproducción de Amazon SNS permite a los suscriptores de un tema recuperar y volver a entregar los mensajes archivados del almacén de datos del tema a un punto de conexión suscrito.
+ Los mensajes se pueden reproducir inmediatamente después de crear la suscripción.
+ Un mensaje reproducido conserva el mismo contenido, `MessageId` y `Timestamp` que el original.
+ El mensaje incluye un atributo `Replayed` para indicar que se trata de un mensaje reproducido.
+ Para reproducir solo mensajes específicos, aplique una política de filtrado a la suscripción.

Para obtener más información sobre el filtrado de mensajes, consulte [Filtrar los mensajes reproducidos](#message-archiving-and-replay-subscription-filtering).

## Cree una política de reproducción de mensajes mediante el Consola de administración de AWS
<a name="message-archiving-and-replay-replaying-console"></a>

Utilice esta opción para crear una nueva política de reproducción con la Consola de administración de AWS.

1. Inicie sesión en la [consola de Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Elija una suscripción a un tema o cree uno nuevo. Para obtener más información acerca de la creación de suscripciones, consulte [Creación de una suscripción a un tema de Amazon SNS](sns-create-subscribe-endpoint-to-topic.md).

1. Para iniciar la reproducción del mensaje, vaya al menú desplegable **Reproducción** y elija **Iniciar reproducción**.

1. Desde el modal de **periodo de reproducción**, seleccione las siguientes opciones:

   1. **Elija la fecha y la hora de inicio de la reproducción**: elija la **fecha** (YYYY/MM/DDformato) y la **hora** (formato hh:mm:ss de 24 horas) a partir de las que quiere empezar a reproducir los mensajes archivados. La hora de inicio debe ser posterior al inicio de la hora aproximada de archivo.

   1. **(Opcional) Elige la fecha y hora de finalización de la reproducción: elige la **fecha** (YYYY/MM/DDformato) y la hora** **(formato hh:mm:ss de 24 horas) en las que quieres dejar de reproducir los mensajes archivados.**

   1. Elija **Iniciar la reproducción**.

1. (Opcional) Para **detener** la reproducción de un mensaje, vaya a la página de **Detalles de la suscripción** y elija **Detener la reproducción** en el menú desplegable de **Reproducción**.

1. (Opcional) Para **supervisar** las métricas de reproducción de mensajes desde este flujo de trabajo mediante, consulte. CloudWatch [Supervisa las métricas de reproducción de mensajes con Amazon CloudWatch](#message-archiving-and-replay-subscription-cloudwatch)

**Para ver y editar una política de reproducción de mensajes**

Desde la página de **detalles de suscripción**, podrá realizar las acciones siguientes:
+ Para **ver** el estado de la reproducción del mensaje, el campo de **estado de la reproducción** muestra los siguientes valores:
  + **Completada**: la reproducción ha vuelto a entregar correctamente todos los mensajes y ahora muestra los mensajes recién publicados.
  + **En curso**: la reproducción está reproduciendo actualmente los mensajes seleccionados.
  + **Con error**: la reproducción no se ha podido completar.
  + **Pendiente**: el estado predeterminado cuando se inicia la reproducción.
+ (Opcional) Para **modificar** una política de reproducción de un mensaje, vaya a la página de **Detalles de la suscripción** y elija **Iniciar la reproducción** en el menú desplegable de **Reproducción**. Al iniciar una repetición, se sustituirá la reproducción existente.

## Agregar una política de reproducción a la suscripción mediante la API
<a name="message-archiving-and-replay-subscription-api"></a>

Para reproducir los mensajes archivados, utilice el atributo `ReplayPolicy`. `ReplayPolicy` se puede usar con las acciones de la API `Subscribe` y `SetSubscriptionAttributes`. Esta política tiene los siguientes valores:
+ **`StartingPoint`** (obligatorio): indica desde dónde empezar a reproducir los mensajes.
+ **`EndingPoint`** (opcional): indica cuándo dejar de reproducir los mensajes. Si `EndingPoint` se omite, la reproducción continuará hasta que se ajuste a la hora actual.
+ **`PointType`** (obligatorio): establece el tipo de puntos de inicio y final. Actualmente, el valor admitido `PointType` es `Timestamp`.

Por ejemplo, para recuperarse de un error posterior y volver a enviar todos los mensajes durante un periodo de dos horas el 1 de octubre de 2023, use la acción de la API `SetSubscriptionAttributes` para configurar una `ReplayPolicy` de la siguiente manera:

```
{
  "PointType":"Timestamp", 
  "StartingPoint":"2023-10-01T10:00:00.000Z", 
  "EndingPoint":"2023-10-01T12:00:00.000Z"
}
```

Para reproducir todos los mensajes enviados al tema a partir del 1 de octubre de 2023 y seguir recibiendo todos los mensajes recién publicados sobre el tema, use la acción de la API `SetSubscriptionAttributes` para configurar una `ReplayPolicy` en la suscripción de la siguiente manera:

```
{
  "PointType":"Timestamp",
  "StartingPoint":"2023-10-01T00:00:00.000Z"
}
```

Para comprobar que un mensaje se ha reproducido, se agrega el atributo booleano `Replayed` a cada mensaje reproducido.

## Agregar una política de reproducción a la suscripción mediante el SDK
<a name="message-replay-sdk"></a>

Para usar un AWS SDK, debe configurarlo con sus credenciales. Para obtener más información, consulte [`credentials`Archivos `config` y compartidos](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) en la *Guía de referencia de herramientas AWS SDKs y herramientas*.

El siguiente ejemplo de código muestra cómo configurar `ReplayPolicy` en una suscripción para volver a entregar mensajes del archivo del tema FIFO de Amazon SNS durante un periodo de 2 horas el 1 de octubre de 2023.

```
// Specify the ARN of the Amazon SNS subscription to initiate the ReplayPolicy on.
String subscriptionArn =
    "arn:aws:sns:us-east-2:123456789012:MyArchiveTopic.fifo:1d2a3e9d-7f2f-447c-88ae-03f1c68294da";

// Set the ReplayPolicy to replay messages from the topic's archive 
// for a 2 hour time period on October 1st 2023 between 10am and 12pm UTC.
String replayPolicy =
    "{\"PointType\":\"Timestamp\",\"StartingPoint\":\"2023-10-01T10:00:00.000Z\",\"EndingPoint\":\"2023-10-01T12:00:00.000Z\"}";

// Set the ArchivePolicy for the Amazon SNS topic
SetSubscriptionAttributesRequest request = new SetSubscriptionAttributesRequest()
    .withSubscriptionArn(subscriptionArn)
    .withAttributeName("ReplayPolicy")
    .withAttributeValue(replayPolicy);
sns.setSubscriptionAttributes(request);
```

## Entendiendo el EndingPoint
<a name="message-archiving-and-replay-understanding-endpoint"></a>

Cuando se aplica un atributo `ReplayPolicy` a una suscripción de Amazon SNS, el valor `EndingPoint` es opcional. Si no se proporciona `EndingPoint`, la reproducción empezará a partir del `StartingPoint` especificado y continuará hasta alcanzar la hora actual, incluido el procesamiento de los mensajes recién publicados. Una vez actualizada, la suscripción funcionará como una suscripción normal y recibirá los mensajes nuevos a medida que se publiquen.

Si se especifica un `EndingPoint`, el servicio reproducirá los mensajes desde el `StartingPoint` hasta el `EndingPoint` y, a continuación, se detendrá. **Esta acción pone en pausa la suscripción.** Mientras la suscripción esté en pausa, los mensajes recién publicados no se entregarán al punto de conexión suscrito.

Para reanudar la entrega de mensajes, aplique un nuevo atributo `ReplayPolicy` sin proporcionar un `EndingPoint` y establezca el `StartingPoint` en el punto en el tiempo en el que desee seguir recibiendo mensajes. Por ejemplo, para reanudar una suscripción desde el momento en que finalizó una reproducción anterior, establezca el nuevo `StartingPoint` en el `EndingPoint` proporcionado anteriormente.

## Filtrar los mensajes reproducidos
<a name="message-archiving-and-replay-subscription-filtering"></a>

El filtrado de mensajes de Amazon SNS le permite controlar los mensajes reproducidos que Amazon SNS reproduce en el punto de conexión del suscriptor. Cuando el filtrado y el archivo de mensajes están habilitados, Amazon SNS primero recupera el mensaje del almacén de datos del tema y, a continuación, lo aplica a la `FilterPolicy` de la suscripción. El mensaje se entrega al punto de conexión suscrito cuando hay una coincidencia; de lo contrario, el mensaje se filtra. Para obtener más información, consulte [Políticas de filtro de suscripciones de Amazon SNS](sns-subscription-filter-policies.md).

## Supervisa las métricas de reproducción de mensajes con Amazon CloudWatch
<a name="message-archiving-and-replay-subscription-cloudwatch"></a>

Puedes monitorizar los mensajes reproducidos con Amazon CloudWatch con las siguientes métricas. Para recibir notificaciones de anomalías en tus cargas de trabajo y evitar que se vean afectadas, puedes configurar las CloudWatch alarmas de Amazon en función de estas métricas. Para obtener más información, consulte [Registro y monitoreo en Amazon SNS](sns-logging-monitoring.md).


| Métrica | Description (Descripción) | 
| --- | --- | 
| **NumberOfReplayedNotificationsDelivered** | Proporciona al suscriptor el número total de mensajes reproducidos del archivo de temas, con una resolución de 1 minuto. | 
| **NumberOfReplayedNotificationsFailed**  | Proporciona al suscriptor el número total de mensajes reproducidos que han producido un error al entregar desde el archivo de temas, en una resolución de 1 minuto. | 