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á.
A reprodução do Amazon SNS permite que os assinantes do tópico recuperem mensagens arquivadas do datastore do tópico e as entreguem novamente (ou as reproduzam) em um endpoint inscrito. As mensagens podem ser reproduzidas assim que a assinatura é criada. Uma mensagem reproduzida tem o mesmo conteúdo, MessageId
, e Timestamp
como a cópia original, e também contém o atributo Replayed
, para ajudar você a identificar que é uma mensagem reproduzida. Para reproduzir apenas mensagens selecionadas, é possível adicionar uma política de filtro à assinatura. Para obter mais informações sobre como filtrar mensagens, consulte Filtrar mensagens reproduzidas.
Crie uma política de reprodução de mensagens usando o AWS Management Console
Use essa opção para criar uma política de reprodução de mensagens com o AWS Management Console.
Faça login no console do Amazon SNS
. -
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.
-
Para iniciar a reprodução de mensagens, acesse o menu suspenso Reproduzir e selecione Iniciar reprodução.
-
No modal Prazo de repetição, selecione:
-
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.
-
(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.
-
Selecione Iniciar repetição.
-
-
(Opcional) Para interromper a reprodução de mensagens, acesse a página Detalhes da assinatura e selecione Interromper repetição no menu suspenso Reproduzir.
-
(Opcional) Para monitorar métricas de repetição de mensagens de dentro desse fluxo de trabalho usando CloudWatch, consulteMonitore as métricas de reprodução de mensagens usando a Amazon 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
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. SeEndingPoint
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 paraPointType
é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
Para usar um AWS SDK, você deve configurá-lo com suas credenciais. Para obter mais informações, consulte Compartilhados config
e credentials
arquivos 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
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 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.
Monitore as métricas de reprodução de mensagens usando a Amazon CloudWatch
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.
Métrica | Descrição |
---|---|
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. |