

# Instructions de CLI pour la création d’un canal IVS
<a name="create-channel-cli"></a>

La création d'un canal avec l'AWS CLI est une option avancée et nécessite le téléchargement et la configuration de la CLI sur votre machine. Pour plus de détails, consultez le [‬Guide de l’utilisateur de l’Interface de ligne de commande AWS‭](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html).

Suivez l'une des deux procédures ci-dessous en fonction de ce que vous souhaitez : créer un canal avec ou sans enregistrement.

## Créer un canal sans enregistrement
<a name="getting-started-create-channel-cli-no-recording"></a>

1. Exécutez la commande `create-channel` et renseignez un nom (facultatif).

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

1. Cela renvoie un nouveau 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. **Important** : notez les valeurs `ingestEndpoint`, `streamKey value` et `playbackUrl`. Elles vous seront utiles pour configurer le streaming et la lecture.

## Créer un canal avec enregistrement
<a name="getting-started-create-channel-cli-recording"></a>

**Prérequis :** avant de commencer cette procédure, créez un compartiment Amazon S3 et notez l'ARN. Consultez [Mise en route avec Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/GetStartedWithS3.html). Le compartiment S3 doit se trouver dans la même région que la configuration d'enregistrement. Prenez connaissance du problème rencontré à l'étape 1 ci-dessous.

Suivez ensuite ces étapes pour créer le canal :

1. Exécutez la commande `create-recording-configuration` et renseignez l’ARN d’un compartiment Amazon S3 existant :

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

   Vous pouvez également passer le paramètre `thumbnail-configuration` pour définir manuellement le mode d’enregistrement des miniatures et l’intervalle entre les miniatures :

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

   Si vous le souhaitez, transmettez le paramètre `recording-reconnect-window-seconds` permettant d'activer la fonctionnalité de fusion de flux fragmentés :

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

   **Problème connu :** dans la région us-east-1, si vous utilisez l'AWS CLI pour créer une configuration d'enregistrement, cela fonctionne même si le compartiment S3 se trouve dans une autre région. Le cas échéant, la valeur `state` de la configuration d'enregistrement est la suivante : `CREATE_FAILED` (et non `ACTIVE`). (Dans d'autres régions, la CLI bloque l'action si le compartiment est dans une autre région.)

   **Solution de contournement :** assurez-vous que votre compartiment S3 se trouve dans la même région que la configuration d'enregistrement. Si vous créez une configuration d’enregistrement dans une autre région que votre compartiment S3, supprimez-la et créez-en une nouvelle avec un compartiment S3 dans la bonne région.

1. Cette action renvoie une nouvelle configuration d’enregistrement avec un ARN unique. La configuration d’enregistrement affiche le statut « `CREATING` », ce qui signifie qu’elle est en cours de création.

   ```
   {
      "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. La création d’une configuration d’enregistrement ne prend que quelques secondes, mais cela peut aller jusqu’à 20 secondes. Pour vérifier que la configuration d’enregistrement a été créée, exécutez la commande `get-recording-configuration` :

   ```
   aws ivs get-recording-configuration --arn "arn:aws:ivs:us-west-2:123456789012:recording-configuration/mhndauNaO1te"
   ```

1. Cette action renvoie une réponse indiquant que la configuration d’enregistrement a été créée (`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. Pour créer un canal et activer l’enregistrement sur ce dernier, exécutez la commande `create-channel` et indiquez l’ARN de configuration d’enregistrement :

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

   De la même façon, pour activer l’enregistrement sur un canal existant, exécutez la commande `update-channel` et indiquez l’ARN de configuration d’enregistrement :

   ```
   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. Cette action renvoie un objet de canal pour `recordingConfigurationArn` avec une autre valeur que « Aucun », indiquant que l'enregistrement est activé. (La réponse ci-dessous provient de `create-channel`. La réponse `update-channel` n’inclut pas l’objet `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. **Important** : notez les valeurs `ingestEndpoint`, `streamKey value` et `playbackUrl`. Elles vous seront utiles pour configurer le streaming et la lecture.