

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

# Atualizando, pausando e retomando um assinante
<a name="eb-custom-bus-update"></a>

`UpdateSubscriber`muda um assinante no local. Um membro de nível superior que você omite mantém seu valor armazenado; um objeto de configuração que você fornece substitui o objeto armazenado por inteiro. Portanto, para alterar um filtro, passe o completo `FilterConfiguration` com cada filtro que você deseja manter. Para pausar um assinante, passe`--state STOPPED`; para retomar, passe `--state RUNNING` com a. `--resume-position`

## O que você pode mudar
<a name="eb-custom-bus-update-properties"></a>

A solicitação a seguir substitui o inteiro do assinante`InvokeConfiguration`, então ela nomeia a função e cada parâmetro de destino que o assinante deve manter. `TargetArn`não faz parte da atualização; a meta de um assinante não pode mudar.

```
{
    "SubscriberArn": "arn:aws:events:us-east-1:111122223333:subscriber/large-orders/EXAMPLEabcdef1234567890",
    "InvokeConfiguration": {
        "RoleArn": "arn:aws:iam::111122223333:role/NewSubscriberTargetRole",
        "SqsParameters": {
            "MessageGroupId": "{% $events.Data.customerId %}"
        }
    }
}
```

A tabela a seguir lista cada membro da solicitação e o que ela fornece.


