

Avis de fin de support : le 13 novembre 2025, le support d'Amazon Elastic Transcoder AWS sera interrompu. Après le 13 novembre 2025, vous ne pourrez plus accéder à la console Elastic Transcoder ni aux ressources Elastic Transcoder.

Pour plus d'informations sur la transition vers AWS Elemental MediaConvert, consultez ce billet de [blog](https://aws.amazon.com/blogs/media/how-to-migrate-workflows-from-amazon-elastic-transcoder-to-aws-elemental-mediaconvert/).

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Exemple de code de kit SDK AWS
<a name="sample-code"></a>

Cette section contient un exemple de code qui montre comment utiliser AWS SDKs pour Java, Ruby, PHP et Python pour effectuer les opérations suivantes :
+ Création d'une playlist HLS dans Amazon Elastic Transcoder
+ Création d'une tâche dans Elastic Transcoder
+ Interrogez une file d'attente Amazon Simple Queue Service (Amazon SQS)
+ Analyser une notification depuis Amazon Simple Notification Service (Amazon SNS)
+ Gérer les notifications provenant d'Amazon SNS

Ces opérations représentent les meilleures pratiques d'Elastic Transcoder. L'interrogation d'une file d'attente Amazon SQS permet d'effectuer des interrogations longues, qui sont plus efficaces qu'une interrogation classique, et la configuration des notifications Amazon SNS permet à Elastic Transcoder de transmettre des messages à la file d'attente Amazon SQS.

L'exemple de code montre comment transcoder pour HLS (HTTP Live Streaming) et comment gérer la notification Amazon SNS une fois qu'elle a été supprimée de la file d'attente Amazon SQS.

Si vous utilisez une langue pour laquelle un SDK existe, nous vous recommandons d'utiliser le SDK plutôt que d'essayer de vous frayer un chemin dans le. APIs Vous constaterez que l'utilisation de SDKs simplifie l'authentification, s'intègre facilement à votre environnement de développement et permet d'accéder facilement aux commandes associées.

