

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Reprodução de mensagens do Amazon SNS para assinantes de tópicos FIFO
<a name="message-archiving-and-replay-subscriber"></a>

A reprodução do Amazon SNS permite que os assinantes do tópico recuperem mensagens arquivadas do armazenamento de dados do tópico e as entreguem novamente para um endpoint inscrito.
+ As mensagens podem ser reproduzidas novamente assim que a assinatura for criada.
+ Uma mensagem reproduzida novamente mantém o mesmo conteúdo, `MessageId` e `Timestamp` que a original.
+ A mensagem inclui um atributo `Replayed` para indicar que é uma mensagem repetida.
+ Para reproduzir novamente apenas mensagens específicas, aplique uma política de filtro à assinatura.

Para obter mais informações sobre como filtrar mensagens, consulte [Filtrar mensagens reproduzidas](#message-archiving-and-replay-subscription-filtering).

## Crie uma política de reprodução de mensagens usando o Console de gerenciamento da AWS
<a name="message-archiving-and-replay-replaying-console"></a>

Use essa opção para criar uma política de reprodução de mensagens com o Console de gerenciamento da AWS.

1. Faça login no console [do Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Selecione uma assinatura de tópico ou crie uma. Para saber mais sobre como criar assinaturas, consulte [Criação de uma assinatura em um tópico do Amazon SNS](sns-create-subscribe-endpoint-to-topic.md).

1. Para iniciar a reprodução de mensagens, acesse o menu suspenso **Reproduzir** e selecione **Iniciar reprodução**.

1. No modal **Prazo de repetição**, selecione:

   1. **Escolha a data e a hora de início da repetição** — Escolha a **data** (YYYY/MM/DDformato) e a **hora** (formato hh:mm:ss de 24 horas) a partir das quais você deseja começar a reproduzir as mensagens arquivadas. A hora de início deve ser posterior ao início da hora de arquivamento aproximada.

   1. **(Opcional) Escolha a data e a hora de término da repetição** — Escolha a **data** (YYYY/MM/DDformato) e a **hora** (formato hh:mm:ss de 24 horas) em que você deseja parar de reproduzir as mensagens arquivadas.

   1. Selecione **Iniciar repetição**.

1. (Opcional) Para **interromper** a reprodução de mensagens, acesse a página **Detalhes da assinatura** e selecione **Interromper repetição** no menu suspenso **Reproduzir**.

1. (Opcional) Para **monitorar** métricas de repetição de mensagens de dentro desse fluxo de trabalho usando CloudWatch, consulte[Monitore as métricas de reprodução de mensagens usando a Amazon CloudWatch](#message-archiving-and-replay-subscription-cloudwatch).

**Como visualizar e editar uma política de reprodução de mensagens**

É possível realizar as seguintes ações na página **Detalhes da assinatura**:
+ Para **visualizar** o status de reprodução de mensagens, o campo **Status de reprodução** exibe os seguintes valores:
  + **Concluído**: a reprodução reenviou com êxito todas as mensagens e agora está enviando mensagens recém-publicadas.
  + **Em andamento**: no momento, as mensagens selecionadas estão sendo reproduzidas.
  + **Com falha**: não foi possível concluir a reprodução.
  + **Pendente**: o estado padrão durante o início da reprodução.
+ (Opcional) Para **modificar** a política de reprodução de mensagens, acesse a página **Detalhes da assinatura** e selecione **Iniciar reprodução** no menu suspenso **Reproduzir**. Ao iniciar uma reprodução, a reprodução existente será substituída.

## Adicionar uma política de reprodução à assinatura com a API
<a name="message-archiving-and-replay-subscription-api"></a>

Para reproduzir mensagens arquivadas, use o atributo `ReplayPolicy`. A `ReplayPolicy` pode ser usada com as ações `Subscribe` e `SetSubscriptionAttributes` da API. Essa política tem os seguintes valores:
+ **`StartingPoint`** (obrigatório): sinaliza de onde começar a reproduzir as mensagens.
+ **`EndingPoint`** (opcional): sinaliza quando parar de reproduzir mensagens. Se `EndingPoint` for omitido, a reprodução continuará até a hora atual.
+ **`PointType`** (obrigatório): define o tipo dos pontos de início e término. No momento, o valor compatível para `PointType` é `Timestamp`.

Por exemplo, para se recuperar de uma falha subsequente e reenviar todas as mensagens por um período de duas horas em 1.º de outubro de 2023, use a ação `SetSubscriptionAttributes` da API para definir uma `ReplayPolicy` da seguinte maneira:

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

Para reproduzir todas as mensagens enviadas ao tópico a partir de 1.º de outubro de 2023 e continuar recebendo todas as mensagens recém-publicadas no tópico, use a ação `SetSubscriptionAttributes` da API para definir uma `ReplayPolicy` na assinatura da seguinte maneira:

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

Para verificar se uma mensagem foi reproduzida, o atributo booliano `Replayed` é adicionado a cada mensagem reproduzida.

## Adicionar uma política de reprodução à assinatura com o SDK
<a name="message-replay-sdk"></a>

Para usar um AWS SDK, você deve configurá-lo com suas credenciais. Para obter mais informações, consulte [Compartilhados `config` e `credentials` arquivos](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) no *Guia de referência de ferramentas AWS SDKs e ferramentas*.

O exemplo de código a seguir mostra como definir a `ReplayPolicy` em uma assinatura para reenviar mensagens do arquivo do tópico FIFO do Amazon SNS por um período de duas horas em 1.º de outubro 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);
```

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

Quando você aplica uma `ReplayPolicy` para uma assinatura do Amazon SNS, o valor `EndingPoint` é opcional. Se não `EndingPoint` for fornecido, a repetição começará do `StartingPoint`especificado e continuará até atingir a hora atual, incluindo o processamento de qualquer mensagem recém-publicada. Depois de concluída, a assinatura funcionará como uma assinatura regular, recebendo novas mensagens à medida que forem publicadas.

Se um `EndingPoint` for especificado, o serviço reproduzirá as mensagens do `StartingPoint` até o `EndingPoint` e depois parará. **Essa ação efetivamente pausa a assinatura.** Enquanto a assinatura estiver pausada, as mensagens recém-publicadas não serão entregues ao endpoint inscrito.

Para retomar a entrega de mensagens, aplique uma nova `ReplayPolicy` sem fornecer um `EndingPoint` e defina o `StartingPoint` para o momento desejado a partir do qual continuar recebendo mensagens. Por exemplo, para retomar uma assinatura após o término de uma repetição anterior, defina o novo `StartingPoint` ao `EndingPoint` fornecido anteriormente.

## Filtrar mensagens reproduzidas
<a name="message-archiving-and-replay-subscription-filtering"></a>

A filtragem de mensagens do Amazon SNS permite que você controle as mensagens reproduzidas que o Amazon SNS reproduz no endpoint do assinante. Quando a filtragem e o arquivamento de mensagens estão habilitados, o Amazon SNS primeiro recupera a mensagem do datastore do tópico e, depois, aplica a mensagem à `FilterPolicy` da assinatura. A mensagem é enviada ao endpoint inscrito quando há uma correspondência. Caso contrário, ela é filtrada. Para obter mais informações, consulte [Políticas de filtro de assinatura do Amazon SNS](sns-subscription-filter-policies.md).

## Monitore as métricas de reprodução de mensagens usando a Amazon CloudWatch
<a name="message-archiving-and-replay-subscription-cloudwatch"></a>

Você pode monitorar mensagens de repetição usando a Amazon CloudWatch usando as seguintes métricas. Para ser notificado sobre anomalias em suas cargas de trabalho e ajudar a evitar impactos, você pode configurar os CloudWatch alarmes da Amazon com base nessas métricas. Consulte mais detalhes em [Registrar em log e monitorar no Amazon SNS](sns-logging-monitoring.md).


| Métrica | Description | 
| --- | --- | 
|  **NumberOfReplayedNotificationsDelivered**  |  Fornece ao assinante o número agregado de mensagens reproduzidas do arquivo de tópicos, com resolução de 1 minuto.  | 
|  **NumberOfReplayedNotificationsFailed**   |  Fornece ao assinante o número agregado de mensagens reproduzidas que não foram entregues do arquivo de tópicos, com resolução de 1 minuto.  | 