| Solicitar membro | Efeito | 
| --- | --- | 
| Description | Substitui a descrição. Um valor vazio ou em branco o limpa. | 
| State | Move o assinante entre RUNNING eSTOPPED; consulte [Pausar e reiniciar](#eb-custom-bus-update-pause) | 
| ResumePosition | Onde a RUNNING transição STOPPED para é retomada | 
| InvokeConfiguration | Substitui a função de entrega e os parâmetros de destino. TargetArnpermanece como está. | 
| FilterConfiguration | Mantém, limpa ou substitui toda a configuração do filtro; consulte [Atualizando filtros](#eb-custom-bus-update-filters) | 
| BatchConfiguration | Substitui toda a configuração de dosagem | 
| Transformer | Substitui todo o transformador. TypeDefina como RAW para remover um transformador de metadados ou JSOnata. | 
| RetryPolicy | Substitui toda a política de novas tentativas. Um membro omitido usa o padrão: 5 tentativas de nova tentativa, 300 segundos e, o único valor RetryStrategyALL, que repete todas as categorias de falha. | 
| OnFailureConfiguration | Substitui toda a configuração em caso de falha. Envie {} para remover o destino; sem destino, um evento é descartado quando suas novas tentativas se esgotam. | 
| LogConfiguration | Substitui toda a configuração de registro. Envie {} para restaurar os padrões Level OFF e IncludePayloadON\_ERROR\_ONLY, o que desativa o registro de entrega. | 

`Name`,`EventBusArn`,,`Type`, `StartingPosition``PointInTimeConfiguration`, e `TargetArn` identifique o assinante ou fixe seu ponto de partida e não pode ser alterado; as tags mudam por meio de `TagResource` e. `UntagResource` A resposta de atualização carrega a identidade, o estado, a posição inicial do assinante e`LastModifiedTime`; leia novamente a `DescribeSubscriber` configuração.

Uma atualização nunca move a posição do assinante no ônibus: ela não retrocede, pula ou reproduz. Para reenviar eventos anteriores em uma nova configuração, crie um novo assinante com uma posição inicial; consulte. [Reproduzir eventos retidos para um assinante](eb-custom-bus-replay.md)

## Solução de problemas: uma atualização apagou as configurações que você não alterou
<a name="eb-custom-bus-update-cleared"></a>

Uma atualização substitui cada objeto de configuração que você fornece como um todo; consulte[O que você pode mudar](#eb-custom-bus-update-properties).

Sintomas  
Depois de uma atualização, um filtro, uma configuração de registro, um limite de novas tentativas ou um período de retenção que você não tocou voltam ao padrão e nenhum erro foi retornado.

Causa  
Uma atualização deixa um membro de nível superior omitido inalterado, mas substitui um bloco inteiro fornecido. Uma atualização que passa`FilterConfiguration`,`LogConfiguration`,`RetryPolicy`, ou `StorageConfiguration` para alterar um campo limpa os outros campos do bloco. Uma fonte de eventos atualizada sem `Pattern` retornar sem nenhum padrão, o que a amplia para cada evento.

Solução  
Leia o recurso, modifique o bloco inteiro, escreva o bloco inteiro de volta e leia-o novamente. A leitura é a única confirmação, pois as respostas de criação e atualização não ecoam em todos os campos.  

```
aws eventsv2 describe-subscriber --subscriber-arn "$SUBSCRIBER_ARN" --query 'LogConfiguration'

aws eventsv2 update-subscriber --subscriber-arn "$SUBSCRIBER_ARN" \
    --log-configuration '{ "Level": "INFO", "IncludePayload": "FULL" }'

aws eventsv2 describe-subscriber --subscriber-arn "$SUBSCRIBER_ARN" --query 'LogConfiguration'
```

Verificação  
A segunda descrição mostra cada campo do bloco com os valores que você pretendia.

## Atualizando filtros
<a name="eb-custom-bus-update-filters"></a>

Para substituir os filtros, passe uma `Filters` lista `FilterConfiguration` cuja lista contém todos os filtros que o assinante deve ter; EventBridge combina filtros para diferentes escopos com AND. Para remover todos os filtros, passe `FilterConfiguration` como`{}`.


| Solicitação | Resultado | 
| --- | --- | 
| FilterConfigurationomitido | Os filtros armazenados permanecem | 
| FilterConfiguration é {} | Cada filtro armazenado é removido | 
| Filtersé uma lista não vazia | A lista é validada e substitui toda a configuração do filtro | 
| Filtersé uma lista vazia ou Language é fornecida sem Filters | InvalidInputException; um fornecido FilterConfiguration deve conter pelo menos um filtro | 

As alterações de filtro são limitadas a 24 por assinante em 24 horas consecutivas. Somente uma alteração no conjunto de escopos e padrões conta; reenviar um idêntico `FilterConfiguration` não. A 25ª mudança falha com`FILTER_CHANGE_LIMIT_EXCEEDED`. Esse limite não é uma cota de serviço e não pode ser aumentado, portanto, um design que reescreve filtros continuamente deve, em vez disso, publicar o valor variável no evento e filtrá-lo uma vez.

## Qual configuração um evento já correspondido usa
<a name="eb-custom-bus-update-inflight"></a>

EventBridge associa um evento a um assinante e o entrega em horários diferentes, além de registrar qual versão dos filtros correspondeu a cada evento. Uma atualização que altera a correspondência dos filtros cria uma nova versão do filtro e EventBridge armazena os parâmetros do transformador e do alvo com ela. Um evento combinado antes da alteração com os parâmetros antigos do transformador e do alvo; um evento combinado depois de usar os novos. O mesmo acontece depois que um assinante para e retoma.


| Atualização do filtro | Cria uma nova versão do filtro | 
| --- | --- | 
| Alterando um padrão | Sim | 
| Alterando quais escopos têm um filtro | Sim | 
| Adicionando o primeiro filtro | Sim | 
| Limpando todos os filtros | Sim, quando os filtros foram armazenados | 
| Reordenando filtros equivalentes | Não | 
| Apenas mudando Language | Não | 

Portanto, quando um filtro e um transformador ou parâmetro de destino formarem um comportamento, altere-os na mesma solicitação. A solicitação a seguir emparelha um novo `DATA` filtro com o transformador escrito para ele, para que nenhum evento seja entregue com um par incompatível.

```
{
    "SubscriberArn": "arn:aws:events:us-east-1:111122223333:subscriber/large-orders/EXAMPLEabcdef1234567890",
    "FilterConfiguration": {
        "Filters": [
            { "Scope": "DATA", "Pattern": "{\"type\":[\"priority\"]}" }
        ]
    },
    "Transformer": {
        "Type": "JSONATA",
        "JsonataConfiguration": {
            "Expression": "{% {\"version\": 2, \"event\": $events.Data} %}"
        }
    }
}
```

Uma atualização que altera somente o transformador ou os parâmetros de destino não cria nenhuma versão do filtro. Depois de se propagar, a nova configuração se aplica aos eventos que ainda estão aguardando a entrega e às tentativas de repetição posteriores. A função de entrega, a política de nova tentativa, o destino em caso de falha, a configuração de lote e registro sempre usam os valores propagados mais recentes, seja qual for a versão correspondente ao evento. Como EventBridge pode avaliar os parâmetros do transformador e do alvo novamente para uma nova tentativa, uma função JSoNata dependente do tempo ou não determinística, como a que `$now()` pode produzir um resultado diferente em cada tentativa; não presuma que uma solicitação repetida tenha bytes idênticos.

`UpdateSubscriber`armazena a alteração antes que ela retorne e os componentes de entrega a coletam após um atraso de propagação, durante o qual os eventos ainda podem usar a configuração anterior. `DescribeSubscriber`confirma o que está armazenado, não que todos os componentes tenham sido trocados. Depois de uma atualização, publique um evento de teste e verifique a carga útil de destino antes de confiar no novo comportamento.

Somente um assinante criado ou excluído é executado por vez em um ônibus, em todas as contas que o usam; uma chamada simultânea falha com. `ConcurrentModificationException` Tente novamente.

## Pausar e reiniciar
<a name="eb-custom-bus-update-pause"></a>

Um assinante entrega somente enquanto `State` está`RUNNING`. Configure `STOPPED` para pausar; os eventos continuam se acumulando no ônibus, limitados pela retenção. Quando você volta para`RUNNING`, `ResumePosition` decide o que acontece com a lista de pendências.
+ `LAST_PROCESSED`, o padrão: continue de onde a entrega foi interrompida, para que cada evento publicado enquanto o assinante estava parado seja entregue, primeiro o mais antigo.
+ `LATEST`: ignore a lista de pendências e entregue somente os eventos publicados a partir de agora. Um assinante que está reprisando não pode usá-lo: um replay aberto ainda está se atualizando e um replay limitado nunca chega aos eventos ao vivo.

```
aws eventsv2 update-subscriber \
    --subscriber-arn arn:aws:events:us-east-1:111122223333:subscriber/large-orders/EXAMPLEabcdef1234567890 \
    --state STOPPED

aws eventsv2 update-subscriber \
    --subscriber-arn arn:aws:events:us-east-1:111122223333:subscriber/large-orders/EXAMPLEabcdef1234567890 \
    --state RUNNING \
    --resume-position LAST_PROCESSED
```

`ResumePosition`é aceito somente na chamada que move o estado de `STOPPED` para`RUNNING`. Nessa chamada, EventBridge primeiro torna o endpoint de entrega do assinante detectável novamente; se essa etapa falhar, a chamada retornará`InternalException`, nada será salvo e o assinante permanecerá`STOPPED`, então repita a solicitação. Um assinante que o proprietário do ônibus revogou não entrega em nenhum dos estados; veja. [Revogar um assinante ou uma fonte de eventos](eb-custom-bus-access-revoke.md)

## Erros que uma atualização pode retornar
<a name="eb-custom-bus-update-errors"></a>

EventBridge valida a configuração atualizada em relação ao tipo de destino armazenado do assinante, portanto, um `SqsParameters` bloqueio em um assinante cujo destino é uma função do Lambda é rejeitado.


| Condição | Erro | 
| --- | --- | 
| O assinante não existe | ResourceNotFoundException | 
| O assinante foi revogado | InvalidStateException | 
| A solicitação tem mais de um bloco de parâmetros de destino | InvalidInputException | 
| Os parâmetros de destino não correspondem ao tipo de alvo armazenado | InvalidInputException | 
| O transformador não é suportado pelo alvo | InvalidInputException | 
| Uma expressão JSOnata é inválida | InvalidInputException | 
| O valor do lote está fora dos limites do alvo | InvalidInputException | 