Utilizzo di Amazon EventBridge con lo streaming in tempo reale IVS
È possibile utilizzare Amazon EventBridge per monitorare i propri flussi Amazon Interactive Video Service (IVS).
Amazon IVS invia eventi di modifica relativi allo stato dei flussi ad Amazon EventBridge. Tutti gli eventi che vengono consegnati sono validi. Tuttavia, gli eventi vengono inviati sulla base del miglior tentativo il che significa che non vi è alcuna garanzia che:
-
Gli eventi vengano consegnati: può verificarsi un determinato evento (ad esempio, un partecipante ha pubblicato qualcosa), ma è possibile che Amazon IVS non invii un evento di modifica corrispondente a EventBridge. Amazon IVS tenta di consegnare gli eventi per diverse ore prima di smettere.
-
Gli eventi che vengono consegnati arriveranno in un periodo di tempo specificato: la ricezione di eventi è possibile fino a poche ore prima.
-
Gli eventi vengono consegnati in ordine; gli eventi possono non essere ordinati, soprattutto se vengono inviati entro un breve periodo di tempo l'uno dall'altro. Ad esempio, potresti vedere il partecipante non pubblicato prima della pubblicazione effettiva del partecipante.
Sebbene sia raro che gli eventi siano mancanti, in ritardo o fuori sequenza, è consigliabile essere pronti a queste possibilità se si scrivono programmi business-critical che dipendono dall'ordine o dall'esistenza degli eventi di notifica.
È possibile creare regole EventBridge per qualsiasi evento tra quelli riportati di seguito.
Tipo di evento | Evento | Inviato quando… |
---|---|---|
Modifica dello stato di composizione dell'IVS | Errore destinazione | Un tentativo di invio a una destinazione non riuscito. Ad esempio, la trasmissione su un canale non è riuscita perché non c'era una chiave di streaming o era in corso un'altra trasmissione. |
Modifica dello stato di composizione dell'IVS | Inizio destinazione | L'output verso una destinazione è stato avviato correttamente. |
Modifica dello stato di composizione dell'IVS | Fine destinazione | L'output verso una destinazione è terminato. |
Modifica dello stato di composizione dell'IVS | Riconnessione della destinazione | L'output verso una destinazione è stato interrotto ed è in corso un tentativo di riconnessione. |
Modifica dello stato di composizione dell'IVS | Inizio sessione | È stata creata una sessione di composizione. Questo evento si attiva quando una pipeline del processo di composizione viene inizializzata correttamente. A questo punto, la pipeline di composizione è stata registrata correttamente per una fase, riceve contenuti multimediali ed è in grado di comporre video. |
Modifica dello stato di composizione dell'IVS | Fine sessione | Una sessione di composizione è stata completata. |
Modifica dello stato di composizione dell'IVS | Errore sessione | Impossibile inizializzare una pipeline di composizione a causa della mancata disponibilità delle risorse della fase o di qualsiasi altro errore interno. |
Modifica dello stato di registrazione dei partecipanti in IVS | Avvio della registrazione | Un publisher si è collegato alla fase e viene registrato su S3. |
Modifica dello stato di registrazione dei partecipanti in IVS | Fine della registrazione | Un publisher si è disconnesso dalla fase e tutti i file rimanenti sono stati scritti su S3. |
Modifica dello stato di registrazione dei partecipanti in IVS | Errore di avvio della registrazione | Un publisher si connette alla fase ma la registrazione non viene avviata a causa di errori (ad esempio, il bucket S3 non esiste o non si trova nella regione corretta). Lo streaming in diretta di questo publisher non viene registrato. |
Modifica dello stato di registrazione dei partecipanti in IVS | Errore di fine della registrazione | La registrazione termina con un errore a causa di errori riscontrati durante il processo (ad esempio, se il tentativo di scrivere una playlist multimediale si blocca di continuo). Alcuni oggetti possono ancora essere scritti nel percorso di storage configurato. |
Aggiornamento della fase IVS | Partecipante pubblicato | Un partecipante inizia a pubblicare in una fase. |
Aggiornamento della fase IVS | Partecipante non pubblicato | Un partecipante ha interrotto la pubblicazione in una fase. |
Aggiornamento della fase IVS | Errore di pubblicazione del partecipante | Il tentativo di pubblicazione su una fase da parte di un partecipante non è riuscito. |
Creazione delle regole Amazon EventBridge per Amazon IVS
È possibile creare una regola che si attiva con un evento generato da Amazon IVS. Completa le operazioni riportate in Crea una regola in Amazon EventBridge nella Guida per l'utente di Amazon EventBridge. Quando si seleziona un servizio, seleziona Interactive Video Service (IVS).
Esempi: Modifica dello stato di composizione
Errore di destinazione: questo evento viene inviato quando un tentativo di output verso una destinazione non riesce. Ad esempio, la trasmissione su un canale non è riuscita perché non c'era una chiave di streaming o era in corso un'altra trasmissione.
{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Composition State Change", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:composition/123456789012" ], "detail": { "event_name": "Destination Failure", "stage_arn": "<stage-arn>", "id": "<Destination-id>", "reason": "eg. stream key invalid" } }
Inizio destinazione: questo evento viene inviato quando l'output verso una destinazione è stato avviato correttamente.
{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Composition State Change", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:composition/123456789012" ], "detail": { "event_name": "Destination Start", "stage_arn": "<stage-arn>", "id": "<destination-id>", } }
Fine destinazione: questo evento viene inviato quando l'output verso una destinazione è terminato.
{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Composition State Change", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:composition/123456789012" ], "detail": { "event_name": "Destination End", "stage_arn": "<stage-arn>", "id": "<Destination-id>", } }
Riconnessione della destinazione: questo evento viene inviato quando l'output verso una destinazione è stato interrotto e viene tentata una riconnessione.
{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Composition State Change", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:composition/123456789012" ], "detail": { "event_name": "Destination Reconnecting", "stage_arn": "<stage-arn>", "id": "<Destination-id>", } }
Inizio sessione: questo evento viene inviato quando è stata creata una sessione di composizione. Questo evento si attiva quando una pipeline del processo di composizione viene inizializzata correttamente. A questo punto, la pipeline di composizione è stata registrata correttamente per una fase, riceve contenuti multimediali ed è in grado di comporre video.
{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Composition State Change", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:composition/123456789012" ], "detail": { "event_name": "Session Start", "stage_arn": "<stage-arn>" } }
Fine sessione: questo evento viene inviato quando viene completata una sessione di composizione e tutte le risorse sono state eliminate.
{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Composition State Change", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:composition/123456789012" ], "detail": { "event_name": "Session End", "stage_arn": "<stage-arn>" } }
Errore della sessione: questo evento viene inviato quando non è possibile inizializzare una pipeline di composizione a causa della mancata disponibilità delle risorse della fase, dell'assenza di partecipanti alla fase o di qualsiasi altro errore interno.
{ "version": "0", "id": "01234567-0123-0123-0123-012345678901", "detail-type": "IVS Composition State Change", "source": "aws.ivs", "account": "aws_account_id", "time": "2017-06-12T10:23:43Z", "region": "us-east-1", "resources": [ "arn:aws:ivs:us-east-1:aws_account_id:composition/123456789012" ], "detail": { "event_name": "Session Failure", "stage_arn": "<stage-arn>", "reason": "eg. no participants in the stage" } }
Esempi: modifica dello stato di registrazione di singoli partecipanti
Avvio della registrazione: questo evento viene inviato quando un publisher si è collegato alla fase e viene registrato su S3.
{ "version": "0", "id": "12345678-1a23-4567-a1bc-1a2b34567890", "detail-type": "IVS Participant Recording State Change", "source": "aws.ivs", "account": "123456789012", "time": "2024-03-13T22:09:58Z", "region": "us-east-1", "resources": ["arn:aws:ivs:us-west-2:aws_account_id:stage/AbCdef1G2hij"], "detail": { "session_id": "st-ZyXwvu1T2s", "event_name": "Recording Start", "participant_id": "xYz1c2d3e4f", "recording_s3_bucket_name": "bucket-name", "recording_s3_key_prefix": "<stage_id>/<session_id>/<participant_id>/2024-01-01T12-00-55Z" } }
Fine della registrazione: questo evento viene inviato quando un publisher si è disconnesso dalla fase e tutti i file rimanenti sono stati scritti su S3.
{ "version": "0", "id": "12345678-1a23-4567-a1bc-1a2b34567890", "detail-type": "IVS Participant Recording State Change", "source": "aws.ivs", "account": "123456789012", "time": "2024-03-13T22:19:04Z", "region": "us-east-1", "resources": ["arn:aws:ivs:us-west-2:aws_account_id:stage/AbCdef1G2hij"], "detail": { "session_id": "st-ZyXwvu1T2s", "event_name": "Recording End", "participant_id": "xYz1c2d3e4f", "recording_s3_bucket_name": "bucket-name", "recording_s3_key_prefix": "<stage_id>/<session_id>/<participant_id>/2024-01-01T12-00-55Z" "recording_duration_ms": 547327 } }
Errore durante l'avvio della registrazione: questo evento viene inviato quando un un publisher si connette alla fase ma la registrazione non viene avviata a causa di errori (ad esempio, il bucket S3 non esiste o non si trova nella regione corretta). Lo streaming in diretta di questo publisher non viene registrato.
{ "version": "0", "id": "12345678-1a23-4567-a1bc-1a2b34567890", "detail-type": "IVS Participant Recording State Change", "source": "aws.ivs", "account": "123456789012", "time": "2024-03-13T22:09:58Z", "region": "us-east-1", "resources": ["arn:aws:ivs:us-west-2:aws_account_id:stage/AbCdef1G2hij"], "detail": { "session_id": "st-ZyXwvu1T2s", "event_name": "Recording Start Failure", "participant_id": "xYz1c2d3e4f", "recording_s3_bucket_name": "bucket-name", "recording_s3_key_prefix": "<stage_id>/<session_id>/<participant_id>/2024-01-01T12-00-55Z" } }
Errore durante la fine della registrazione: la registrazione termina con un errore a causa di errori riscontrati durante il processo (ad esempio, se il tentativo di scrivere una playlist master non va a buon fine). Alcuni oggetti possono ancora essere scritti nel percorso di storage configurato.
{ "version": "0", "id": "12345678-1a23-4567-a1bc-1a2b34567890", "detail-type": "IVS Participant Recording State Change", "source": "aws.ivs", "account": "123456789012", "time": "2024-03-13T22:19:04Z", "region": "us-east-1", "resources": ["arn:aws:ivs:us-west-2:aws_account_id:stage/AbCdef1G2hij"], "detail": { "session_id": "st-ZyXwvu1T2s", "event_name": "Recording End Failure", "participant_id": "xYz1c2d3e4f", "recording_s3_bucket_name": "bucket-name", "recording_s3_key_prefix": "<stage_id>/<session_id>/<participant_id>/2024-01-01T12-00-55Z" "recording_duration_ms": 547327 } }
Esempi: aggiornamenti della fase
Gli eventi di aggiornamento della fase includono un nome dell'evento (che classifica l'evento) e i metadati relativi all'evento. I metadati includono l'ID del partecipante che ha attivato l'evento, gli ID di fase e sessione associati e l'ID utente.
Partecipante pubblicato: questo evento viene inviato quando un partecipante inizia la pubblicazione in una fase.
{ "version": "0", "id": "12345678-1a23-4567-a1bc-1a2b34567890", "detail-type": "IVS Stage Update", "source": "aws.ivs", "account": "123456789012", "time": "2020-06-23T20:12:36Z", "region": "us-west-2", "resources": [ "arn:aws:ivs:us-west-2:123456789012:stage/AbCdef1G2hij" ], "detail": { "session_id": "st-ZyXwvu1T2s", "event_name": "Participant Published", "user_id": "Your User Id", "participant_id": "xYz1c2d3e4f" } }
Partecipante non pubblicato: questo evento viene inviato quando un partecipante ha interrotto la pubblicazione in una fase.
{ "version": "0", "id": "12345678-1a23-4567-a1bc-1a2b34567890", "detail-type": "IVS Stage Update", "source": "aws.ivs", "account": "123456789012", "time": "2020-06-23T20:12:36Z", "region": "us-west-2", "resources": [ "arn:aws:ivs:us-west-2:123456789012:stage/AbCdef1G2hij" ], "detail": { "session_id": "st-ZyXwvu1T2s", "event_name": "Participant Unpublished", "user_id": "Your User Id", "participant_id": "xYz1c2d3e4f" } }
Errore di pubblicazione del partecipante: questo evento viene inviato quando il tentativo di un partecipante di pubblicare in una fase ha esito negativo.
{ "version": "0", "id": "12345678-1a23-4567-a1bc-1a2b34567890", "detail-type": "IVS Stage Update", "source": "aws.ivs", "account": "123456789012", "time": "2020-06-23T20:12:36Z", "region": "us-west-2", "resources": [ "arn:aws:ivs:us-west-2:123456789012:stage/AbCdef1G2hij" ], "detail": { "session_id": "st-ZyXwvu1T2s", "event_name": "Participant Publish Error", "event_time": "2024-08-13T14:38:17.089061676Z", "user_id": "Your User Id", "participant_id": "xYz1c2d3e4f", "error_code": "BITRATE_EXCEEDED" } }