Réduisez les coûts et bénéficiez de davantage de fonctionnalités avec AWS Elemental MediaConvert
MediaConvert est un nouveau service de transcodage vidéo basé sur des fichiers qui fournit une suite complète de fonctionnalités de transcodage avancées, avec des tarifs à la demande à partir de 0,0075 $/minute. En savoir plus
Vous utilisez déjà Amazon Elastic Transcoder ? La migration vers cette solution est simple MediaConvert. Pour plus d'informations, consultez cette présentation
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
Cette section contient des exemples de code qui montre comment utiliser les kits SDK AWS pour Java, Ruby, PHP et Python pour effectuer les opérations suivantes :
Création d'une liste de lecture HLS dans Amazon Elastic Transcoder
Création d'une tâche dans Elastic Transcoder
Examate une file d'attente Amazon Simple Queue Service (Amazon SQS)
Analyse d'une notification Amazon Simple Notification Service (Amazon SNS)
Gérez la notification d'Amazon SNS
Ces opérations reflètent les meilleures pratiques d'Elastic Transcoder. L'interrogation d'une file d'attente Amazon SQS permet d'effectuer des interrogations longues, ce qui est plus efficace qu'une interrogation classique. 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 un langage pour lequel il existe un kit SDK, nous vous conseillons d'utiliser le kit SDK plutôt que de tenter d'utiliser les API. Les kits SDK simplifient l'authentification, s'intègrent facilement à votre environnement de développement et permettent d'accéder facilement aux commandes associées.
Rubriques
Contexte de l'exemple de code de kit SDK AWS
HTTP Live Streaming (HLS)
Vous utilisez les sorties HTTP Live Streaming (HLS) afin de diffuser du contenu à débit adaptatif aux lecteurs compatibles HLS. Parmi les appareils compatibles HLS, citons les appareils Android 4+, les appareils iOS, les lecteurs multimédia de bureau tels que QuickTime VLC et les lecteurs de navigateur tels que jwplayer. Le débit adaptatif vous permet d'ajuster automatiquement la qualité du contenu diffusé en fonction de la qualité de la connexion client.
Notifications
Si vous interrogez l'ReadJob
API d'Elastic Transcoder pour suivre l'état d'une tâche, vous devez faire appelReadJob
en permanence à 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 les événements pour suivre l'état des tâches.
Chaque notification Elastic Transcoder est envoyée sous la forme d'un objet JSON dans leMessage
champ. Les notifications étant elles-mêmes envoyées au format JSON, vous devez échapper à la notification Elastic Transcoder dans la chaîne du message. Pour plus d'informations sur le format et le contenu des notifications Elastic Transcoder, consultez la section Notifications.
Lorsque vous rédigez du code personnalisé pour gérer les notifications relatives à l'état des tâches, suivez les bonnes pratiques suivantes :
Les gestionnaires doivent être idempotents. Il est possible qu'une notification soit envoyée plus d'une fois.
Les gestionnaires doivent prendre en charge les notifications de rupture de commande. Il est possible que les notifications ne soient pas livrées dans le bon ordre.
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 particulier sera remise à un travailleur en particulier.
Les gestionnaires doivent être des opérations courtes. Tous les messages doivent être géré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 consommer les notifications en interrogeant une file d'attente Amazon SQS abonnée à votre sujet de notification. Comme Amazon SQS utilise un mécanisme d'interrogation de longue durée, 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 forte charge, et ne nécessite généralement aucune configuration d'ACL particulière.
Pour PHP s'exécutant dans Apache, nous vous recommandons d'inscrire votre terminal 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
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.
Rubriques
Configuration de votre environnement Java
Cette section vous guide dans la configuration de votre environnement Java.
Rubriques
- Configuration du kit AWS SDK pour Java
- Création de compartiments d'entrée et de sortie Amazon S3
- Créer une rubrique Amazon SNS pour recevoir des notifications de stratégie de compartiment Amazon SNS
- Création d'une file d'attente Amazon SQS pour demander des notifications sur l'état des tâches
- Abonnement de votre file d'attente Amazon SQS à une rubrique Amazon SNS
- Création d'un pipeline Elastic Transcoder
- Création d'une CloudFront distribution Amazon pour diffuser du contenu de manière évolutive
- Modifier de stratégie de stratégie de stratégie de stratégie de compartiment Amazon S3
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
Ces exemples supposent que vous utilisez AWS Toolkit pour Eclipse. Vous avez besoin du kit AWS SDK pour Java
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
Création de compartiments d'entrée et de sortie Amazon S3
Ouvrez la console Amazon S3
. Dans la console, cliquez sur Create Bucket.
Dans le champ Nom du compartiment, entrez le nom souhaité pour votre compartiment d'entrée.
Toujours dans la console Amazon S3, cliquez à nouveau Create ate ate (Créer un compartiment).
Dans le champ Nom du compartiment, entrez le nom souhaité pour votre compartiment de sortie.
Créer une rubrique Amazon SNS pour recevoir des notifications de stratégie de compartiment Amazon SNS
Ouvrez la console Amazon SNS
. Dans la console, cliquez sur Créer et ajouter, puis sélectionnez Créer une nouvelle rubrique.
Dans le champ Nom du sujet, saisissez,
ets-sample-topic
puis cliquez sur Créer un sujet.Enregistrez l'ARN de
ets-sample-topic
.
Création d'une file d'attente Amazon SQS pour demander des notifications sur l'état des tâches
Ouvrez la console Amazon SQS
. Dans la console, cliquez sur Créer une nouvelle file d'attente.
Dans le champ Nom de la file d'attente, saisissez,
ets-sample-queue
puis cliquez sur Créer une file d'attente.Enregistrez l'URL de file d'attente Amazon SQS.
Abonnement de votre file d'attente Amazon SQS à une rubrique Amazon SNS
Ouvrez la console Amazon SQS
. Dans la console, effectuez votre sélection ets-sample-queuedans la liste des files d'attente.
Sous Actions de file d'attente, sélectionnez Subscribe Queue to Amazon SNS Topic.
Sous Choisir un sujet, sélectionnez ets-sample-topicpuis cliquez sur S'abonner.
Vous devriez voir une confirmation indiquant que votre file d'attente a bien été abonnée à votre sujet.
Création d'un pipeline Elastic Transcoder
Ouvrez la console Amazon Elastic Transcoder
. Dans la console, cliquez sur Créer un nouveau pipeline.
Dans le champ Nom du pipeline, entrez
ets-sample-pipeline
.Dans le champ Input Bucket, entrez le nom de votre bucket d'entrée.
Laissez le rôle IAM tel quel
Console Default Role
.Dans Configurer le compartiment Amazon S3 pour les fichiers transcodés et les listes de lecture, entrez le nom de votre compartiment de sortie.
Toujours dans Configurer le compartiment Amazon S3 pour les fichiers et les listes de lecture transcodés, sélectionnez la classe de stockage standard.
Développez le menu déroulant Notification (Notification).
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
.Cliquez sur Create Pipeline.
Enregistrez l'ID du pipeline Elastic Transcoder.
Création d'une CloudFront distribution Amazon pour diffuser du contenu de manière évolutive
Ouvrez la CloudFront console Amazon
. Dans le volet de navigation de la console, développez Private Content, puis cliquez sur Origin Access Identity.
Cliquez sur Créer une identité Origin Access.
Cliquez sur Create.
Enregistrez l'identifiant utilisateur canonique Amazon S3 généré lorsque vous créez votre identité d'accès d'origine.
Dans le volet de navigation, cliquez sur Distribution (Distribution).
Cliquez sur Créer une distribution.
Sélectionnez Web, puis cliquez sur Continuer.
Dans Paramètres d'origine, saisissez votre compartiment de sortie Amazon S3 comme nom de domaine d'origine.
Dans le champ Origin ID, saisissez
S3-transcoder-sample-output
.Pour Restreindre l'accès aux compartiments, sélectionnez Oui.
Cliquez sur Créer une distribution et enregistrez le nom de domaine de la distribution.
Modifier de stratégie de stratégie de stratégie de stratégie de compartiment Amazon S3
Ouvrez la console Amazon S3
. À côté du compartiment de sortie, cliquez sur l'icône en forme de loupe pour afficher les propriétés du compartiment.
Développez les autorisations et cliquez sur Ajouter une politique de compartiment.
Entrez la déclaration de politique suivante, en remplaçant CloudFront-oai-s3-canonical-user-id par
your recorded Amazon S3 canonical user ID
et s3-output-bucket-name parthe name of your output bucket
.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.
Configuration de votre environnement Ruby
Cette section vous guide dans la configuration de votre environnement Ruby.
Rubriques
- Configuration du kit AWS SDK pour Ruby
- Création de compartiments d'entrée et de sortie Amazon S3
- Créer une rubrique Amazon SNS pour recevoir des notifications de stratégie de compartiment Amazon SNS
- Création d'une file d'attente Amazon SQS pour demander des notifications sur l'état des tâches
- Abonnement de votre file d'attente Amazon SQS à une rubrique Amazon SNS
- Création d'un pipeline Elastic Transcoder
- Création d'une CloudFront distribution Amazon pour diffuser du contenu de manière évolutive
- Modifier de stratégie de stratégie de stratégie de stratégie de compartiment Amazon S3
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
Le kit SDK AWS pour Ruby est disponible ici
gem install aws-sdk
Pour plus d'informations, consultez la Documentation du kit SDK AWS pour Ruby
Création de compartiments d'entrée et de sortie Amazon S3
Ouvrez la console Amazon S3
. Dans la console, cliquez sur Create Bucket.
Dans le champ Nom du compartiment, entrez le nom souhaité pour votre compartiment d'entrée.
Toujours dans la console Amazon S3, cliquez à nouveau Create ate ate (Créer un compartiment).
Dans le champ Nom du compartiment, entrez le nom souhaité pour votre compartiment de sortie.
Créer une rubrique Amazon SNS pour recevoir des notifications de stratégie de compartiment Amazon SNS
Ouvrez la console Amazon SNS
. Dans la console, cliquez sur Créer et ajouter, puis sélectionnez Créer une nouvelle rubrique.
Dans le champ Nom du sujet, saisissez,
ets-sample-topic
puis cliquez sur Créer un sujet.Enregistrez l'ARN de
ets-sample-topic
.
Création d'une file d'attente Amazon SQS pour demander des notifications sur l'état des tâches
Ouvrez la console Amazon SQS
. Dans la console, cliquez sur Créer une nouvelle file d'attente.
Dans le champ Nom de la file d'attente, saisissez,
ets-sample-queue
puis cliquez sur Créer une file d'attente.Enregistrez l'URL de file d'attente Amazon SQS.
Abonnement de votre file d'attente Amazon SQS à une rubrique Amazon SNS
Ouvrez la console Amazon SQS
. Dans la console, effectuez votre sélection ets-sample-queuedans la liste des files d'attente.
Sous Actions de file d'attente, sélectionnez Subscribe Queue to Amazon SNS Topic.
Sous Choisir un sujet, sélectionnez ets-sample-topicpuis cliquez sur S'abonner.
Vous devriez voir une confirmation indiquant que votre file d'attente a bien été abonnée à votre sujet.
Création d'un pipeline Elastic Transcoder
Ouvrez la console Amazon Elastic Transcoder
. Dans la console, cliquez sur Créer un nouveau pipeline.
Dans le champ Nom du pipeline, entrez
ets-sample-pipeline
.Dans le champ Input Bucket, entrez le nom de votre bucket d'entrée.
Laissez le rôle IAM tel quel
Console Default Role
.Dans Configurer le compartiment Amazon S3 pour les fichiers transcodés et les listes de lecture, entrez le nom de votre compartiment de sortie.
Toujours dans Configurer le compartiment Amazon S3 pour les fichiers et les listes de lecture transcodés, sélectionnez la classe de stockage standard.
Développez le menu déroulant Notification (Notification).
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
.Cliquez sur Create Pipeline.
Enregistrez l'ID du pipeline Elastic Transcoder.
Création d'une CloudFront distribution Amazon pour diffuser du contenu de manière évolutive
Ouvrez la CloudFront console Amazon
. Dans le volet de navigation de la console, développez Private Content, puis cliquez sur Origin Access Identity.
Cliquez sur Créer une identité Origin Access.
Cliquez sur Create.
Enregistrez l'identifiant utilisateur canonique Amazon S3 généré lorsque vous créez votre identité d'accès d'origine.
Dans le volet de navigation, cliquez sur Distribution (Distribution).
Cliquez sur Créer une distribution.
Sélectionnez Web, puis cliquez sur Continuer.
Dans Paramètres d'origine, saisissez votre compartiment de sortie Amazon S3 comme nom de domaine d'origine.
Dans le champ Origin ID, saisissez
S3-transcoder-sample-output
.Pour Restreindre l'accès aux compartiments, sélectionnez Oui.
Cliquez sur Créer une distribution et enregistrez le nom de domaine de la distribution.
Modifier de stratégie de stratégie de stratégie de stratégie de compartiment Amazon S3
Ouvrez la console Amazon S3
. À côté du compartiment de sortie, cliquez sur l'icône en forme de loupe pour afficher les propriétés du compartiment.
Développez les autorisations et cliquez sur Ajouter une politique de compartiment.
Entrez la déclaration de politique suivante, en remplaçant CloudFront-oai-s3-canonical-user-id par
your recorded Amazon S3 canonical user ID
et s3-output-bucket-name parthe name of your output bucket
.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.
Configuration de votre environnement PHP
Cette section vous guide dans la configuration de votre environnement PHP.
Rubriques
- Installation de l'exemple de code
- Configuration du kit AWS SDK pour PHP
- Création de compartiments d'entrée et de sortie Amazon S3
- Créer une rubrique Amazon SNS pour recevoir des notifications de stratégie de stratégie de compartiment Amazon SNS
- Abonnement de votre serveur à Amazon SNS
- Création d'un pipeline Elastic Transcoder
- Création d'une CloudFront distribution Amazon pour diffuser du contenu de manière évolutive
- Modifier de stratégie de stratégie de stratégie de stratégie de compartiment Amazon S3
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 en mesure de recevoir des informations provenant d'Internet pour recevoir des notifications Amazon SNS.
Les exemples sont écrits pour fonctionner avec PHP version 5.4 ou ultérieure.
Installation de l'exemple de code
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 :
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
Vous trouverez le kit AWS SDK pour PHP ici
Pour plus d'informations, consultez la Documentation du kit AWS SDK pour PHP
Création de compartiments d'entrée et de sortie Amazon S3
Ouvrez la console Amazon S3
. Dans la console, cliquez sur Create Bucket.
Dans le champ Nom du compartiment, entrez le nom souhaité pour votre compartiment d'entrée.
Toujours dans la console Amazon S3, cliquez à nouveau Create ate ate (Créer un compartiment).
Dans le champ Nom du compartiment, entrez le nom souhaité pour votre compartiment de sortie.
Créer une rubrique Amazon SNS pour recevoir des notifications de stratégie de stratégie de compartiment Amazon SNS
Ouvrez la console Amazon SNS
. Dans la console, cliquez sur Créer et ajouter, puis sélectionnez Créer une nouvelle rubrique.
Dans le champ Nom du sujet, saisissez,
ets-sample-topic
puis cliquez sur Créer un sujet.Enregistrez l'ARN de
ets-sample-topic
.
Abonnement de votre serveur à Amazon SNS
Vérifiez que l'exemple de code PHP a été installé.
Ouvrez la console Amazon SNS
. En dessous AdditionalActions, cliquez sur Créer un abonnement.
Sélectionnez HTTP ou HTTPS en fonction de la configuration de votre serveur.
Dans Endpoint, saisissez le point de terminaison de votre serveur. Le chemin du point de terminaison doit pointer sur
JobStatusNotificationsSampleNotificationHandler.php
.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
Ouvrez la console Amazon Elastic Transcoder
. Dans la console, cliquez sur Créer un nouveau pipeline.
Dans le champ Nom du pipeline, entrez
ets-sample-pipeline
.Dans le champ Input Bucket, entrez le nom de votre bucket d'entrée.
Laissez le rôle IAM tel quel
Console Default Role
.Dans Configurer le compartiment Amazon S3 pour les fichiers transcodés et les listes de lecture, entrez le nom de votre compartiment de sortie.
Toujours dans Configurer le compartiment Amazon S3 pour les fichiers et les listes de lecture transcodés, sélectionnez la classe de stockage standard.
Développez le menu déroulant Notification (Notification).
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
.Cliquez sur Create Pipeline.
Enregistrez l'ID du pipeline Elastic Transcoder.
Création d'une CloudFront distribution Amazon pour diffuser du contenu de manière évolutive
Ouvrez la CloudFront console Amazon
. Dans le volet de navigation de la console, développez Private Content, puis cliquez sur Origin Access Identity.
Cliquez sur Créer une identité Origin Access.
Cliquez sur Create.
Enregistrez l'identifiant utilisateur canonique Amazon S3 généré lorsque vous créez votre identité d'accès d'origine.
Dans le volet de navigation, cliquez sur Distribution (Distribution).
Cliquez sur Créer une distribution.
Sélectionnez Web, puis cliquez sur Continuer.
Dans Paramètres d'origine, saisissez votre compartiment de sortie Amazon S3 comme nom de domaine d'origine.
Dans le champ Origin ID, saisissez
S3-transcoder-sample-output
.Pour Restreindre l'accès aux compartiments, sélectionnez Oui.
Cliquez sur Créer une distribution et enregistrez le nom de domaine de la distribution.
Modifier de stratégie de stratégie de stratégie de stratégie de compartiment Amazon S3
Ouvrez la console Amazon S3
. À côté du compartiment de sortie, cliquez sur l'icône en forme de loupe pour afficher les propriétés du compartiment.
Développez les autorisations et cliquez sur Ajouter une politique de compartiment.
Entrez la déclaration de politique suivante, en remplaçant CloudFront-oai-s3-canonical-user-id par
your recorded Amazon S3 canonical user ID
et s3-output-bucket-name parthe name of your output bucket
.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.
Configuration de votre environnement Python
Cette section vous guide dans la configuration de votre environnement Python.
Rubriques
- Configuration du kit AWS SDK pour Python
- Création de compartiments d'entrée et de sortie Amazon S3
- Créer une rubrique Amazon SNS pour recevoir des notifications de stratégie de stratégie de compartiment Amazon SNS
- Création d'une file d'attente Amazon SQS pour demander des notifications sur l'état des tâches
- Abonnement de votre file d'attente Amazon SQS à une rubrique Amazon SNS
- Création d'un pipeline Elastic Transcoder
- Création d'une CloudFront distribution Amazon pour diffuser du contenu de manière évolutive
- Modifier de stratégie de stratégie de stratégie de stratégie de compartiment Amazon S3
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
Vous trouverez le kit AWS SDK pour Python ici
pip-2.7 install boto
Pour plus d'informations, consultez la Documentation sur le kit SDK AWS pour Python
Création de compartiments d'entrée et de sortie Amazon S3
Ouvrez la console Amazon S3
. Dans la console, cliquez sur Create Bucket.
Dans le champ Nom du compartiment, entrez le nom souhaité pour votre compartiment d'entrée.
Toujours dans la console Amazon S3, cliquez à nouveau Create ate ate (Créer un compartiment).
Dans le champ Nom du compartiment, entrez le nom souhaité pour votre compartiment de sortie.
Créer une rubrique Amazon SNS pour recevoir des notifications de stratégie de stratégie de compartiment Amazon SNS
Ouvrez la console Amazon SNS
. Dans la console, cliquez sur Créer et ajouter, puis sélectionnez Créer une nouvelle rubrique.
Dans le champ Nom du sujet, saisissez,
ets-sample-topic
puis cliquez sur Créer un sujet.Enregistrez l'ARN de
ets-sample-topic
.
Création d'une file d'attente Amazon SQS pour demander des notifications sur l'état des tâches
Ouvrez la console Amazon SQS
. Dans la console, cliquez sur Créer une nouvelle file d'attente.
Dans le champ Nom de la file d'attente, saisissez,
ets-sample-queue
puis cliquez sur Créer une file d'attente.Enregistrez l'URL de file d'attente Amazon SQS.
Abonnement de votre file d'attente Amazon SQS à une rubrique Amazon SNS
Ouvrez la console Amazon SQS
. Dans la console, effectuez votre sélection ets-sample-queuedans la liste des files d'attente.
Sous Actions de file d'attente, sélectionnez Subscribe Queue to Amazon SNS Topic.
Sous Choisir un sujet, sélectionnez ets-sample-topicpuis cliquez sur S'abonner.
Vous devriez voir une confirmation indiquant que votre file d'attente a bien été abonnée à votre sujet.
Création d'un pipeline Elastic Transcoder
Ouvrez la console Amazon Elastic Transcoder
. Dans la console, cliquez sur Créer un nouveau pipeline.
Dans le champ Nom du pipeline, entrez
ets-sample-pipeline
.Dans le champ Input Bucket, entrez le nom de votre bucket d'entrée.
Laissez le rôle IAM tel quel
Console Default Role
.Dans Configurer le compartiment Amazon S3 pour les fichiers transcodés et les listes de lecture, entrez le nom de votre compartiment de sortie.
Toujours dans Configurer le compartiment Amazon S3 pour les fichiers et les listes de lecture transcodés, sélectionnez la classe de stockage standard.
Développez le menu déroulant Notification (Notification).
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
.Cliquez sur Create Pipeline.
Enregistrez l'ID du pipeline Elastic Transcoder.
Création d'une CloudFront distribution Amazon pour diffuser du contenu de manière évolutive
Ouvrez la CloudFront console Amazon
. Dans le volet de navigation de la console, développez Private Content, puis cliquez sur Origin Access Identity.
Cliquez sur Créer une identité Origin Access.
Cliquez sur Create.
Enregistrez l'identifiant utilisateur canonique Amazon S3 généré lorsque vous créez votre identité d'accès d'origine.
Dans le volet de navigation, cliquez sur Distribution (Distribution).
Cliquez sur Créer une distribution.
Sélectionnez Web, puis cliquez sur Continuer.
Dans Paramètres d'origine, saisissez votre compartiment de sortie Amazon S3 comme nom de domaine d'origine.
Dans le champ Origin ID, saisissez
S3-transcoder-sample-output
.Pour Restreindre l'accès aux compartiments, sélectionnez Oui.
Cliquez sur Créer une distribution et enregistrez le nom de domaine de la distribution.
Modifier de stratégie de stratégie de stratégie de stratégie de compartiment Amazon S3
Ouvrez la console Amazon S3
. À côté du compartiment de sortie, cliquez sur l'icône en forme de loupe pour afficher les propriétés du compartiment.
Développez les autorisations et cliquez sur Ajouter une politique de compartiment.
Entrez la déclaration de politique suivante, en remplaçant CloudFront-oai-s3-canonical-user-id par
your recorded Amazon S3 canonical user ID
et s3-output-bucket-name parthe name of your output bucket
.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.
Exemples Java
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
Cet exemple explique comment créer une tâche HLS et un fichier de liste de lecture HLS pouvant être utilisés pour lire un flux de débit adaptatif.
Téléchargement des exemples de HLS Java
Vous pouvez télécharger l'exemple de code ici.
Fragments d'exemples de code
L'exemple de code Java inclut :
La classe
HlsJobCreationSample
Tâches
Pour exécuter l'exemple, procédez de la manière suivante :
Configurez votre environnement en appliquant les instructions suivantes : Configuration de votre environnement Java.
Téléchargez l'exemple de code.
Dans Eclipse, ouvrez
com/amazonaws/services/elastictranscoder/samples/HlsJobCreationSample.java
.Remplacez PIPELINE_ID et INPUT_KEY par les valeurs appropriées.
Exécutez les exemples dans Eclipse.
Exemples de notification
Rubriques
Exemple de syntaxe de notification
{ "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
Vous pouvez télécharger l'exemple de code ici.
Fragments d'exemples de code
L'exemple de code Java inclut :
La classe
Notification
: pour utiliser les notifications provenant de Java, nous utilisons la bibliothèque Jackson JSON pour désérialiser les notifications de statut de tâche en objets POJO. LaNotification
classe modélise le message que nous recevons de la file d'attente Amazon SQS.La classe
JobStatusNotification
: LaJobStatusNotification
classe modélise une notification Elastic Transcoder.La classe
SqsQueueNotificationWorker
: laSqsQueueNotificationWorker
classe peut être lancé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'interfaceJobStatusNotificationHandler
peut être mise en œuvre pour permettre un traitement personnalisé pour les notifications.La classe
JobStatusNotificationsSample
: la classeJobStatusNotificationsSample
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
Pour exécuter l'exemple, procédez de la manière suivante :
Configurez votre environnement en appliquant les instructions suivantes : Configuration de votre environnement Java.
Téléchargez l'exemple de code.
Décompressez l'exemple de code dans le répertoire source de votre projet JAVA.
Ouvrez
com/amazonaws/services/elastictranscoder/samples/JobStatusNotificationsSample.java
dans Eclipse.Remplacez PIPELINE_ID, SQS_QUEUE_URL et INPUT_KEY par les valeurs appropriées.
Exécutez l'exemple dans Eclipse.
Exemples Ruby
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
Cet exemple explique comment créer une tâche HLS et un fichier de liste de lecture HLS pouvant être utilisés pour lire un flux de débit adaptatif.
Téléchargement des exemples de HLS Ruby
Vous pouvez télécharger l'exemple de code ici.
Fragments d'exemples de code
L'exemple de code Ruby inclut :
le fichier
HlsJobCreationSample.rb
;
Tâches
Pour exécuter l'exemple, procédez de la manière suivante :
Configurez votre environnement en appliquant les instructions suivantes : Configuration de votre environnement Ruby.
Téléchargez l'exemple de code.
Décompressez l'exemple de code dans le répertoire source de votre projet Ruby.
Modifiez
HlsJobCreationSample.rb
et remplacez pipeline_id et input_key par les valeurs appropriées.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
Rubriques
Exemple de syntaxe de notification
{ "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
Vous pouvez télécharger l'exemple de code ici.
Fragments d'exemples de code
L'exemple de code Ruby inclut :
La classe
SqsQueueNotificationWorker
: laSqsQueueNotificationWorker
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 une tâche Amazon SQS et attend la fin de la tâche. 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_handlers 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
Pour exécuter l'exemple, procédez de la manière suivante :
Configurez votre environnement en appliquant les instructions suivantes : Configuration de votre environnement Ruby.
Téléchargez l'exemple de code.
Décompressez l'exemple de code dans le répertoire source de votre projet Ruby.
Modifiez
JobStatusNotificationsSample.rb
et remplacez pipeline_id, sqs_queue_url et input_key par les valeurs appropriées.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
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 en mesure de recevoir des informations provenant d'Internet pour recevoir des notifications Amazon SNS.
Les exemples sont écrits pour fonctionner avec PHP version 5.4 ou ultérieure.
Exemples de HLS
Cet exemple explique comment créer une tâche HLS et un fichier de liste de lecture HLS pouvant être utilisés pour lire un flux de débit adaptatif.
Télécharger un exemple de PHP HLS
Vous pouvez télécharger l'exemple de code ici.
Fragments d'exemples de code
L'exemple de code PHP inclut :
le fichier
HlsJobCreationSample.php
;
Tâches
Pour exécuter l'exemple, procédez de la manière suivante :
Configurez votre environnement en appliquant les instructions suivantes : Configuration de votre environnement PHP.
Téléchargez l'exemple de code.
Dans votre navigateur, chargez la page http ://<your-endpoint>/transcoder-samples/HlsJobCreationSample .php.
Renseignez l'ID de pipeline et la clé d'entrée et soumettez le formulaire pour créer une tâche.
Exemples de notification
Rubriques
Exemple de syntaxe de notification
{ "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
Vous pouvez télécharger l'exemple de code ici.
Fragments d'exemples de code
L'exemple de code PHP inclut :
Le fichier
JobStatusNotificationsSampleNotificationHandler.php
: Lorsqu'une notification fait l'objet d'une opération POST sur votre serveur, le gestionnaire de notifications écrit le statut dans un fichier sous /tmp/<id-tâche>.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
Pour exécuter l'exemple, procédez de la manière suivante :
Configurez votre environnement en appliquant les instructions suivantes : Configuration de votre environnement PHP.
Téléchargez l'exemple de code.
Décompressez l'exemple de code dans le répertoire source de votre projet PHP.
Dans votre navigateur, chargez la page http ://<your-endpoint>/transcoder-samples/JobStatusNotificationsSample .php.
Renseignez l'ID de pipeline et la clé d'entrée que vous souhaitez transcoder, puis appuyez sur le bouton Create Job.
Exemples Python
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
Cet exemple explique comment créer une tâche HLS et un fichier de liste de lecture HLS pouvant être utilisés pour lire un flux de débit adaptatif.
Télécharger un exemple de HLS Python
Vous pouvez télécharger l'exemple de code ici.
Fragments d'exemples de code
L'exemple de code Python inclut :
le fichier
HlsJobCreationSample.py
;
Tâches
Pour exécuter l'exemple, procédez de la manière suivante :
Configurez votre environnement en appliquant les instructions suivantes : Configuration de votre environnement Python.
Téléchargez l'exemple de code.
Décompressez l'exemple de code.
Modifiez
HlsJobCreationSample.py
et remplacez pipeline_id et input_key par les valeurs appropriées.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
Rubriques
Exemple de syntaxe de notification
{ "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
Vous pouvez télécharger l'exemple de code ici.
Fragments d'exemples de code
L'exemple de code Python inclut :
La classe
SqsQueueNotificationWorker.py
: laSqsQueueNotificationWorker
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 laJobStatusNotificationHandler
classe, qui est fournie pour fournir un cadre pour la 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
: leJobStatusNotificationSample.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
Pour exécuter l'exemple, procédez de la manière suivante :
Configurez votre environnement en appliquant les instructions suivantes : Configuration de votre environnement Python.
Téléchargez l'exemple de code.
Décompressez l'exemple de code dans un dossier local.
Modifiez
JobStatusNotificationsSample.py
et remplacez pipeline_id, sqs_queue_url et input_key par les valeurs appropriées.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