Uso do Amazon EventBridge com o streaming em tempo real do IVS
Você pode usar o Amazon EventBridge para monitorar seus streams do Amazon Interactive Video Service (IVS).
O Amazon IVS envia eventos de alteração sobre o status de seus streams para o Amazon EventBridge. Todos os eventos que são fornecidos são válidos. No entanto, os eventos são enviados em uma base de melhor esforço, o que significa que não há garantia de que:
-
Os eventos serão entregues: um evento designado pode ocorrer (por exemplo, um participante realiza uma publicação), mas é possível que o Amazon IVS não envie um evento correspondente para o EventBridge. O Amazon IVS tenta entregar eventos por várias horas antes de desistir.
-
Os eventos que são entregues vão chegar em um período especificado: você pode receber eventos com até algumas horas de atraso.
-
Os eventos serão entregues em ordem: os eventos podem estar fora de ordem, especialmente se forem enviados com um curto intervalo de tempo. Por exemplo, você poderá ver participante não publicado antes de visualizá-lo como publicado.
Embora seja raro que os eventos estejam ausentes, atrasados ou fora de sequência, você deve lidar com essas possibilidades se você escrever programas críticos para os negócios que dependem da ordem ou da existência de eventos de notificação.
Você pode criar regras do EventBridge para qualquer um dos seguintes eventos.
Tipo de evento | Evento | Enviado quando … |
---|---|---|
Alteração do estado de composição do IVS | Falha no destino | Uma tentativa de envio para um destino falhou. Por exemplo, a transmissão para um canal falhou porque não havia chave de transmissão ou porque outra transmissão estava acontecendo. |
Alteração do estado de composição do IVS | Início do destino | A saída para um destino foi iniciada com sucesso. |
Alteração do estado de composição do IVS | Fim do destino | Conclusão da saída para um destino. |
Alteração do estado de composição do IVS | Reconexão de destino | A saída para um destino foi interrompida e há uma tentativa de reconexão em andamento. |
Alteração do estado de composição do IVS | Início da sessão | Uma sessão de composição foi criada. Esse evento é acionado quando um pipeline de processo de composição é inicializado com sucesso. Nesse momento, o funil de composição terá feito a inscrição com sucesso em um palco, estará recebendo mídia e será capaz de compor vídeos. |
Alteração do estado de composição do IVS | Término da sessão | Uma sessão de composição concluída. |
Alteração do estado de composição do IVS | Falha na sessão | Falha na inicialização de um pipeline de composição devido à indisponibilidade dos recursos do palco ou a qualquer outro erro interno. |
Alteração do estado da gravação do participante do IVS | Iniciar gravação | Um publicador se conectou ao palco e está sendo gravado no S3. |
Alteração do estado da gravação do participante do IVS | Término da gravação | Um publicador se desconectou do palco e todos os arquivos restantes foram gravados no S3. |
Alteração do estado da gravação do participante do IVS | Falha ao iniciar gravação | Um publicador se conecta ao palco, mas a gravação falha ao iniciar devido a erros (por exemplo, o bucket do S3 não existe ou não está na região correta). A transmissão ao vivo do publicador não é gravada |
Alteração do estado da gravação do participante do IVS | Falha ao final do registro | A gravação é encerrada com falha devido a erros encontrados durante a gravação (por exemplo, se a tentativa de gravar uma lista de reprodução de mídia falhou continuamente). Alguns objetos ainda podem ser gravados no local de armazenamento configurado. |
Atualização de palco do IVS | Publicação por participante | Um participante começa a publicar em um palco. |
Atualização de palco do IVS | Publicação interrompida por participante | Um participante parou de publicar em um palco. |
Atualização de palco do IVS | Erro de publicação do participante | A tentativa de um participante de publicar em um palco falhou. |
Criação de regras do Amazon EventBridge para o Amazon IVS
Você pode criar uma regra do que é acionado em um evento emitido pelo Amazon IVS. Siga as etapas em Create a rule in Amazon EventBridge no Guia do usuário do Amazon EventBridge. Ao selecionar um serviço, escolha Interactive Video Service (IVS).
Exemplos: alteração do estado de composição do IVS
Falha no destino: esse evento é enviado quando uma tentativa de saída para um destino falha. Por exemplo, a transmissão para um canal falhou porque não havia chave de transmissão ou porque outra transmissão estava acontecendo.
{ "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" } }
Início do destino: esse evento é enviado quando a saída para um destino é iniciada com sucesso.
{ "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>", } }
Fim do destino: esse evento é enviado quando a saída para um destino é concluída.
{ "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>", } }
Reconexão de destino: esse evento é enviado quando a saída para um destino é interrompida e há uma tentativa de reconexão.
{ "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>", } }
Início da sessão: esse evento é enviado quando uma sessão de composição foi criada. Esse evento é acionado quando um pipeline de processo de composição é inicializado com sucesso. Nesse momento, o funil de composição terá feito a inscrição com sucesso em um palco, estará recebendo mídia e será capaz de compor vídeos.
{ "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>" } }
Fim da sessão: esse evento é enviado quando uma sessão de composição é concluída e todos os recursos são excluídos.
{ "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>" } }
Falha na sessão: esse evento é enviado quando um pipeline de composição falha na inicialização devido à falta de recursos do palco, à falta de participantes no palco ou a qualquer outro erro 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" } }
Exemplos: alteração do estado da gravação individual de participante
Início da gravação: este evento é enviado quando um publicador se conecta ao palco e está sendo gravado no 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" } }
Término da gravação: este evento é enviado quando um publicador se desconecta do palco e todos os arquivos restantes foram gravados no 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 } }
Falha no início da gravação: este evento é enviado quando um publicador se conecta ao palco, mas a gravação falha ao iniciar devido a erros (por exemplo, o bucket do S3 não existe ou não está na região correta). A transmissão ao vivo do publicador não é gravada.
{ "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" } }
Falha no término da gravação: este evento é enviado quando a gravação termina com falha devido a erros encontrados durante a gravação (por exemplo, se a tentativa de gravar uma lista de reprodução primária falhou). Alguns objetos ainda podem ser gravados no local de armazenamento configurado.
{ "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 } }
Exemplos: atualização de palco
Os eventos de atualização de palco incluem um nome de evento (que classifica o evento) e metadados sobre o evento. Os metadados incluem o ID do participante que acionou o evento, os IDs de sessão e palco associados e o ID do usuário.
Publicação por participante: este evento é enviado quando um participante começa a publicar em um palco.
{ "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" } }
Publicação interrompida por participante: este evento é enviado quando um participante para de publicar em um palco.
{ "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" } }
Erro de publicação do participante: este evento é enviado quando a tentativa de um participante de publicar em um palco falha.
{ "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" } }