**Topics**
+ [Contexte de l'exemple de code de kit SDK AWS](#sample-intro)
+ [Configuration de votre environnement](#env-setup)
+ [Exemples Java](#java-sample)
+ [Exemples Ruby](#ruby-sample)
+ [Exemples de PHP](#php-sample)
+ [Exemples Python](#python-sample)

## Contexte de l'exemple de code de kit SDK AWS
<a name="sample-intro"></a>

### HTTP Live Streaming (HLS)
<a name="hls-intro"></a>

Vous utilisez les sorties HTTP Live Streaming (HLS) afin de fournir du contenu à débit adaptatif aux lecteurs compatibles HLS. Les appareils Android 4\$1, les appareils iOS, les lecteurs multimédia de bureau tels que VLC et les lecteurs de navigateur tels que QuickTime jwplayer sont des exemples d'appareils compatibles HLS. Le débit adaptatif vous permet d'ajuster automatiquement la qualité du contenu diffusé en fonction de la qualité de la connexion client.

### Notifications
<a name="notification-intro"></a>

Si vous interrogez l'`ReadJob`API d'Elastic Transcoder pour suivre l'état d'une tâche, vous devez faire appel en permanence `ReadJob` à chaque tâche soumise. Cette méthodologie ne peut pas évoluer à mesure que le nombre de tâches de transcodage augmente. Pour résoudre ce problème, Elastic Transcoder peut publier des notifications sur Amazon SNS, qui fournit un mécanisme piloté par des événements pour suivre l'état des tâches.

Chaque notification Elastic Transcoder est envoyée sous forme d'objet JSON sur le `Message` terrain. Les notifications étant elles-mêmes envoyées au format JSON, vous devez éviter la notification Elastic Transcoder dans la chaîne de message. Pour plus d'informations sur le format et le contenu des notifications d'Elastic Transcoder, consultez la section [Notifications](https://docs.aws.amazon.com/elastictranscoder/latest/developerguide/notifications.html).

Lorsque vous rédigez du code personnalisé pour gérer les notifications relatives à l'état des tâches, suivez les meilleures pratiques suivantes :
+ **Les gestionnaires doivent être idempotents.** Il est possible qu'une notification soit envoyée plusieurs fois.
+ **Les gestionnaires doivent prendre en charge les notifications de rupture de commande.** Il est possible que les notifications soient livrées hors service.
+ **Les gestionnaires doivent être en mesure de traiter une notification pour n'importe quelle tâche.** Il n'existe aucun moyen de garantir qu'une notification pour un travail en particulier sera envoyée à un travailleur en particulier.
+ **Les manutentionnaires doivent être des opérations de courte durée.** Tous les messages doivent être traités et supprimés avant l'expiration du délai de visibilité. Si le délai de visibilité est de 15 secondes et qu'un maximum de 5 messages seront renvoyés par Amazon SQS, chaque message doit être traité et supprimé de la file d'attente en moins de 3 secondes. Si le traitement prend plus de temps, les messages non traités expireront et seront remis à un autre collaborateur.

Pour Java, Python et Ruby, nous vous recommandons de consulter les notifications en interrogeant une file d'attente Amazon SQS abonnée à votre sujet de notification. Amazon SQS utilisant un mécanisme de sondage long, l'interrogation de la file d'attente Amazon SQS constitue une méthode évolutive pour consommer les notifications de tâches. Amazon SQS simplifie également la disponibilité et le dimensionnement en cas de défaillance des hôtes ou en période de charge élevée, et ne nécessite généralement aucune configuration d'ACL spéciale.

Pour exécuter PHP sous Apache, nous vous recommandons d'inscrire votre point de terminaison directement à la rubrique Amazon SNS. Cela nécessite que votre point de terminaison soit accessible au public, car Amazon SNS devra être en mesure de vous envoyer des notifications directement.

## Configuration de votre environnement
<a name="env-setup"></a>

Pour exécuter l'exemple de code, vous devez disposer d'une configuration d'environnement AWS. Cette section explique le processus de configuration et explique comment créer les ressources AWS dont Elastic Transcoder a besoin pour fonctionner de manière optimale.

**Topics**
+ [Configuration de votre environnement Java](#env-java)
+ [Configuration de votre environnement Ruby](#env-ruby)
+ [Configuration de votre environnement PHP](#env-php)
+ [Configuration de votre environnement Python](#env-python)

### Configuration de votre environnement Java
<a name="env-java"></a>

Cette section vous guide dans la configuration de votre environnement Java.

**Topics**
+ [Configuration du kit AWS SDK pour Java](#java-sdk)
+ [Création de compartiments d'entrée et de sortie Amazon S3](#java-s3)
+ [Création d'une rubrique Amazon SNS pour recevoir des notifications sur le statut des offres d'emploi](#java-sns)
+ [Création d'une file d'attente Amazon SQS pour demander des notifications sur le statut des tâches](#java-sqs)
+ [Abonnement de votre file d'attente Amazon SQS à votre rubrique Amazon SNS](#java-sqs-subscribe)
+ [Création d'un pipeline Elastic Transcoder](#java-pipeline)
+ [Création d'une CloudFront distribution Amazon pour diffuser du contenu de manière évolutive](#java-cloudfront)
+ [Modification de la politique relative aux compartiments Amazon S3](#java-s3-policy)

L'exemple de code s'appuie sur deux hypothèses principales :
+ Les exemples sont écrits pour fonctionner avec Java version 1.6 ou ultérieure.
+ Ils s'exécutent grâce à Eclipse avec AWS Toolkit pour Eclipse.

#### Configuration du kit AWS SDK pour Java
<a name="java-sdk"></a>

Ces exemples supposent que vous utilisez AWS Toolkit pour Eclipse. Vous avez besoin du kit [AWS SDK pour Java](https://aws.amazon.com/sdkforjava/) et des fichiers JAR du Processeur Jackson JSON :
+ Jackson Core
+ Jackson Databind
+ Jackson Annotations

Le processeur Jackson JSON gère les notifications de statut de tâche.

Si vous utilisez Maven pour gérer vos dépendances, vous pouvez ajouter les fragments de code suivants à votre fichier `pom.xml` :

Propriété de la version : 

```
    <jackson-2-version>2.2.3</jackson-2-version>
```

Dépendances:

```
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk</artifactId>
        <version>LATEST</version>
    </dependency>
                
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>${jackson-2-version}</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>${jackson-2-version}</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson-2-version}</version>
    </dependency>
```

Pour plus d'informations, consultez la [Documentation sur le kit AWS SDK pour Java](https://aws.amazon.com/documentation/sdkforjava/).

#### Création de compartiments d'entrée et de sortie Amazon S3
<a name="java-s3"></a>

1. Ouvrez la [console Amazon S3](https://console.aws.amazon.com/s3/home).

1. Dans la console, cliquez sur **Create Bucket**.

1. Dans le champ **Nom du compartiment**, entrez le nom souhaité pour votre compartiment d'entrée.

1. Toujours dans la console Amazon S3, cliquez à nouveau sur **Create Bucket**.

1. Dans le champ **Nom du compartiment**, entrez le nom souhaité pour votre compartiment de sortie.

#### Création d'une rubrique Amazon SNS pour recevoir des notifications sur le statut des offres d'emploi
<a name="java-sns"></a>

1. Ouvrez la [console Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Dans la console, cliquez sur **Créer et ajouter**, puis sélectionnez **Créer un nouveau sujet**.

1. Dans le champ **Nom du sujet**, entrez **ets-sample-topic** puis cliquez sur **Créer un sujet**.

1. Enregistrez l'ARN de`ets-sample-topic`.

#### Création d'une file d'attente Amazon SQS pour demander des notifications sur le statut des tâches
<a name="java-sqs"></a>

1. Ouvrez la [console Amazon SQS](https://console.aws.amazon.com/sqs/home).

1. Dans la console, cliquez sur **Créer une nouvelle file d'attente**.

1. Dans le champ **Nom de la file d'attente**, entrez **ets-sample-queue** puis cliquez sur **Créer une file d'attente**.

1. Enregistrez l'URL de la file d'attente Amazon SQS.

#### Abonnement de votre file d'attente Amazon SQS à votre rubrique Amazon SNS
<a name="java-sqs-subscribe"></a>

1. Ouvrez la [console Amazon SQS](https://console.aws.amazon.com/sqs/home).

1. Dans la console, **ets-sample-queue**sélectionnez dans la liste des files d'attente.

1. Sous **Actions de file d'attente**, sélectionnez **Abonner la file d'attente à la rubrique Amazon SNS.**

1. Sous **Choisir un sujet**, sélectionnez **ets-sample-topic**puis cliquez sur **S'abonner**.

Vous devriez voir une confirmation indiquant que votre file d'attente a été correctement inscrite à votre sujet.

#### Création d'un pipeline Elastic Transcoder
<a name="java-pipeline"></a>

1. Ouvrez la console [Amazon Elastic Transcoder](https://console.aws.amazon.com/elastictranscoder/home).

1. Dans la console, cliquez sur **Créer un nouveau pipeline**.

1. Dans le champ **Nom du pipeline**, entrez**ets-sample-pipeline**.

1. Dans le champ **Input Bucket**, entrez le nom de votre bucket d'entrée.

1. Laissez le **rôle IAM** tel que**Console Default Role**.

1. Dans **Configurer le compartiment Amazon S3 pour les fichiers transcodés et les listes de lecture**, entrez le nom de votre compartiment de sortie.

1. Toujours dans **Configurer le compartiment Amazon S3 pour les fichiers transcodés et les listes de lecture**, sélectionnez la **classe de stockage standard**.

1. Développez le menu déroulant **Notifications**.

1. Pour les quatre types d'événements, sélectionnez **Utiliser un sujet SNS existant**, puis sous **Sélectionner un sujet**, sélectionnez**ets-sample-topic**.

1. Cliquez sur **Create Pipeline**.

1. Enregistrez l'ID du pipeline Elastic Transcoder.

#### Création d'une CloudFront distribution Amazon pour diffuser du contenu de manière évolutive
<a name="java-cloudfront"></a>

1. Ouvrez la [ CloudFront console Amazon](https://console.aws.amazon.com/cloudfront/home).

1. Dans le volet de navigation de la console, développez **Private Content**, puis cliquez sur **Origin Access Identity**.

1. Cliquez sur **Créer une identité d'accès à Origin**.

1. Cliquez sur **Create**.

1. Enregistrez l'ID utilisateur canonique Amazon S3 généré lorsque vous créez votre identité d'accès d'origine.

1. Dans le volet de navigation, cliquez sur **Distribution**.

1. Cliquez sur **Créer une distribution**.

1. Sélectionnez **Web**, puis cliquez sur **Continuer**.

1. Sous **Paramètres d'origine**, entrez votre compartiment de sortie Amazon S3 comme **nom de domaine d'origine**.

1. Dans le champ **Origin ID**, entrez**S3-transcoder-sample-output**.

1. Pour **Restreindre l'accès au bucket**, sélectionnez **Oui**.

1. Cliquez sur **Créer une distribution** et enregistrez le nom de domaine de la distribution.

#### Modification de la politique relative aux compartiments Amazon S3
<a name="java-s3-policy"></a>

1. Ouvrez la [console Amazon S3](https://console.aws.amazon.com/s3/home).

1. À côté du compartiment de sortie, cliquez sur l'**icône en forme de loupe** pour afficher les propriétés du compartiment.

1. Développez **les autorisations** et cliquez sur **Ajouter une politique de compartiment**.

1. **Entrez la déclaration de politique suivante, en remplaçant **CloudFront-oai-s3- par **your recorded Amazon S3 canonical user ID** et s3- canonical-user-id** par. output-bucket-name** **the name of your output bucket**

1. Cliquez sur **Sauvegarder**

```
{
  "Version":"2012-10-17",		 	 	 
  "Id":"PolicyForCloudFrontPrivateContent",
  "Statement":[{
     "Sid":" Granting CloudFront OAI access to private content",
     "Effect":"Allow",
     "Principal":{ "CanonicalUser":"<CloudFront-oai-s3-canonical-user-id>" },
     "Action":"s3:GetObject",
     "Resource":"arn:aws:s3:::<s3-output-bucket-name>/*"
   }]
}
```

Passez aux [Exemples Java](#java-sample).

### Configuration de votre environnement Ruby
<a name="env-ruby"></a>

Cette section vous guide dans la configuration de votre environnement Ruby.

**Topics**
+ [Configuration du kit AWS SDK pour Ruby](#ruby-sdk)
+ [Création de compartiments d'entrée et de sortie Amazon S3](#ruby-s3)
+ [Création d'une rubrique Amazon SNS pour recevoir des notifications sur le statut des offres d'emploi](#ruby-sns)
+ [Création d'une file d'attente Amazon SQS pour demander des notifications sur le statut des tâches](#ruby-sqs)
+ [Abonnement de votre file d'attente Amazon SQS à votre rubrique Amazon SNS](#ruby-sqs-subscribe)
+ [Création d'un pipeline Elastic Transcoder](#ruby-pipeline)
+ [Création d'une CloudFront distribution Amazon pour diffuser du contenu de manière évolutive](#ruby-cloudfront)
+ [Modification de la politique relative aux compartiments Amazon S3](#ruby-s3-policy)

L'exemple de code s'appuie sur une hypothèse principale :
+ Les échantillons sont écrits de sorte à être compatibles avec Ruby version 1.9.

#### Configuration du kit AWS SDK pour Ruby
<a name="ruby-sdk"></a>

Le kit SDK AWS pour Ruby est disponible [ici](https://aws.amazon.com/sdkforruby/). Vous pouvez l'installer facilement grâce aux gems Ruby avec la commande suivante : 

```
gem install aws-sdk
```

Pour plus d'informations, consultez la [Documentation du kit SDK AWS pour Ruby](https://aws.amazon.com/documentation/sdkforruby/).

#### Création de compartiments d'entrée et de sortie Amazon S3
<a name="ruby-s3"></a>

1. Ouvrez la [console Amazon S3](https://console.aws.amazon.com/s3/home).

1. Dans la console, cliquez sur **Create Bucket**.

1. Dans le champ **Nom du compartiment**, entrez le nom souhaité pour votre compartiment d'entrée.

1. Toujours dans la console Amazon S3, cliquez à nouveau sur **Create Bucket**.

1. Dans le champ **Nom du compartiment**, entrez le nom souhaité pour votre compartiment de sortie.

#### Création d'une rubrique Amazon SNS pour recevoir des notifications sur le statut des offres d'emploi
<a name="ruby-sns"></a>

1. Ouvrez la [console Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Dans la console, cliquez sur **Créer et ajouter**, puis sélectionnez **Créer un nouveau sujet**.

1. Dans le champ **Nom du sujet**, entrez **ets-sample-topic** puis cliquez sur **Créer un sujet**.

1. Enregistrez l'ARN de`ets-sample-topic`.

#### Création d'une file d'attente Amazon SQS pour demander des notifications sur le statut des tâches
<a name="ruby-sqs"></a>

1. Ouvrez la [console Amazon SQS](https://console.aws.amazon.com/sqs/home).

1. Dans la console, cliquez sur **Créer une nouvelle file d'attente**.

1. Dans le champ **Nom de la file d'attente**, entrez **ets-sample-queue** puis cliquez sur **Créer une file d'attente**.

1. Enregistrez l'URL de la file d'attente Amazon SQS.

#### Abonnement de votre file d'attente Amazon SQS à votre rubrique Amazon SNS
<a name="ruby-sqs-subscribe"></a>

1. Ouvrez la [console Amazon SQS](https://console.aws.amazon.com/sqs/home).

1. Dans la console, **ets-sample-queue**sélectionnez dans la liste des files d'attente.

1. Sous **Actions de file d'attente**, sélectionnez **Abonner la file d'attente à la rubrique Amazon SNS.**

1. Sous **Choisir un sujet**, sélectionnez **ets-sample-topic**puis cliquez sur **S'abonner**.

Vous devriez voir une confirmation indiquant que votre file d'attente a été correctement inscrite à votre sujet.

#### Création d'un pipeline Elastic Transcoder
<a name="ruby-pipeline"></a>

1. Ouvrez la console [Amazon Elastic Transcoder](https://console.aws.amazon.com/elastictranscoder/home).

1. Dans la console, cliquez sur **Créer un nouveau pipeline**.

1. Dans le champ **Nom du pipeline**, entrez**ets-sample-pipeline**.

1. Dans le champ **Input Bucket**, entrez le nom de votre bucket d'entrée.

1. Laissez le **rôle IAM** tel que**Console Default Role**.

1. Dans **Configurer le compartiment Amazon S3 pour les fichiers transcodés et les listes de lecture**, entrez le nom de votre compartiment de sortie.

1. Toujours dans **Configurer le compartiment Amazon S3 pour les fichiers transcodés et les listes de lecture**, sélectionnez la **classe de stockage standard**.

1. Développez le menu déroulant **Notifications**.

1. Pour les quatre types d'événements, sélectionnez **Utiliser un sujet SNS existant**, puis sous **Sélectionner un sujet**, sélectionnez**ets-sample-topic**.

1. Cliquez sur **Create Pipeline**.

1. Enregistrez l'ID du pipeline Elastic Transcoder.

#### Création d'une CloudFront distribution Amazon pour diffuser du contenu de manière évolutive
<a name="ruby-cloudfront"></a>

1. Ouvrez la [ CloudFront console Amazon](https://console.aws.amazon.com/cloudfront/home).

1. Dans le volet de navigation de la console, développez **Private Content**, puis cliquez sur **Origin Access Identity**.

1. Cliquez sur **Créer une identité d'accès à Origin**.

1. Cliquez sur **Create**.

1. Enregistrez l'ID utilisateur canonique Amazon S3 généré lorsque vous créez votre identité d'accès d'origine.

1. Dans le volet de navigation, cliquez sur **Distribution**.

1. Cliquez sur **Créer une distribution**.

1. Sélectionnez **Web**, puis cliquez sur **Continuer**.

1. Sous **Paramètres d'origine**, entrez votre compartiment de sortie Amazon S3 comme **nom de domaine d'origine**.

1. Dans le champ **Origin ID**, entrez**S3-transcoder-sample-output**.

1. Pour **Restreindre l'accès au bucket**, sélectionnez **Oui**.

1. Cliquez sur **Créer une distribution** et enregistrez le nom de domaine de la distribution.

#### Modification de la politique relative aux compartiments Amazon S3
<a name="ruby-s3-policy"></a>

1. Ouvrez la [console Amazon S3](https://console.aws.amazon.com/s3/home).

1. À côté du compartiment de sortie, cliquez sur l'**icône en forme de loupe** pour afficher les propriétés du compartiment.

1. Développez **les autorisations** et cliquez sur **Ajouter une politique de compartiment**.

1. **Entrez la déclaration de politique suivante, en remplaçant **CloudFront-oai-s3- par **your recorded Amazon S3 canonical user ID** et s3- canonical-user-id** par. output-bucket-name** **the name of your output bucket**

1. Cliquez sur **Sauvegarder**

```
{
  "Version":"2012-10-17",		 	 	 
  "Id":"PolicyForCloudFrontPrivateContent",
  "Statement":[{
     "Sid":" Granting CloudFront OAI access to private content",
     "Effect":"Allow",
     "Principal":{ "CanonicalUser":"<CloudFront-oai-s3-canonical-user-id>" },
     "Action":"s3:GetObject",
     "Resource":"arn:aws:s3:::<s3-output-bucket-name>/*"
   }]
}
```

Passez aux [Exemples Ruby](#ruby-sample).

### Configuration de votre environnement PHP
<a name="env-php"></a>

Cette section vous guide dans la configuration de votre environnement PHP.

**Topics**
+ [Installation de l'exemple de code](#php-install)
+ [Configuration du kit AWS SDK pour PHP](#php-sdk)
+ [Création de compartiments d'entrée et de sortie Amazon S3](#php-s3)
+ [Création d'une rubrique Amazon SNS pour recevoir des notifications sur le statut des offres](#php-sns)
+ [Abonnement de votre serveur à Amazon SNS](#php-sns-sub)
+ [Création d'un pipeline Elastic Transcoder](#php-pipeline)
+ [Création d'une CloudFront distribution Amazon pour diffuser du contenu de manière évolutive](#php-cloudfront)
+ [Modification de la politique relative aux compartiments Amazon S3](#php-s3-policy)

L'exemple de code s'appuie sur trois hypothèses principales :
+ Les exemples PHP sont exécutés dans un serveur Apache.
+ Le serveur Apache doit être capable de recevoir des informations provenant d'Internet pour recevoir les notifications Amazon SNS.
+ Les exemples sont écrits pour fonctionner avec PHP version 5.4 ou ultérieure.

#### Installation de l'exemple de code
<a name="php-install"></a>

Pour pouvoir utiliser l'exemple de code PHP, vous devez d'abord le télécharger et l'installer. 
+ Téléchargez l'exemple de code :
  + [Exemple de code HLS](samples/phphls.zip).
  + [Exemple de code de notification](samples/phpnotification.zip).
+ Décompressez l'exemple de code.
+ Placez le code sous celui de votre serveur Apache DocumentRoot.
+ Supprimez le fichier .zip d'exemple de code téléchargé. 
+ Mettez à jour le chemin d'accès à votre installation du kit SDK AWS.

**Note**  
Dans `HlsJobCreationSample.php` et `JobStatusNotificationsSample.php`, vous devez mettre à jour le chemin d'accès à votre fichier `autoload.php`. Si vous utilisez l'installation phar, vous pouvez utiliser le chemin d'accès au fichier `aws.phar` que vous avez téléchargé, qui comprend toutes les dépendances nécessaires. 

#### Configuration du kit AWS SDK pour PHP
<a name="php-sdk"></a>

Vous trouverez le kit AWS SDK pour PHP [ici](https://aws.amazon.com/sdkforphp/). Dans le cadre de ce didacticiel, nous vous conseillons d'opter pour l'installation phar ; cependant, les projets à long terme sont mieux gérés à l'aide du compositeur. 

Pour plus d'informations, consultez la [Documentation du kit AWS SDK pour PHP](https://aws.amazon.com/documentation/sdkforphp/).

#### Création de compartiments d'entrée et de sortie Amazon S3
<a name="php-s3"></a>

1. Ouvrez la [console Amazon S3](https://console.aws.amazon.com/s3/home).

1. Dans la console, cliquez sur **Create Bucket**.

1. Dans le champ **Nom du compartiment**, entrez le nom souhaité pour votre compartiment d'entrée.

1. Toujours dans la console Amazon S3, cliquez à nouveau sur **Create Bucket**.

1. Dans le champ **Nom du compartiment**, entrez le nom souhaité pour votre compartiment de sortie.

#### Création d'une rubrique Amazon SNS pour recevoir des notifications sur le statut des offres
<a name="php-sns"></a>

1. Ouvrez la [console Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Dans la console, cliquez sur **Créer et ajouter**, puis sélectionnez **Créer un nouveau sujet**.

1. Dans le champ **Nom du sujet**, entrez **ets-sample-topic** puis cliquez sur **Créer un sujet**.

1. Enregistrez l'ARN de`ets-sample-topic`.

#### Abonnement de votre serveur à Amazon SNS
<a name="php-sns-sub"></a>

1. Vérifiez que l'exemple de code PHP a été installé.

1. Ouvrez la [console Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Sous **AdditionalActions**, cliquez sur **Créer un abonnement**.

1. Sélectionnez HTTP ou HTTPS en fonction de la configuration de votre serveur.

1. Dans **Endpoint**, saisissez le point de terminaison de votre serveur. Le chemin du point de terminaison doit pointer sur `JobStatusNotificationsSampleNotificationHandler.php`. 

1. Cliquez sur **Subscribe**. Une demande d'abonnement est envoyée à votre point de terminaison PHP.

L'exemple de code PHP gère automatiquement la demande d'abonnement et confirme un abonnement. La demande d'abonnement et la réponse sont écrites dans `/tmp/subscribe_requests.txt`.

#### Création d'un pipeline Elastic Transcoder
<a name="php-pipeline"></a>

1. Ouvrez la console [Amazon Elastic Transcoder](https://console.aws.amazon.com/elastictranscoder/home).

1. Dans la console, cliquez sur **Créer un nouveau pipeline**.

1. Dans le champ **Nom du pipeline**, entrez**ets-sample-pipeline**.

1. Dans le champ **Input Bucket**, entrez le nom de votre bucket d'entrée.

1. Laissez le **rôle IAM** tel que**Console Default Role**.

1. Dans **Configurer le compartiment Amazon S3 pour les fichiers transcodés et les listes de lecture**, entrez le nom de votre compartiment de sortie.

1. Toujours dans **Configurer le compartiment Amazon S3 pour les fichiers transcodés et les listes de lecture**, sélectionnez la **classe de stockage standard**.

1. Développez le menu déroulant **Notifications**.

1. Pour les quatre types d'événements, sélectionnez **Utiliser un sujet SNS existant**, puis sous **Sélectionner un sujet**, sélectionnez**ets-sample-topic**.

1. Cliquez sur **Create Pipeline**.

1. Enregistrez l'ID du pipeline Elastic Transcoder.

#### Création d'une CloudFront distribution Amazon pour diffuser du contenu de manière évolutive
<a name="php-cloudfront"></a>

1. Ouvrez la [ CloudFront console Amazon](https://console.aws.amazon.com/cloudfront/home).

1. Dans le volet de navigation de la console, développez **Private Content**, puis cliquez sur **Origin Access Identity**.

1. Cliquez sur **Créer une identité d'accès à Origin**.

1. Cliquez sur **Create**.

1. Enregistrez l'ID utilisateur canonique Amazon S3 généré lorsque vous créez votre identité d'accès d'origine.

1. Dans le volet de navigation, cliquez sur **Distribution**.

1. Cliquez sur **Créer une distribution**.

1. Sélectionnez **Web**, puis cliquez sur **Continuer**.

1. Sous **Paramètres d'origine**, entrez votre compartiment de sortie Amazon S3 comme **nom de domaine d'origine**.

1. Dans le champ **Origin ID**, entrez**S3-transcoder-sample-output**.

1. Pour **Restreindre l'accès au bucket**, sélectionnez **Oui**.

1. Cliquez sur **Créer une distribution** et enregistrez le nom de domaine de la distribution.

#### Modification de la politique relative aux compartiments Amazon S3
<a name="php-s3-policy"></a>

1. Ouvrez la [console Amazon S3](https://console.aws.amazon.com/s3/home).

1. À côté du compartiment de sortie, cliquez sur l'**icône en forme de loupe** pour afficher les propriétés du compartiment.

1. Développez **les autorisations** et cliquez sur **Ajouter une politique de compartiment**.

1. **Entrez la déclaration de politique suivante, en remplaçant **CloudFront-oai-s3- par **your recorded Amazon S3 canonical user ID** et s3- canonical-user-id** par. output-bucket-name** **the name of your output bucket**

1. Cliquez sur **Sauvegarder**

```
{
  "Version":"2012-10-17",		 	 	 
  "Id":"PolicyForCloudFrontPrivateContent",
  "Statement":[{
     "Sid":" Granting CloudFront OAI access to private content",
     "Effect":"Allow",
     "Principal":{ "CanonicalUser":"<CloudFront-oai-s3-canonical-user-id>" },
     "Action":"s3:GetObject",
     "Resource":"arn:aws:s3:::<s3-output-bucket-name>/*"
   }]
}
```

Passez aux [Exemples de PHP](#php-sample).

### Configuration de votre environnement Python
<a name="env-python"></a>

Cette section vous guide dans la configuration de votre environnement Python.

**Topics**
+ [Configuration du kit AWS SDK pour Python](#python-sdk)
+ [Création de compartiments d'entrée et de sortie Amazon S3](#python-s3)
+ [Création d'une rubrique Amazon SNS pour recevoir des notifications sur le statut des offres](#python-sns)
+ [Création d'une file d'attente Amazon SQS pour demander des notifications sur le statut des tâches](#python-sqs)
+ [Abonnement de votre file d'attente Amazon SQS à votre rubrique Amazon SNS](#python-sqs-subscribe)
+ [Création d'un pipeline Elastic Transcoder](#python-pipeline)
+ [Création d'une CloudFront distribution Amazon pour diffuser du contenu de manière évolutive](#python-cloudfront)
+ [Modification de la politique relative aux compartiments Amazon S3](#python-s3-policy)

Elle s'appuie sur l'hypothèse suivante :
+ Les exemples sont écrits de sorte à être compatibles avec Python version 2.7.

#### Configuration du kit AWS SDK pour Python
<a name="python-sdk"></a>

Vous trouverez le kit AWS SDK pour Python [ici](https://aws.amazon.com/sdkforpython/). Vous pouvez également l'installer facilement grâce à PIP avec la commande suivante : 

```
pip-2.7 install boto
```

Pour plus d'informations, consultez la [Documentation sur le kit SDK AWS pour Python](http://docs.pythonboto.org/en/latest/).

#### Création de compartiments d'entrée et de sortie Amazon S3
<a name="python-s3"></a>

1. Ouvrez la [console Amazon S3](https://console.aws.amazon.com/s3/home).

1. Dans la console, cliquez sur **Create Bucket**.

1. Dans le champ **Nom du compartiment**, entrez le nom souhaité pour votre compartiment d'entrée.

1. Toujours dans la console Amazon S3, cliquez à nouveau sur **Create Bucket**.

1. Dans le champ **Nom du compartiment**, entrez le nom souhaité pour votre compartiment de sortie.

#### Création d'une rubrique Amazon SNS pour recevoir des notifications sur le statut des offres
<a name="python-sns"></a>

1. Ouvrez la [console Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Dans la console, cliquez sur **Créer et ajouter**, puis sélectionnez **Créer un nouveau sujet**.

1. Dans le champ **Nom du sujet**, entrez **ets-sample-topic** puis cliquez sur **Créer un sujet**.

1. Enregistrez l'ARN de`ets-sample-topic`.

#### Création d'une file d'attente Amazon SQS pour demander des notifications sur le statut des tâches
<a name="python-sqs"></a>

1. Ouvrez la [console Amazon SQS](https://console.aws.amazon.com/sqs/home).

1. Dans la console, cliquez sur **Créer une nouvelle file d'attente**.

1. Dans le champ **Nom de la file d'attente**, entrez **ets-sample-queue** puis cliquez sur **Créer une file d'attente**.

1. Enregistrez l'URL de la file d'attente Amazon SQS.

#### Abonnement de votre file d'attente Amazon SQS à votre rubrique Amazon SNS
<a name="python-sqs-subscribe"></a>

1. Ouvrez la [console Amazon SQS](https://console.aws.amazon.com/sqs/home).

1. Dans la console, **ets-sample-queue**sélectionnez dans la liste des files d'attente.

1. Sous **Actions de file d'attente**, sélectionnez **Abonner la file d'attente à la rubrique Amazon SNS.**

1. Sous **Choisir un sujet**, sélectionnez **ets-sample-topic**puis cliquez sur **S'abonner**.

Vous devriez voir une confirmation indiquant que votre file d'attente a été correctement inscrite à votre sujet.

#### Création d'un pipeline Elastic Transcoder
<a name="python-pipeline"></a>

1. Ouvrez la console [Amazon Elastic Transcoder](https://console.aws.amazon.com/elastictranscoder/home).

1. Dans la console, cliquez sur **Créer un nouveau pipeline**.

1. Dans le champ **Nom du pipeline**, entrez**ets-sample-pipeline**.

1. Dans le champ **Input Bucket**, entrez le nom de votre bucket d'entrée.

1. Laissez le **rôle IAM** tel que**Console Default Role**.

1. Dans **Configurer le compartiment Amazon S3 pour les fichiers transcodés et les listes de lecture**, entrez le nom de votre compartiment de sortie.

1. Toujours dans **Configurer le compartiment Amazon S3 pour les fichiers transcodés et les listes de lecture**, sélectionnez la **classe de stockage standard**.

1. Développez le menu déroulant **Notifications**.

1. Pour les quatre types d'événements, sélectionnez **Utiliser un sujet SNS existant**, puis sous **Sélectionner un sujet**, sélectionnez**ets-sample-topic**.

1. Cliquez sur **Create Pipeline**.

1. Enregistrez l'ID du pipeline Elastic Transcoder.

#### Création d'une CloudFront distribution Amazon pour diffuser du contenu de manière évolutive
<a name="python-cloudfront"></a>

1. Ouvrez la [ CloudFront console Amazon](https://console.aws.amazon.com/cloudfront/home).

1. Dans le volet de navigation de la console, développez **Private Content**, puis cliquez sur **Origin Access Identity**.

1. Cliquez sur **Créer une identité d'accès à Origin**.

1. Cliquez sur **Create**.

1. Enregistrez l'ID utilisateur canonique Amazon S3 généré lorsque vous créez votre identité d'accès d'origine.

1. Dans le volet de navigation, cliquez sur **Distribution**.

1. Cliquez sur **Créer une distribution**.

1. Sélectionnez **Web**, puis cliquez sur **Continuer**.

1. Sous **Paramètres d'origine**, entrez votre compartiment de sortie Amazon S3 comme **nom de domaine d'origine**.

1. Dans le champ **Origin ID**, entrez**S3-transcoder-sample-output**.

1. Pour **Restreindre l'accès au bucket**, sélectionnez **Oui**.

1. Cliquez sur **Créer une distribution** et enregistrez le nom de domaine de la distribution.

#### Modification de la politique relative aux compartiments Amazon S3
<a name="python-s3-policy"></a>

1. Ouvrez la [console Amazon S3](https://console.aws.amazon.com/s3/home).

1. À côté du compartiment de sortie, cliquez sur l'**icône en forme de loupe** pour afficher les propriétés du compartiment.

1. Développez **les autorisations** et cliquez sur **Ajouter une politique de compartiment**.

1. **Entrez la déclaration de politique suivante, en remplaçant **CloudFront-oai-s3- par **your recorded Amazon S3 canonical user ID** et s3- canonical-user-id** par. output-bucket-name** **the name of your output bucket**

1. Cliquez sur **Sauvegarder**

```
{
  "Version":"2012-10-17",		 	 	 
  "Id":"PolicyForCloudFrontPrivateContent",
  "Statement":[{
     "Sid":" Granting CloudFront OAI access to private content",
     "Effect":"Allow",
     "Principal":{ "CanonicalUser":"<CloudFront-oai-s3-canonical-user-id>" },
     "Action":"s3:GetObject",
     "Resource":"arn:aws:s3:::<s3-output-bucket-name>/*"
   }]
}
```

Passez aux [Exemples Python](#python-sample).

## Exemples Java
<a name="java-sample"></a>

Tous les exemples Java s'appuient sur deux hypothèses : 
+ Les exemples sont écrits pour fonctionner avec Java version 1.6 ou ultérieure.
+ Ils s'exécutent grâce à Eclipse avec AWS Toolkit pour Eclipse.

### Exemples de HLS
<a name="java-hls"></a>

**Topics**
+ [Téléchargement des exemples de HLS Java](#java-hls-link)
+ [Fragments d'exemples de code](#java-hls-list)
+ [Tâches](#java-hls-tasklist)

Cet exemple explique comment créer une tâche HLS et un fichier de playlist HLS qui peuvent être utilisés pour lire un flux à débit adaptatif.

#### Téléchargement des exemples de HLS Java
<a name="java-hls-link"></a>

Vous pouvez télécharger l'exemple de code [ici](samples/javasamples.zip). 

#### Fragments d'exemples de code
<a name="java-hls-list"></a>

L'exemple de code Java inclut : 
+ La classe `HlsJobCreationSample`

#### Tâches
<a name="java-hls-tasklist"></a>

Pour exécuter l'exemple, procédez de la manière suivante :

1. Configurez votre environnement en appliquant les instructions suivantes : [Configuration de votre environnement Java](#env-java).

1. Téléchargez l'exemple de code.

1. Dans Eclipse, ouvrez `com/amazonaws/services/elastictranscoder/samples/HlsJobCreationSample.java`.

1. Remplacez PIPELINE\$1ID et INPUT\$1KEY par les valeurs appropriées.

1. Exécutez les exemples dans Eclipse.

### Exemples de notification
<a name="java-notifications"></a>

**Topics**
+ [Exemple de syntaxe de notification](#java-notification-example)
+ [Téléchargement d'un exemple de code Java](#java-link)
+ [Fragments d'exemples de code](#java-list)
+ [Tâches](#java-tasklist)

#### Exemple de syntaxe de notification
<a name="java-notification-example"></a>

```
{
   "Type" : "Notification",
   "MessageId" : "341527b6-9081-5f3d-b933-6c8472c3be40",
   "TopicArn" : "arn:aws:sns:us-east-1:123456789012:ets-sample-topic",
   "Subject" : "Amazon Elastic Transcoder has scheduled job 1387847681009
      -abcdef for transcoding.",
   "Message" : "{\n  \"state\" : \"PROGRESSING\",\n
      \"version\" : \"2012-09-25\",\n  \"jobId\" : \"1387847681009-abcdef\",
      \n \"pipelineId\" : \"1387847629327-fedcba\",\n  \"input\" : {\n
      \"key\" : \"input/example/key.mp4\",\n \"frameRate\" : \"auto\",\n
      \"resolution\" : \"auto\",\n  \"aspectRatio\" : \"auto\",\n
      \"interlaced\" : \"auto\",\n  \"container\" : \"auto\"\n  },\n
      \"outputKeyPrefix\" : \"elastic-transcoder-samples/\",\n
      \"outputs\" : [ {\n \"id\" : \"1\",\n \"presetId\" :
      \"1351620000001-000020\",\n \"key\" : \"output/example/key.mp4\",\n
      \"thumbnailPattern\" : \"\",\n \"rotate\" : \"auto\",\n \"status\" :
      \"Progressing\"\n  } ]\n}",
   "Timestamp" : "2013-12-24T01:14:42.493Z",
   "SignatureVersion" : "1",
   "Signature" : "ElSqJW3ZksCPViYGTayI/p+LjdF2HB42iJlIJRJ+jWzWwygXdiJXvZXl94qhd/tLln1lxPqijjivb5RWu7n5yzdZwbod6lpLwyZ2TfWM6dZt57OzsG3GbdTxgqwVsztVSyWCYhcV8f+CrT3IQrfrU3Me/SRYVUqrSUXXsu4Ls7A2q9mosG7v0Sn+3Z1rAa9+Rf6QmkfAg05UX0sLyA+I2hFqTu5oAGDK4Cm6FHuIwV+oYJXNBbGWuS7tD6mRNwrYvPBlUvBLXx9m3CbqSXv5Yoj39vglv+1djtaLA3GpwX+B1hHx8QT373lgmmsmGDRWhSQretpOTWDYb81PV2K0bg==",
   "SigningCertURL" : "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-e372f8ca30337fdb084e8ac449342c77.pem",
   "UnsubscribeURL" : "https://sns.us-east-1.amazonaws.com/?Action=
      Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:123456789012:ets-
      sample-topic:b3ec47e5-e1f0-401f-a0a5-98c7fe405c2b"
 }
```

#### Téléchargement d'un exemple de code Java
<a name="java-link"></a>

Vous pouvez télécharger l'exemple de code [ici](samples/javasamples.zip).

#### Fragments d'exemples de code
<a name="java-list"></a>

L'exemple de code Java inclut : 
+ La classe `Notification` : pour utiliser les notifications de Java, nous utilisons la bibliothèque Jackson JSON pour désérialiser les notifications d'état des tâches dans. POJOs La `Notification` classe modélise le message que nous recevons de la file d'attente Amazon SQS.
+ La classe `JobStatusNotification` : La `JobStatusNotification` classe modélise une notification Elastic Transcoder.
+ La classe `SqsQueueNotificationWorker` : La `SqsQueueNotificationWorker` classe peut être démarrée dans un fil de discussion distinct pour interroger Amazon SQS et gérer les notifications relatives à l'état des tâches. Cette classe reçoit des messages, appelle tous les gestionnaires enregistrés pour chaque notification reçue, puis supprime le message de la file d'attente.
+ L'interface `JobStatusNotificationHandler` : l'interface `JobStatusNotificationHandler` peut être mise en œuvre pour permettre un traitement personnalisé pour les notifications. 
+ La classe `JobStatusNotificationsSample` : la classe `JobStatusNotificationsSample` crée une tâche et attend qu'elle soit terminée. Lorsque la tâche entre en état terminal, la file d'attente de travail se ferme et l'application est quittée.

#### Tâches
<a name="java-tasklist"></a>

Pour exécuter l'exemple, procédez de la manière suivante :

1. Configurez votre environnement en appliquant les instructions suivantes : [Configuration de votre environnement Java](#env-java).

1. Téléchargez l'exemple de code.

1. Décompressez l'exemple de code dans le répertoire source de votre projet JAVA.

1. Ouvrez `com/amazonaws/services/elastictranscoder/samples/JobStatusNotificationsSample.java` dans Eclipse.

1. Remplacez PIPELINE\$1ID, SQS\$1QUEUE\$1URL et INPUT\$1KEY par les valeurs appropriées.

1. Exécutez l'exemple dans Eclipse.

## Exemples Ruby
<a name="ruby-sample"></a>

Tous les exemples Ruby s'appuient sur une hypothèse principale : 
+ Les échantillons sont écrits de sorte à être compatibles avec Ruby version 1.9.

### Exemples de HLS
<a name="ruby-hls"></a>

**Topics**
+ [Téléchargement des exemples de HLS Ruby](#ruby-hls-link)
+ [Fragments d'exemples de code](#ruby-hls-list)
+ [Tâches](#ruby-hls-tasklist)

Cet exemple explique comment créer une tâche HLS et un fichier de playlist HLS qui peuvent être utilisés pour lire un flux à débit adaptatif.

#### Téléchargement des exemples de HLS Ruby
<a name="ruby-hls-link"></a>

Vous pouvez télécharger l'exemple de code [ici](samples/rubyhls.zip). 

#### Fragments d'exemples de code
<a name="ruby-hls-list"></a>

L'exemple de code Ruby inclut : 
+ le fichier `HlsJobCreationSample.rb` ;

#### Tâches
<a name="ruby-hls-tasklist"></a>

Pour exécuter l'exemple, procédez de la manière suivante :

1. Configurez votre environnement en appliquant les instructions suivantes : [Configuration de votre environnement Ruby](#env-ruby).

1. Téléchargez l'exemple de code.

1. Décompressez l'exemple de code dans le répertoire source de votre projet Ruby.

1. Modifiez `HlsJobCreationSample.rb` et remplacez pipeline\$1id et input\$1key par les valeurs appropriées.

1. A partir d'un terminal, accédez au répertoire où vous avez décompressé l'exemple de code et exécutez :

```
$ruby HlsJobCreationSample.rb
```

### Exemples de notification
<a name="ruby-notifications"></a>

**Topics**
+ [Exemple de syntaxe de notification](#ruby-notification-example)
+ [Téléchargement d'un exemple de code Ruby](#ruby-link)
+ [Fragments d'exemples de code](#ruby-list)
+ [Tâches](#ruby-tasklist)

#### Exemple de syntaxe de notification
<a name="ruby-notification-example"></a>

```
{
   "Type" : "Notification",
   "MessageId" : "341527b6-9081-5f3d-b933-6c8472c3be40",
   "TopicArn" : "arn:aws:sns:us-east-1:123456789012:ets-sample-topic",
   "Subject" : "Amazon Elastic Transcoder has scheduled job 1387847681009
      -abcdef for transcoding.",
   "Message" : "{\n  \"state\" : \"PROGRESSING\",\n
      \"version\" : \"2012-09-25\",\n  \"jobId\" : \"1387847681009-abcdef\",
      \n \"pipelineId\" : \"1387847629327-fedcba\",\n  \"input\" : {\n
      \"key\" : \"input/example/key.mp4\",\n \"frameRate\" : \"auto\",\n
      \"resolution\" : \"auto\",\n  \"aspectRatio\" : \"auto\",\n
      \"interlaced\" : \"auto\",\n  \"container\" : \"auto\"\n  },\n
      \"outputKeyPrefix\" : \"elastic-transcoder-samples/\",\n
      \"outputs\" : [ {\n \"id\" : \"1\",\n \"presetId\" :
      \"1351620000001-000020\",\n \"key\" : \"output/example/key.mp4\",\n
      \"thumbnailPattern\" : \"\",\n \"rotate\" : \"auto\",\n \"status\" :
      \"Progressing\"\n  } ]\n}",
   "Timestamp" : "2013-12-24T01:14:42.493Z",
   "SignatureVersion" : "1",
   "Signature" : "ElSqJW3ZksCPViYGTayI/p+LjdF2HB42iJlIJRJ+jWzWwygXdiJXvZXl94qhd/tLln1lxPqijjivb5RWu7n5yzdZwbod6lpLwyZ2TfWM6dZt57OzsG3GbdTxgqwVsztVSyWCYhcV8f+CrT3IQrfrU3Me/SRYVUqrSUXXsu4Ls7A2q9mosG7v0Sn+3Z1rAa9+Rf6QmkfAg05UX0sLyA+I2hFqTu5oAGDK4Cm6FHuIwV+oYJXNBbGWuS7tD6mRNwrYvPBlUvBLXx9m3CbqSXv5Yoj39vglv+1djtaLA3GpwX+B1hHx8QT373lgmmsmGDRWhSQretpOTWDYb81PV2K0bg==",
   "SigningCertURL" : "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-e372f8ca30337fdb084e8ac449342c77.pem",
   "UnsubscribeURL" : "https://sns.us-east-1.amazonaws.com/?Action=
      Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:123456789012:ets-
      sample-topic:b3ec47e5-e1f0-401f-a0a5-98c7fe405c2b"
 }
```

#### Téléchargement d'un exemple de code Ruby
<a name="ruby-link"></a>

Vous pouvez télécharger l'exemple de code [ici](samples/rubynotification.zip).

#### Fragments d'exemples de code
<a name="ruby-list"></a>

L'exemple de code Ruby inclut : 
+ La classe `SqsQueueNotificationWorker` : La `SqsQueueNotificationWorker` classe interroge Amazon SQS pour obtenir des notifications, appelle tous les gestionnaires enregistrés pour chaque notification et supprime le message de la file d'attente. Notez que le travail s'exécute dans un thread distinct. Si l'implémentation Ruby utilisée contient des threads « verts », un seul thread est exécuté à la fois (pas de véritable multitraitement).
+ Le script `JobStatusNotificationsSample.rb` : ce script crée une tâche Elastic Transcoder, lance un worker Amazon SQS et attend que la tâche soit terminée. Le gestionnaire fourni indique au travailleur Amazon SQS de s'arrêter lorsque le traitement de la tâche créée est terminé. Le traitement des notifications se fait en appelant la méthode add\$1handlers et en fournissant un Proc ou lambda en tant que gestionnaire prenant un argument unique. Pour chaque notification reçue, tous les gestionnaires enregistrés sont appelés avec la notification fournie comme argument d'entrée pour le gestionnaire.

#### Tâches
<a name="ruby-tasklist"></a>

Pour exécuter l'exemple, procédez de la manière suivante :

1. Configurez votre environnement en appliquant les instructions suivantes : [Configuration de votre environnement Ruby](#env-ruby).

1. Téléchargez l'exemple de code.

1. Décompressez l'exemple de code dans le répertoire source de votre projet Ruby.

1. Modifiez `JobStatusNotificationsSample.rb` et remplacez pipeline\$1id, sqs\$1queue\$1url et input\$1key par les valeurs appropriées.

1. A partir d'un terminal, accédez au répertoire où vous avez décompressé l'exemple de code et exécutez : 

```
$ruby JobStatusNotificationsSample.rb
```

## Exemples de PHP
<a name="php-sample"></a>

Tous les exemples PHP s'appuient sur trois hypothèses principales :
+ Les exemples PHP sont exécutés dans un serveur Apache.
+ Le serveur Apache doit être capable de recevoir des informations provenant d'Internet pour recevoir les notifications Amazon SNS.
+ Les exemples sont écrits pour fonctionner avec PHP version 5.4 ou ultérieure.

### Exemples de HLS
<a name="php-hls"></a>

**Topics**
+ [Télécharger un exemple de PHP HLS](#php-hls-link)
+ [Fragments d'exemples de code](#php-hls-list)
+ [Tâches](#php-hls-tasklist)

Cet exemple explique comment créer une tâche HLS et un fichier de playlist HLS qui peuvent être utilisés pour lire un flux à débit adaptatif.

#### Télécharger un exemple de PHP HLS
<a name="php-hls-link"></a>

Vous pouvez télécharger l'exemple de code [ici](samples/phphls.zip). 

#### Fragments d'exemples de code
<a name="php-hls-list"></a>

L'exemple de code PHP inclut : 
+ le fichier `HlsJobCreationSample.php` ;

#### Tâches
<a name="php-hls-tasklist"></a>

Pour exécuter l'exemple, procédez de la manière suivante :

1. Configurez votre environnement en appliquant les instructions suivantes : [Configuration de votre environnement PHP](#env-php).

1. Téléchargez l'exemple de code.

1. Dans votre navigateur, chargez la page http ://<your-endpoint>HlsJobCreationSample/transcoder-samples/ .php.

1. Renseignez l'ID de pipeline et la clé d'entrée et soumettez le formulaire pour créer une tâche.

### Exemples de notification
<a name="php-notifications"></a>

**Topics**
+ [Exemple de syntaxe de notification](#php-notification-example)
+ [Téléchargement d'un exemple de code PHP](#php-link)
+ [Fragments d'exemples de code](#php-list)
+ [Tâches](#php-tasklist)

#### Exemple de syntaxe de notification
<a name="php-notification-example"></a>

```
{
   "Type" : "Notification",
   "MessageId" : "341527b6-9081-5f3d-b933-6c8472c3be40",
   "TopicArn" : "arn:aws:sns:us-east-1:123456789012:ets-sample-topic",
   "Subject" : "Amazon Elastic Transcoder has scheduled job 1387847681009
      -abcdef for transcoding.",
   "Message" : "{\n  \"state\" : \"PROGRESSING\",\n
      \"version\" : \"2012-09-25\",\n  \"jobId\" : \"1387847681009-abcdef\",
      \n \"pipelineId\" : \"1387847629327-fedcba\",\n  \"input\" : {\n
      \"key\" : \"input/example/key.mp4\",\n \"frameRate\" : \"auto\",\n
      \"resolution\" : \"auto\",\n  \"aspectRatio\" : \"auto\",\n
      \"interlaced\" : \"auto\",\n  \"container\" : \"auto\"\n  },\n
      \"outputKeyPrefix\" : \"elastic-transcoder-samples/\",\n
      \"outputs\" : [ {\n \"id\" : \"1\",\n \"presetId\" :
      \"1351620000001-000020\",\n \"key\" : \"output/example/key.mp4\",\n
      \"thumbnailPattern\" : \"\",\n \"rotate\" : \"auto\",\n \"status\" :
      \"Progressing\"\n  } ]\n}",
   "Timestamp" : "2013-12-24T01:14:42.493Z",
   "SignatureVersion" : "1",
   "Signature" : "ElSqJW3ZksCPViYGTayI/p+LjdF2HB42iJlIJRJ+jWzWwygXdiJXvZXl94qhd/tLln1lxPqijjivb5RWu7n5yzdZwbod6lpLwyZ2TfWM6dZt57OzsG3GbdTxgqwVsztVSyWCYhcV8f+CrT3IQrfrU3Me/SRYVUqrSUXXsu4Ls7A2q9mosG7v0Sn+3Z1rAa9+Rf6QmkfAg05UX0sLyA+I2hFqTu5oAGDK4Cm6FHuIwV+oYJXNBbGWuS7tD6mRNwrYvPBlUvBLXx9m3CbqSXv5Yoj39vglv+1djtaLA3GpwX+B1hHx8QT373lgmmsmGDRWhSQretpOTWDYb81PV2K0bg==",
   "SigningCertURL" : "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-e372f8ca30337fdb084e8ac449342c77.pem",
   "UnsubscribeURL" : "https://sns.us-east-1.amazonaws.com/?Action=
      Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:123456789012:ets-
      sample-topic:b3ec47e5-e1f0-401f-a0a5-98c7fe405c2b"
 }
```

#### Téléchargement d'un exemple de code PHP
<a name="php-link"></a>

Vous pouvez télécharger l'exemple de code [ici](samples/phpnotification.zip).

#### Fragments d'exemples de code
<a name="php-list"></a>

L'exemple de code PHP inclut :
+ <job-id>Le fichier `JobStatusNotificationsSampleNotificationHandler.php` : lorsqu'une notification est envoyée POSTed à votre serveur, le gestionnaire de notifications écrit le statut dans un fichier situé sous /tmp/.
+ Le fichier `JobStatusNotificationsSample.php` : Lorsque le gestionnaire de notifications écrit le statut dans un fichier sous /tmp/<id-tâche>, `JobStatusNotificationsSample.php` charge le fichier de statut /tmp/<id-tâche> spécifié par l'ID dans la chaîne de requête qui lui est transmise.

#### Tâches
<a name="php-tasklist"></a>

Pour exécuter l'exemple, procédez de la manière suivante :

1. Configurez votre environnement en appliquant les instructions suivantes : [Configuration de votre environnement PHP](#env-php).

1. Téléchargez l'exemple de code.

1. Décompressez l'exemple de code dans le répertoire source de votre projet PHP.

1. Dans votre navigateur, chargez la page http ://<your-endpoint>JobStatusNotificationsSample/transcoder-samples/ .php.

1. Renseignez l'ID de pipeline et la clé d'entrée que vous souhaitez transcoder, puis appuyez sur le bouton **Create Job**.

## Exemples Python
<a name="python-sample"></a>

Tous les exemples Python s'appuient sur une hypothèse principale : 
+ Les exemples sont écrits de sorte à être compatibles avec Python version 2.7.

### Exemples de HLS
<a name="python-hls"></a>

**Topics**
+ [Télécharger un exemple de HLS Python](#python-hls-link)
+ [Fragments d'exemples de code](#python-hls-list)
+ [Tâches](#python-hls-tasklist)

Cet exemple explique comment créer une tâche HLS et un fichier de playlist HLS qui peuvent être utilisés pour lire un flux à débit adaptatif.

#### Télécharger un exemple de HLS Python
<a name="python-hls-link"></a>

Vous pouvez télécharger l'exemple de code [ici](samples/pythonhls.zip). 

#### Fragments d'exemples de code
<a name="python-hls-list"></a>

L'exemple de code Python inclut : 
+ le fichier `HlsJobCreationSample.py` ;

#### Tâches
<a name="python-hls-tasklist"></a>

Pour exécuter l'exemple, procédez de la manière suivante :

1. Configurez votre environnement en appliquant les instructions suivantes : [Configuration de votre environnement Python](#env-python).

1. Téléchargez l'exemple de code.

1. Décompressez l'exemple de code.

1. Modifiez `HlsJobCreationSample.py` et remplacez pipeline\$1id et input\$1key par les valeurs appropriées.

1. A partir d'un terminal, accédez au répertoire où vous avez décompressé l'exemple de code et exécutez :

```
$python HlsJobCreationSample.py
```

### Exemples de notification
<a name="python-notifications"></a>

**Topics**
+ [Exemple de syntaxe de notification](#python-notification-example)
+ [Téléchargement d'un exemple de code Python](#python-link)
+ [Fragments d'exemples de code](#python-list)
+ [Tâches](#python-tasklist)

#### Exemple de syntaxe de notification
<a name="python-notification-example"></a>

```
{
   "Type" : "Notification",
   "MessageId" : "341527b6-9081-5f3d-b933-6c8472c3be40",
   "TopicArn" : "arn:aws:sns:us-east-1:123456789012:ets-sample-topic",
   "Subject" : "Amazon Elastic Transcoder has scheduled job 1387847681009
      -abcdef for transcoding.",
   "Message" : "{\n  \"state\" : \"PROGRESSING\",\n
      \"version\" : \"2012-09-25\",\n  \"jobId\" : \"1387847681009-abcdef\",
      \n \"pipelineId\" : \"1387847629327-fedcba\",\n  \"input\" : {\n
      \"key\" : \"input/example/key.mp4\",\n \"frameRate\" : \"auto\",\n
      \"resolution\" : \"auto\",\n  \"aspectRatio\" : \"auto\",\n
      \"interlaced\" : \"auto\",\n  \"container\" : \"auto\"\n  },\n
      \"outputKeyPrefix\" : \"elastic-transcoder-samples/\",\n
      \"outputs\" : [ {\n \"id\" : \"1\",\n \"presetId\" :
      \"1351620000001-000020\",\n \"key\" : \"output/example/key.mp4\",\n
      \"thumbnailPattern\" : \"\",\n \"rotate\" : \"auto\",\n \"status\" :
      \"Progressing\"\n  } ]\n}",
   "Timestamp" : "2013-12-24T01:14:42.493Z",
   "SignatureVersion" : "1",
   "Signature" : "ElSqJW3ZksCPViYGTayI/p+LjdF2HB42iJlIJRJ+jWzWwygXdiJXvZXl94qhd/tLln1lxPqijjivb5RWu7n5yzdZwbod6lpLwyZ2TfWM6dZt57OzsG3GbdTxgqwVsztVSyWCYhcV8f+CrT3IQrfrU3Me/SRYVUqrSUXXsu4Ls7A2q9mosG7v0Sn+3Z1rAa9+Rf6QmkfAg05UX0sLyA+I2hFqTu5oAGDK4Cm6FHuIwV+oYJXNBbGWuS7tD6mRNwrYvPBlUvBLXx9m3CbqSXv5Yoj39vglv+1djtaLA3GpwX+B1hHx8QT373lgmmsmGDRWhSQretpOTWDYb81PV2K0bg==",
   "SigningCertURL" : "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-e372f8ca30337fdb084e8ac449342c77.pem",
   "UnsubscribeURL" : "https://sns.us-east-1.amazonaws.com/?Action=
      Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:123456789012:ets-
      sample-topic:b3ec47e5-e1f0-401f-a0a5-98c7fe405c2b"
 }
```

#### Téléchargement d'un exemple de code Python
<a name="python-link"></a>

Vous pouvez télécharger l'exemple de code [ici](samples/pythonnotification.zip).

#### Fragments d'exemples de code
<a name="python-list"></a>

L'exemple de code Python inclut :
+ La classe `SqsQueueNotificationWorker.py` : La `SqsQueueNotificationWorker` classe interroge Amazon SQS et gère les notifications dans le cadre d'un processus distinct. Cela permet de véritables opérations de multitraitement dans Python. Cette classe reçoit des messages, appelle tous les gestionnaires enregistrés pour chaque notification reçue, puis supprime le message de la file d'attente. Cette classe inclut également la définition de la `JobStatusNotificationHandler` classe, qui est fournie pour fournir un cadre de gestion des notifications Elastic Transcoder. Cette classe peut être étendue et la méthode de traitement écrasée pour un traitement personnalisé des tâches. Notez que cela ne respecte pas les normes Python de duck typing, mais ne donne pas de définition formelle des gestionnaires pour les besoins de cet exemple. 
+ Le script `JobStatusNotificationSample.py` : le `JobStatusNotificationSample.py` script crée une tâche dans Elastic Transcoder et attend qu'elle soit terminée. Une fois la tâche terminée, il interrompt le processus d'interrogation de la file d'attente et se ferme. La synchronisation entre processus avec un objet de valeur multitraitement est nécessaire, car le gestionnaire s'exécute dans un processus distinct de la file d'attente qu'il interroge.

#### Tâches
<a name="python-tasklist"></a>

Pour exécuter l'exemple, procédez de la manière suivante :

1. Configurez votre environnement en appliquant les instructions suivantes : [Configuration de votre environnement Python](#env-python).

1. Téléchargez l'exemple de code.

1. Décompressez l'exemple de code dans un dossier local.

1. Modifiez `JobStatusNotificationsSample.py` et remplacez pipeline\$1id, sqs\$1queue\$1url et input\$1key par les valeurs appropriées.

1. A partir d'un terminal, accédez au répertoire où vous avez décompressé l'exemple de code et exécutez : 

```
$python JobStatusNotificationsSample.py
```