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á.
Use o redirecionamento de fila de mensagens mortas para mover mensagens não consumidas de uma fila de mensagens mortas para outro destino para processamento. Por padrão, a redirecionamento da fila de mensagens mortas move as mensagens de uma fila de mensagens mortas para uma fila de origem. No entanto, também será possível configurar qualquer outra fila como o destino de redirecionamento se as filas forem do mesmo tipo. Por exemplo, se a fila de mensagens não entregues for uma fila FIFO, a fila de destino de redirecionamento também deverá ser uma fila FIFO. Além disso, você pode configurar a velocidade de redirecionamento para definir a taxa na qual o Amazon SQS move mensagens.
nota
Quando uma mensagem é movida de uma fila FIFO para uma DLQ FIFO, o ID de eliminação de duplicação da mensagem original será substituído pelo ID da mensagem original. Isso acontece para garantir que a eliminação de duplicação da DLQ não impeça o armazenamento de duas mensagens independentes que, por acaso, compartilham o mesmo ID de eliminação de duplicação.
As filas de mensagens não entregues redirecionam as mensagens na ordem em que são recebidas, começando pela mais antiga. No entanto, a fila de destino ingere as mensagens redirecionadas, bem como as novas mensagens de outros produtores, de acordo com a ordem em que as recebe. Por exemplo, se um produtor enviar mensagens para uma fila FIFO de origem ao receber simultaneamente mensagens redirecionadas de uma fila de mensagens não entregues, as mensagens redirecionadas serão combinadas com as novas mensagens do produtor.
nota
A tarefa de redirecionamento redefine o período de retenção. Todas as mensagens redirecionadas são consideradas novas mensagens com um novo messageID
e enqueueTime
são atribuídos a mensagens redirecionadas.
Configurar o redirecionamento de uma fila de mensagens não entregues para uma fila padrão existente usando a API do Amazon SQS
É possível configurar o redirecionamento de uma fila de mensagens não entregues usando as ações de API StartMessageMoveTask
, ListMessageMoveTasks
e CancelMessageMoveTask
:
Ação da API | Descrição |
---|---|
Inicia uma tarefa assíncrona para mover mensagens de uma fila de origem especificada a uma fila de destino especificada. |
|
Exibe as tarefas mais recentes de movimentação de mensagens (até dez) em uma fila de origem específica. |
|
Cancela uma tarefa de movimentação de mensagens especificada. A movimentação de uma mensagem só pode ser cancelada quando o status atual é EM EXECUÇÃO. |
Configurar o redirecionamento de uma fila de mensagens não entregues para uma fila padrão existente usando o console do Amazon SQS
Abra o console do Amazon SQS em. https://console.aws.amazon.com/sqs/
-
No painel de navegação, escolha Queues.
-
Escolha o nome da fila configurada como uma fila de mensagens não entregues.
-
Selecione Start DLQ redrive (Iniciar o redirecionamento DLQ).
-
Em Redrive configuration (Configurações de redirecionamento), em Message destination (Destino da mensagem), execute uma das seguintes ações:
-
Para redirecionar mensagens para a fila de origem, escolha Redrive to source queue(s) (Redirecionar para fila(s) de origem).
-
Para redirecionar mensagens para outra fila, escolha Redrive to custom destination (Redirecionar para um destino personalizado). Em seguida, insira o nome do recurso da Amazon (ARN) de uma fila de destino existente.
-
-
Em Velocity control settings (Configurações de controle de velocidade), escolha uma das opções a seguir:
-
System optimized (Otimizado para o sistema) — Redirecione mensagens de fila de mensagens não entregues no número máximo de mensagens por segundo.
-
Custom max velocity (Velocidade máxima personalizada) — Redirecione mensagens de fila de mensagens não entregues com uma taxa máxima personalizada de mensagens por segundo. A taxa máxima permitida é de 500 mensagens por segundo.
-
É recomendável começar com um valor pequeno para a velocidade máxima personalizada e verificar se a fila de origem não está sobrecarregada com mensagens. A partir daí, aumente gradualmente o valor de velocidade máxima personalizada, continuando a monitorar o estado da fila de origem.
-
-
-
Quando você terminar de configurar o redirecionamento da fila de mensagens não entregues, escolha Save (Salvar).
Importante
O Amazon SQS não oferece suporte à filtragem e modificação de mensagens enquanto as redireciona da fila de mensagens não entregues.
Uma tarefa de redirecionamento de fila de mensagens não entregues pode ser executada no máximo 36 horas. O Amazon SQS oferece suporte a um máximo de 100 tarefas de redirecionamento ativo por conta.
-
Se você quiser cancelar a tarefa de redirecionamento de mensagens, na página Details (Detalhes) da sua fila, escolha Cancel DLQ redrive (Cancelar redirecionamento DLQ). Ao cancelar uma redirecionamento de mensagem em andamento, todas as mensagens que já tenham sido movidas com sucesso para a fila de destino de movimentação permanecerão na fila de destino.
Configurar permissões de fila para o redirecionamento da fila de mensagens não entregues
Você pode conceder ao usuário acesso a ações específicas da fila de mensagens não entregues adicionando permissões à política. As permissões mínimas necessárias para uma fila de mensagens não entregues são as seguintes:
Permissões mínimas | Métodos de API necessários |
---|---|
Como iniciar um redirecionamento de mensagens |
|
Como cancelar um redirecionamento de mensagem em andamento |
|
Como exibir o status de movimentação de uma mensagem |
|
Para configurar permissões a um par de filas criptografadas (uma fila de origem com uma fila de mensagens não entregues)
Use as etapas a seguir para configurar as permissões mínimas para um redrive de fila de cartas mortas (DLQ):
-
Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação, selecione Políticas.
-
Crie uma nova política e adicione as seguintes permissões. Anexe a política ao usuário ou à função do IAM que executará a operação de recondução.
-
Permissões para o DLQ (fila de origem):
-
sqs:StartMessageMoveTask
-
sqs:CancelMessageMoveTask
-
sqs:ListMessageMoveTasks
-
sqs:ReceiveMessage
-
sqs:DeleteMessage
-
sqs:GetQueueAttributes
-
sqs:ListDeadLetterSourceQueues
-
Especifique o ARN do recurso da DLQ (fila de origem) (por exemplo, “arn:aws:sqs::: “).
<DLQ_region>
<DLQ_accountId>
<DLQ_name>
-
-
Permissões para fila de destino:
-
sqs:SendMessage
-
Especifique a fila
Resource ARN
de destino (por exemplo, “arn:aws:sqs: “).<DestQueue_region>:<DestQueue_accountId>:<DestQueue_name>
-
-
Permissões para chaves KMS:
-
kms:Decrypt
(Necessário para descriptografar mensagens no DLQ.) -
kms:GenerateDataKey
(Necessário para criptografar mensagens na fila de destino.)-
Resource
ARNs:-
O ARN da chave KMS usada para criptografar mensagens na DLQ (fila de origem) (por exemplo, “arn:aws:kms: ::key/ “).
<region>
<accountId>
<SourceQueueKeyId>
-
O ARN da chave KMS usada para criptografar mensagens na fila de destino (por exemplo, “arn:aws:kms: ::key/ “).
<region>
<accountId>
<DestinationQueueKeyId>
-
-
-
A política de acesso deve ser semelhante a:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sqs:StartMessageMoveTask", "sqs:CancelMessageMoveTask", "sqs:ListMessageMoveTasks", "sqs:ReceiveMessage", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ListDeadLetterSourceQueues" ], "Resource": "arn:aws:sqs:
<DLQ_region>
:<DLQ_accountId>
:<DLQ_name>
", "Condition": { "StringEquals": { "aws:ResourceTag/QueueRole": "source" } } }, { "Effect": "Allow", "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:<DestQueue_region>
:<DestQueue_accountId>
:<DestQueue_name>
", "Condition": { "StringEquals": { "aws:ResourceTag/QueueRole": "destination" } } }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:<region>
:<accountId>
:key/<SourceQueueKeyId>
", "arn:aws:kms:<region>
:<accountId>
:key/<DestQueueKeyId>
" ] } ] } -
Para configurar permissões a um par de filas não criptografadas (uma fila de origem com uma fila de mensagens não entregues)
Siga estas etapas para configurar as permissões mínimas necessárias para lidar com uma fila de mensagens mortas (DLQ) padrão e não criptografada. As permissões mínimas necessárias são para receber, excluir e obter atributos da fila de mensagens não entregues e enviar atributos para a fila de origem.
-
Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação, selecione Políticas.
-
Crie uma nova política e adicione as seguintes permissões. Anexe a política ao usuário ou à função do IAM que executará a operação de recondução.
-
Permissões para o DLQ (fila de origem):
-
sqs:StartMessageMoveTask
-
sqs:CancelMessageMoveTask
-
sqs:ListMessageMoveTasks
-
sqs:ReceiveMessage
-
sqs:DeleteMessage
-
sqs:ListDeadLetterSourceQueues
-
Especifique o ARN do recurso da DLQ (fila de origem) (por exemplo, “arn:aws:sqs::: “).
<DLQ_region>
<DLQ_accountId>
<DLQ_name>
-
-
Permissões para fila de destino:
-
sqs:SendMessage
-
Especifique a fila
Resource ARN
de destino (por exemplo, “arn:aws:sqs: “).<DestQueue_region>:<DestQueue_accountId>:<DestQueue_name>
-
A política de acesso deve ser semelhante a:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sqs:StartMessageMoveTask", "sqs:CancelMessageMoveTask", "sqs:ListMessageMoveTasks", "sqs:ReceiveMessage", "sqs:DeleteMessage", "sqs:GetQueueAttributes", "sqs:ListDeadLetterSourceQueues" ], "Resource": "arn:aws:sqs:
<DLQ_region>
:<DLQ_accountId>
:<DLQ_name>
", "Condition": { "StringEquals": { "aws:ResourceTag/QueueRole": "source" } } }, { "Effect": "Allow", "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:<DestQueue_region>
:<DestQueue_accountId>
:<DestQueue_name>
", "Condition": { "StringEquals": { "aws:ResourceTag/QueueRole": "destination" } } } ] } -