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 SNS mensagens da Amazon para assinantes de FIFO tópicos
O Amazon SNS replay permite que os assinantes do tópico recuperem mensagens arquivadas do armazenamento de dados do tópico e as reentreguem (ou 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 SNSconsole da Amazon
. -
Selecione uma assinatura de tópico ou crie uma. Para saber mais sobre como criar assinaturas, consulte Criando uma assinatura para um SNS tópico da Amazon.
-
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.
Adicione uma política de repetição à assinatura usando o API
Para reproduzir mensagens arquivadas, use o atributo. ReplayPolicy
ReplayPolicy
pode ser usado com Subscribe
as SetSubscriptionAttributes
API ações e. 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 posterior e reenviar todas as mensagens por um período de duas horas em 1º de outubro de 2023, use a SetSubscriptionAttributes
API ação para definir a da seguinte ReplayPolicy
forma:
{ "PointType":"Timestamp", "StartingPoint":"2023-10-01T10:00:00.000Z", "EndingPoint":"2023-10-01T12:00:00.000Z" }
Para reproduzir todas as mensagens enviadas para o tópico a partir de 1º de outubro de 2023 e continuar recebendo todas as mensagens recém-publicadas em seu tópico, use a SetSubscriptionAttributes
API ação para definir um ReplayPolicy
em sua assinatura da seguinte forma:
{ "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.
Adicione uma política de repetição à assinatura usando 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 configurar uma assinatura para reenviar mensagens do arquivo do SNS FIFO tópico da Amazon por um período de 2 horas em 1º de outubro de 2023. ReplayPolicy
// 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ê se inscreve ReplayPolicy
em uma SNS assinatura da Amazon, o EndingPoint
valor é opcional. Se não EndingPoint
for fornecido, a repetição começará do especificado StartingPoint
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 de StartingPoint
até EndingPoint
e, em seguida, 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 uma EndingPoint
e StartingPoint
defina-a 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 a nova como StartingPoint
a fornecida EndingPoint
anteriormente.
Filtrar mensagens reproduzidas
A filtragem de SNS mensagens da Amazon permite que você controle as mensagens repetidas que a Amazon SNS reproduz no endpoint do seu assinante. Quando a filtragem e o arquivamento de mensagens estão habilitados, a Amazon SNS primeiro recupera a mensagem do armazenamento de dados do tópico e, em seguida, aplica a mensagem ao da assinatura. FilterPolicy
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 SNS assinatura da Amazon.
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. Para obter mais detalhes, consulte Registro e monitoramento na 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. |