Instruções da CLI para a criação de um canal do IVS - Amazon IVS

Instruções da CLI para a criação de um canal do IVS

A criação de um canal com a AWS CLI é uma opção avançada e exige que você faça o download e configure a CLI em sua máquina primeiro. Para obter mais detalhes, consulte o Guia do usuário da Interface de Linhas de Comando da AWS.

Siga um dos dois procedimentos abaixo, dependendo se você deseja criar um canal com ou sem gravação habilitada.

Crie um canal sem gravação

  1. Execute o comando create-channel e o submeta em um nome opcional:

    aws ivs create-channel --name test-channel
  2. Isso retorna um novo canal:

    { "channel": { "arn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", "authorized": false, "ingestEndpoint": "a1b2c3d4e5f6.global-contribute.live-video.net", "insecureIngest": false, "latencyMode": "LOW", "name": "channel-live", "playbackRestrictionPolicyArn": "arn:aws:ivs:us-west-2:123456789012:playback-restriction-policy/abcdABCDefgh", "playbackUrl": "https://a1b2c3d4e5f6.us-west-2.playback.live-video.net/api/video/v1/us-west-2.123456789012.channel.abcdEFGH.m3u8", "recordingConfigurationArn": "none", "srt": { "endpoint": "a1b2c3d4e5f6.srt.live-video.net", "passphrase: "ZU5A3yrjGAkghUNDr0c5NXBhsPrjlmtcKMNBluh7oImwJQ3ijeyClvMKxlpPcGAMziICJ", }, "tags": {}, "type": "STANDARD" }, "streamKey": { "arn": "arn:aws:ivs:us-west-2:123456789012:stream-key/g1H2I3j4k5L6", "channelArn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", "tags": {}, "value": "sk_us-west-2_abcdABCDefgh_567890abcdef" } }
  3. Importante: observe ingestEndpoint, streamKey value e playbackUrl. Você os usará para configurar o streaming e a reprodução.

Crie um canal com gravação

Pré-requisito: antes de iniciar esse procedimento, crie um bucket do Amazon S3 e anote o ARN. Consulte os Conceitos básicos do Amazon S3. O bucket do S3 deve estar na mesma região em que você criará uma configuração de gravação; consulte o problema conhecido na Etapa 1 abaixo.

Em seguida, siga as etapas a seguir para criar o canal:

  1. Execute o comando create-recording-configuration e o submeta no ARN de um bucket existente do Amazon S3:

    aws ivs create-recording-configuration --name configuration-1 --destination-configuration s3={bucketName=test-bucket}

    Você também pode mudar o parâmetro thumbnail-configuration para definir manualmente o modo de gravação em miniatura e o intervalo de miniaturas:

    aws ivs create-recording-configuration --name configuration-1 --destination-configuration s3={bucketName=s3_bucket_name} --thumbnail-configuration recordingMode="INTERVAL",targetIntervalSeconds=60

    Opcionalmente, passe o parâmetro recording-reconnect-window-seconds para habilitar a funcionalidade de mesclar fluxos fragmentados:

    aws ivs create-recording-configuration --name configuration-1 --destination-configuration s3={bucketName=test-bucket} --recording-reconnect-window-seconds 60

    Problema conhecido: na região us-east-1, se você usar a AWS CLI para criar uma configuração de gravação, como retorno, receberá uma notificação de sucesso, mesmo que o bucket do S3 esteja em uma região diferente. Nesse caso, o state da configuração de gravação é CREATE_FAILED (em vez de ACTIVE). (Em outras regiões, a CLI retornará corretamente a falha se o bucket estiver em uma região diferente).

    Solução alternativa: verifique se o seu bucket do S3 está na mesma região que a configuração de gravação. Se você criar uma configuração de gravação em uma região diferente do bucket do S3, exclua essa configuração de gravação e crie uma nova com um bucket do S3 associado à região correta.

  2. Isso retorna uma nova configuração de gravação com um ARN exclusivo. O estado da configuração de gravação é CREATING, o que indica que está em processo de criação.

    { "recordingConfiguration": { "arn": "arn:aws:ivs:us-west-2:123456789012:recording-configuration/mhndauNaO1te", "name": "configuration-1", "destinationConfiguration": { "s3": { "bucketName": "s3_bucket_name" } }, "recordingReconnectWindowSeconds": 60, "state": "CREATING", "tags": {}, "thumbnailConfiguration": { "recordingMode": "INTERVAL", "targetIntervalSeconds": 60 } } }
  3. Normalmente, a criação da configuração de gravação leva alguns segundos, mas pode demorar até 20 segundos. Para verificar se a configuração de gravação foi criada, execute o comando get-recording-configuration:

    aws ivs get-recording-configuration --arn "arn:aws:ivs:us-west-2:123456789012:recording-configuration/mhndauNaO1te"
  4. Isso retornará uma resposta indicando que a configuração de gravação foi criada (o state está ACTIVE):

    { "recordingConfiguration": { "arn": "arn:aws:ivs:us-west-2:123456789012:recording-configuration/mhndauNaO1te", "name": "configuration-1", "destinationConfiguration": { "s3": { "bucketName": "s3_bucket_name" } }, "recordingReconnectWindowSeconds": 60, "state": "ACTIVE", "tags": {}, "thumbnailConfiguration": { "recordingMode": "INTERVAL", "targetIntervalSeconds": 60 } } }
  5. Para criar um canal e habilitar a gravação nele, execute o comando create-channel e o submeta no ARN de configuração de gravação:

    aws ivs create-channel --name channel-live --recording-configuration-arn "arn:aws:ivs:us-west-2:123456789012:recording-configuration/mhndauNaO1te"

    Como alternativa, para habilitar a gravação em um canal existente, execute o comando update-channel e o submeta no ARN de configuração de gravação:

    aws ivs update-channel --arn "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh" --recording-configuration-arn "arn:aws:ivs:us-west-2:123456789012:recording-configuration/mhndauNaO1te"
  6. Isso retorna um objeto de canal com um valor diferente de “nenhum” para recordingConfigurationArn, o que indica que a gravação está habilitada. (A resposta abaixo refere-se ao create-channel. A resposta update-channel não inclui o objeto streamKey).

    { "channel": { "arn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", "authorized": false, "ingestEndpoint": "a1b2c3d4e5f6.global-contribute.live-video.net", "insecureIngest": false, "latencyMode": "LOW", "name": "channel-live", "playbackUrl": "https://a1b2c3d4e5f6.us-west-2.playback.live-video.net/api/video/v1/us-west-2.123456789012.channel.abcdEFGH.m3u8", "recordingConfigurationArn": "arn:aws:ivs:us-west-2:123456789012:recording-configuration/mhndauNaO1te", "srt": { "endpoint": "a1b2c3d4e5f6.srt.live-video.net", "passphrase: "ZU5A3yrjGAkghUNDr0c5NXBhsPrjlmtcKMNBluh7oImwJQ3ijeyClvMKxlpPcGAMziICJ", }, "tags": {}, "type": "STANDARD" }, "streamKey": { "arn": "arn:aws:ivs:us-west-2:123456789012:stream-key/g1H2I3j4k5L6", "channelArn": "arn:aws:ivs:us-west-2:123456789012:channel/abcdABCDefgh", "tags": {}, "value": "sk_us-west-2_abcdABCDefgh_567890abcdef" } }
  7. Importante: observe ingestEndpoint, streamKey value e playbackUrl. Você os usará para configurar o streaming e a reprodução.