

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

# Políticas de repetição e filas de cartas mortas
<a name="eb-custom-bus-retry"></a>

Quando uma chamada de destino falha, EventBridge tente novamente até que um dos dois limites de entrada `RetryPolicy` seja atingido, por padrão, 5 tentativas ou 300 segundos, e então grava um registro na fila do Amazon SQS. `OnFailureConfiguration.Arn` Defina ambos ao criar o assinante: sem uma fila de cartas mortas, um evento que esgota suas novas tentativas é descartado e o único rastreamento é a métrica. `EventsDropped`

## Limites de novas tentativas
<a name="eb-custom-bus-retry-policy"></a>

A entrega é interrompida no limite que for atingido primeiro.


| Limite | Intervalo | Padrão | 
| --- | --- | --- | 
| MaxRetryAttempts | 0 a 185 | 5 | 
| MaxEventAgeInSeconds | 60 a 86.400 | 300 | 

Os padrões são mais curtos do que as 24 horas e 185 tentativas do Custom Event Bus - Classic target. Um design migrado que dependia de um dia de novas tentativas deve ser definido `MaxEventAgeInSeconds` explicitamente como 86.400; caso contrário, os eventos que falharem durante uma interrupção de destino de mais de 5 minutos vão para a fila de e-mails mortos em vez de serem entregues com atraso. Para um assinante FIFO, um evento com falha bloqueia os eventos posteriores em seu grupo enquanto ele for repetido, portanto, uma longa janela de repetição troca a ordem por latência.

## O registro de letras mortas
<a name="eb-custom-bus-retry-record"></a>

O registro é um documento JSON, não o evento. O exemplo a seguir mostra um registro de dois eventos que falharam juntos em um lote.

```
{
    "version": "1.0",
    "busArn": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef",
    "subscriberArn": "arn:aws:events:us-east-1:111122223333:subscriber/large-orders/EXAMPLEabcdef1234567890",
    "targetArn": "arn:aws:sqs:us-east-1:111122223333:large-orders",
    "errorCode": "ACCESS_DENIED",
    "errorMessage": "The delivery role is not authorized to perform sqs:SendMessage on the target.",
    "exhaustedRetryCondition": "MaximumEventAgeInSeconds",
    "retryAttempts": 4,
    "failedMessages": [
        { "eventId": "a1b2c3d4-...", "eventGroupId": "order-1001", "deduplicationId": null, "timestamp": "2026-09-16T18:40:12Z", "targetRequestId": "..." },
        { "eventId": "e5f6a7b8-...", "eventGroupId": "order-1001", "deduplicationId": null, "timestamp": "2026-09-16T18:40:13Z", "targetRequestId": "..." }
    ]
}
```

Cada falha que chegava à fila era tentada novamente primeiro: não há falha de entrega que pule. `RetryPolicy` As falhas internas são EventBridge repetidas EventBridge sem limite e nunca produzem um registro. A tabela a seguir lista os códigos que um registro pode conter. `errorMessage`está truncado para 1.024 caracteres.


