Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Aggiornamento, sospensione e ripresa di un abbonato
UpdateSubscribermodifica la posizione di un abbonato. Un membro di primo livello che ometti mantiene il suo valore memorizzato; un oggetto di configurazione fornito sostituisce l'oggetto archiviato per intero, quindi per cambiare un filtro, passa il valore completo FilterConfiguration con tutti i filtri che desideri conservare. Per mettere in pausa un abbonato, passa--state STOPPED; per riprenderlo, passa con un. --state RUNNING --resume-position
Cosa puoi cambiare
La richiesta seguente sostituisce l'intera richiesta del sottoscrittoreInvokeConfiguration, quindi nomina il ruolo e tutti i parametri di destinazione che il sottoscrittore deve conservare. TargetArnnon fa parte dell'aggiornamento; il target di un abbonato non può cambiare.
{ "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 %}" } } }
La tabella seguente elenca ogni membro della richiesta e le relative operazioni di fornitura.
| Membro della richiesta | Effetto |
|---|---|
Description | Sostituisce la descrizione. Un valore vuoto o vuoto la cancella. |
State | Sposta il sottoscrittore tra RUNNING eSTOPPED; vedi Sospensione e ripristino |
ResumePosition | Dove riprende STOPPED la RUNNING transizione da a |
InvokeConfiguration | Sostituisce il ruolo di consegna e i parametri di destinazione. TargetArnrimane così com'è. |
FilterConfiguration | Mantiene, cancella o sostituisce l'intera configurazione del filtro; vedi Aggiornamento dei filtri |
BatchConfiguration | Sostituisce l'intera configurazione in batch |
Transformer | Sostituisce l'intero trasformatore. Impostato su Type per RAW rimuovere un metadata o un trasformatore JSonata. |
RetryPolicy | Sostituisce l'intera politica sui nuovi tentativi. Un membro omesso assume il valore predefinito: 5 tentativi di nuovo tentativo, 300 secondi e, l'unico valore RetryStrategyALL, che riprova tutte le categorie di errori. |
OnFailureConfiguration | Sostituisce l'intera configurazione in caso di errore. Invia {} per rimuovere la destinazione; senza destinazione, un evento viene eliminato quando i tentativi sono esauriti. |
LogConfiguration | Sostituisce l'intera configurazione di registrazione. Invia {} per ripristinare le impostazioni predefinite e disattiva la Level OFF registrazione delle IncludePayload ON_ERROR_ONLY consegne. |
Name,,EventBusArn, Type StartingPositionPointInTimeConfiguration, e TargetArn identifica l'abbonato o ne fissa il punto di partenza e non può essere modificato; i tag cambiano tramite e. TagResource UntagResource La risposta di aggiornamento riporta l'identità, lo stato, la posizione di partenza dell'abbonato eLastModifiedTime; rileggi la configurazione con. DescribeSubscriber
Un aggiornamento non sposta mai la posizione dell'abbonato sul bus: non viene riavvolto, saltato o riprodotto. Per restituire gli eventi passati con una nuova configurazione, crea invece un nuovo abbonato con una posizione di partenza; vedi. Riproduzione degli eventi conservati a un abbonato
Risoluzione dei problemi: un aggiornamento ha cancellato le impostazioni che non hai modificato
Un aggiornamento sostituisce ogni oggetto di configurazione fornito nel suo insieme; vedi. Cosa puoi cambiare
- Caratteristiche
Dopo un aggiornamento, il filtro, l'impostazione del registro, il limite di tentativi o il periodo di conservazione che non hai toccato tornano ai valori predefiniti e non è stato restituito alcun errore.
- Causa
Un aggiornamento lascia invariato un membro di primo livello omesso ma sostituisce l'intero blocco fornito. Un aggiornamento che supera
FilterConfigurationo modifica un campo cancellaStorageConfigurationgli altri campi del blocco.LogConfigurationRetryPolicyUna fonte di eventi aggiornata senza chePatternvenga restituita senza alcun modello, il che la estende a ogni evento.- Soluzione
Leggi la risorsa, modifica l'intero blocco, riscrivi l'intero blocco, quindi rileggilo. La lettura è l'unica conferma, perché le risposte di creazione e aggiornamento non fanno eco a tutti i campi.
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
La seconda descrizione mostra tutti i campi del blocco con i valori desiderati.
Aggiornamento dei filtri
Per sostituire i filtri, passa un campo FilterConfiguration il cui Filters elenco contiene tutti i filtri che l'abbonato dovrebbe avere; EventBridge combina i filtri per diversi ambiti con AND. Per rimuovere tutti i filtri, passa FilterConfiguration come. {}
| Richiesta | Risultato |
|---|---|
FilterConfigurationomesso | I filtri memorizzati rimangono |
FilterConfiguration è {} | Ogni filtro memorizzato viene rimosso |
Filtersè una lista non vuota | L'elenco è convalidato e sostituisce l'intera configurazione del filtro |
Filtersè una lista vuota o Language viene fornita senza Filters | InvalidInputException; una fornitura FilterConfiguration deve contenere almeno un filtro |
Le modifiche ai filtri sono limitate a 24 per abbonato in 24 ore consecutive. Conta solo una modifica all'insieme di ambiti e modelli; inviarne nuovamente uno identico no. FilterConfiguration La 25a modifica fallisce con. FILTER_CHANGE_LIMIT_EXCEEDED Questo limite non è una quota di servizio e non può essere aumentato, quindi un progetto che riscrive continuamente i filtri dovrebbe invece pubblicare il valore variabile nell'evento e filtrarlo una volta.
Quale configurazione utilizza un evento già abbinato
EventBridge abbina un evento a un abbonato e lo invia in momenti diversi e registra quale versione dei filtri corrisponde a ciascun evento. Un aggiornamento che modifica la corrispondenza dei filtri crea una nuova versione del filtro e EventBridge memorizza con essa i parametri del trasformatore e del target. Un evento confrontato prima della modifica con i vecchi parametri del trasformatore e di destinazione; un evento che corrisponde dopo l'utilizzo di quelli nuovi. Lo stesso vale dopo che un abbonato si interrompe e riprende.
| Aggiornamento del filtro | Crea una nuova versione del filtro |
|---|---|
| Modificare un pattern | Sì |
| Modificare gli ambiti dotati di un filtro | Sì |
| Aggiungere il primo filtro | Sì |
| Cancellazione di tutti i filtri | Sì, quando i filtri sono stati memorizzati |
| Riordinare i filtri equivalenti | No |
Solo modifiche Language | No |
Quindi, quando un filtro e un trasformatore o un parametro di destinazione formano un comportamento, modificali nella stessa richiesta. La richiesta seguente associa un nuovo DATA filtro al trasformatore scritto per esso, quindi nessun evento viene consegnato con una coppia non corrispondente.
{ "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} %}" } } }
Un aggiornamento che modifica solo il trasformatore o i parametri di destinazione non crea alcuna versione del filtro. Una volta propagata, la nuova configurazione si applica agli eventi ancora in attesa di consegna e ai successivi tentativi di riprova. Il ruolo di consegna, la politica di ripetizione, la destinazione in caso di errore, il batch e la configurazione di registrazione assumono sempre gli ultimi valori propagati, indipendentemente dalla versione corrispondente all'evento. Poiché è in EventBridge grado di valutare nuovamente i parametri del trasformatore e di destinazione per un nuovo tentativo, una funzione JSonata dipendente dal tempo o non deterministica, ad esempio, $now() può produrre un risultato diverso a ogni tentativo; non date per scontato che una richiesta ritentata contenga byte identici.
UpdateSubscribermemorizza la modifica prima che venga restituita e i componenti di consegna la raccolgono dopo un ritardo di propagazione, durante il quale gli eventi possono ancora utilizzare la configurazione precedente. DescribeSubscriberconferma ciò che è memorizzato, non che tutti i componenti siano cambiati. Dopo un aggiornamento, pubblicate un evento di test e controllate il payload di destinazione prima di affidarvi al nuovo comportamento.
La creazione o l'eliminazione di un solo abbonato alla volta su un bus, su ogni account che lo utilizza; una chiamata simultanea ha esito negativo. ConcurrentModificationException Riprova.
Sospensione e ripristino
Un abbonato effettua la consegna solo finché lo è. State RUNNING Impostalo su pausa; gli eventi continuano ad accumularsi sul bus, limitati dalla ritenzione. STOPPED Quando lo imposti suRUNNING, ResumePosition decide cosa succede al backlog.
-
LAST_PROCESSED, impostazione predefinita: continua dal punto in cui è stata interrotta la consegna, in modo che ogni evento pubblicato mentre l'abbonato è stato interrotto venga recapitato, partendo dal più vecchio. -
LATEST: salta il backlog e fornisci solo gli eventi pubblicati d'ora in poi. Un abbonato che sta riproducendo non può utilizzarlo: un replay a tempo indeterminato sta ancora recuperando terreno e un replay limitato non raggiunge mai gli eventi live.
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
ResumePositionviene accettata solo nella chiamata che sposta lo stato da a. STOPPED RUNNING Questa chiamata rende EventBridge innanzitutto nuovamente individuabile l'endpoint di consegna dell'abbonato; se questo passaggio ha esito negativo, la chiamata ritornaInternalException, non viene salvato nulla e l'abbonato rimaneSTOPPED, quindi riprova la richiesta. Un abbonato revocato dal proprietario dell'autobus non effettua consegne in nessuno dei due stati; vedi. Revoca di un abbonato o di una fonte di eventi
Errori che un aggiornamento può restituire
EventBridge convalida la configurazione aggiornata rispetto al tipo di destinazione memorizzato dell'abbonato, quindi un SqsParameters blocco su un abbonato il cui obiettivo è una funzione Lambda viene rifiutato.
| Condizione | Errore |
|---|---|
| L'abbonato non esiste | ResourceNotFoundException |
| L'abbonato viene revocato | InvalidStateException |
| La richiesta ha più di un blocco di parametri di destinazione | InvalidInputException |
| I parametri di destinazione non corrispondono al tipo di destinazione memorizzato | InvalidInputException |
| Il trasformatore non è supportato per il target | InvalidInputException |
| Un'espressione JSonata non è valida | InvalidInputException |
| Un valore di batch non rientra nei limiti del target | InvalidInputException |