Reprodução de SNS mensagens da Amazon para assinantes de FIFO tópicos - Amazon Simple Notification Service

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.

  1. Faça login no SNSconsole da Amazon.

  2. 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.

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

  4. 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.

    2. (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.

    3. Selecione Iniciar repetição.

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

  6. (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 ReplayPolicypode 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. 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 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.