| `errorCode` | O que falhou | `errorMessage` | 
| --- | --- | --- | 
| CUSTOMER\_VALIDATION | A API de destino rejeitou a solicitação (uma resposta 4xx): um valor incorreto, um campo ausente, um corpo malformado | A própria mensagem da API de destino | 
| ACCESS\_DENIED | EventBridge não pôde assumir a função de entrega, a função não tem permissão para chamar o alvo ou a AWS KMS chave do alvo teve acesso negado | EventBridge não poderia presumir{{role}}. Verifique se a função existe e se sua política de confiança permite que o diretor do EventBridge serviço a assuma. ou não  EventBridge conseguiu acessar{{resource}}. Verifique se ele existe e se sua política permite o acesso principal do EventBridge serviço.  | 
| RESOURCE\_NOT\_FOUND | O alvo, ou sua AWS KMS chave, não existe | A  mensagem de não  foi possível acessar acima ou a mensagem genérica | 
| INPUT\_TRANSFORMATION\_FAILURE | A Input expressão Transformer ou alvo universal não gerou ou produziu nenhum valor | O erro de expressão | 
| THROTTLING | O alvo limitou a chamada | A mensagem genérica | 
| EXECUTION\_TIMEOUT | O alvo não respondeu dentro InvocationTimeoutSeconds | A mensagem genérica | 
| REQUEST\_TOO\_LARGE | A solicitação excedeu o limite de tamanho do alvo; menor MaxBatchSize | A mensagem genérica | 
| PARTIAL\_BATCH\_FAILURE | O alvo aceitou parte de um lote e rejeitou o restante; o registro failedMessages lista somente os eventos rejeitados | A mensagem genérica | 
| RESOURCE\_CONFLICT | O alvo relatou um conflito, por exemplo, um nome já em uso | A mensagem genérica | 
| KMS\_INVALID\_STATE | A AWS KMS chave do alvo está desativada ou está pendente de exclusão | A mensagem genérica | 
| SFN\_TYPE\_NOT\_SUPPORTED | REQUEST\_RESPONSEfoi usado com uma máquina de estado padrão, que não suporta execução síncrona | A mensagem genérica | 
| COMPUTE\_EXECUTION\_ERROR | Uma REQUEST\_RESPONSE função ou execução foi executada e relatou um erro | A mensagem genérica | 
| INVOCATION\_DEPENDENCY\_INTERNAL | O alvo retornou um erro do servidor (uma resposta 5xx) | A mensagem genérica | 
| LOOP\_DETECTED | O evento, ou um evento derivado dele, já passou pelo barramento de destino; consulte [Detecção de loop](eb-custom-bus-target-bus.md#eb-custom-bus-target-bus-loops) | A mensagem genérica | 
| INTERNAL\_SERVER\_ERROR | Uma falha interna EventBridge ao fazer a chamada que ainda esgotou as novas tentativas | A mensagem genérica | 

A mensagem genérica é * A entrega falhou. Use o código de erro e o ID da solicitação desse registro ao investigar e entre em contato com o AWS Suporte se a falha persistir. * EventBridge o usa sempre que a passagem da mensagem subjacente pode expor os componentes internos de outro serviço; portanto, para esses códigos, `errorCode` e `targetRequestId` são os fatos a partir dos quais trabalhar, junto com os registros de `EVENT_DELIVERY_ATTEMPT` log, que transmitem a solicitação enviada. Os mesmos valores chegam como atributos de mensagem do Amazon SQS (`ERROR_CODE``ERROR_MESSAGE`,`SUBSCRIBER_ARN`,`TARGET_ARN`,`BUS_ARN`,`EXHAUSTED_RETRY_CONDITION`,`RETRY_ATTEMPTS`), para que um consumidor possa roteá-los sem analisar o corpo. Para um assinante FIFO, use uma fila FIFO como fila de cartas mortas; EventBridge define cada registro a `MessageGroupId` partir dos eventos`EventGroupId`, para que os registros de um grupo permaneçam em ordem.

A função de entrega precisa `sqs:SendMessage` estar na fila. Sem ela, a `OnFailureDestinationFailed` métrica conta cada registro que não pôde ser gravado e esses eventos são perdidos.

## Redirecionando eventos da fila de cartas mortas
<a name="eb-custom-bus-retry-redrive"></a>

A fila contém registros, não eventos, então você dirige novamente reproduzindo os eventos do ônibus. Os eventos ainda devem estar dentro do período de retenção do ônibus.

1. Leia os registros e colete todos`failedMessages[].eventId`, além dos mais antigos e mais recentes`timestamp`.

1. Corrija a causa, os `errorCode` nomes: a política da função, o alvo ou a expressão.

1. Crie um assinante no mesmo ônibus com o mesmo alvo e função, uma posição `POINT_IN_TIME` inicial cujo carimbo de data/hora `StartingPoint` seja o mais antigo e o mais recente, e um `SYSTEM_METADATA` filtro nos identificadores. `EndPoint`

1. Quando o assinante tiver entregue os eventos, exclua-os e exclua os registros da fila.

```
aws eventsv2 create-subscriber \
    --name redrive-2026-09-16 \
    --event-bus-arn arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \
    --starting-position POINT_IN_TIME \
    --point-in-time-configuration '{ "PointType": "TIMESTAMP", "StartingPoint": "2026-09-16T18:40:00Z", "EndPoint": "2026-09-16T18:41:00Z" }' \
    --filter-configuration '{ "Filters": [ { "Scope": "SYSTEM_METADATA", "Pattern": "{\"aws:EventId\":[\"a1b2c3d4-...\",\"e5f6a7b8-...\"]}" } ] }' \
    --invoke-configuration '{ "TargetArn": "arn:aws:sqs:us-east-1:111122223333:large-orders", "RoleArn": "arn:aws:iam::111122223333:role/EventBusDeliveryRole" }'
```

Os eventos reproduzidos chegam com `aws:DeliveryType``REPLAY`, então um consumidor pode diferenciá-los pelo tráfego ao vivo.