

# Instruções da CLI para a criação de um canal do IVS
<a name="create-channel-cli"></a>

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](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html).

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
<a name="getting-started-create-channel-cli-no-recording"></a>

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

   ```
   aws ivs create-channel --name test-channel
   ```

1. 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"
      }
   }
   ```

1. **Importante**: observe `ingestEndpoint`, `streamKey value` e `playbackUrl`. Você os usará para configurar o streaming e a reprodução.

## Crie um canal com gravação
<a name="getting-started-create-channel-cli-recording"></a>

**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](https://docs.aws.amazon.com//AmazonS3/latest/userguide/GetStartedWithS3.html). 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.

1. 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
         }
      }
   }
   ```

1. 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"
   ```

1. 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
         }
      }
   }
   ```

1. 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"
   ```

1. 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"
      }
   }
   ```

1. **Importante**: observe `ingestEndpoint`, `streamKey value` e `playbackUrl`. Você os usará para configurar o streaming e a reprodução.