amazon kinesis data firehose - aws documentation · lorsque vous vous inscrivez à amazon web...

139
Amazon Kinesis Data Firehose Manuel du développeur:

Upload: others

Post on 25-Jul-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data FirehoseManuel du développeur:

Page 2: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:

Amazon Kinesis Data Firehose: Manuel du développeur:Copyright © 2020 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's,in any manner that is likely to cause confusion among customers, or in any manner that disparages or discreditsAmazon. All other trademarks not owned by Amazon are the property of their respective owners, who may or may notbe affiliated with, connected to, or sponsored by Amazon.

Page 3: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:

Table of ContentsPrésentation d'Amazon Kinesis Data Firehose ? ...................................................................................... 1

Concepts clés ............................................................................................................................ 1Flux de données ........................................................................................................................ 1

Configuration ...................................................................................................................................... 4Inscrivez-vous à AWS ................................................................................................................. 4Facultatif : Télécharger les bibliothèques et les outils ....................................................................... 4

Création d'une Flux de transmission Kinesis Data Firehose ....................................................................... 5Nom et source ........................................................................................................................... 5Traiter les enregistrements ........................................................................................................... 6Choix d'une destination ............................................................................................................... 6

Choisissez Amazon S3 pour votre destination ......................................................................... 7Choisissez Amazon Redshift pour votre destination ................................................................. 7Choisissez Amazon ES pour votre destination ........................................................................ 8Choisir un point de terminaison HTTP pour votre destination ................................................... 10Choisissez Datadog pour votre destination ............................................................................ 11Choisissez le cloud mongodb pour votre destination ............................................................... 13Choisissez un nouveau relique pour votre destination ............................................................. 14Choix d'une destination Splunk ........................................................................................... 15

Configuration des paramètres ..................................................................................................... 17Test de votre flux de diffusion ............................................................................................................ 19

Prérequis ................................................................................................................................. 19Effectuez un test à l'aide de Amazon S3 comme destination ............................................................ 19Effectuez un test à l'aide de Amazon Redshift comme destination .................................................... 20Effectuez un test à l'aide de Amazon ES comme destination ........................................................... 20Test avec Splunk comme destination ........................................................................................... 21

Envoi de données à un flux de diffusion Kinesis Data Firehose ................................................................ 22Écriture avec Kinesis Data Streams ............................................................................................. 22Écriture à l’aide de l’agent .......................................................................................................... 23

Prerequisites .................................................................................................................... 24Credentials ....................................................................................................................... 24Fournisseurs d'informations d'identification personnalisées ...................................................... 25Téléchargement et installation de l'agent .............................................................................. 25Configuration et démarrage de l'agent .................................................................................. 26Paramètres de configuration de l'agent ................................................................................. 27Surveillance de plusieurs répertoires de fichiers et écriture dans plusieurs flux ............................ 30Utilisez l’agent pour prétraiter les données ............................................................................ 30Commandes de l’interface de ligne de commande de l’agent ................................................... 34

Ecriture à l'aide du kit SDK AWS ................................................................................................ 34Opérations d’écriture uniques à l'aide de PutRecord ............................................................... 35Opérations d'écriture par lots à l'aide de PutRecordBatch ........................................................ 35

Écriture avec CloudWatch Logs .................................................................................................. 35Écriture avec CloudWatch Events ................................................................................................ 36Écriture avec AWS IoT .............................................................................................................. 36

Sécurité ........................................................................................................................................... 37Protection des données ............................................................................................................. 37

Chiffrement côté serveur avec Kinesis Data Streams comme source de données ........................ 37Chiffrement côté serveur avec l'instruction PUT directe ou d'autres sources de données ............... 38

Contrôle de l'accès ................................................................................................................... 38Attribution à votre application de l'accès à vos ressources Kinesis Data Firehose ......................... 39Autoriser Kinesis Data Firehose à assumer un rôle IAM .......................................................... 40Accorder à Kinesis Data Firehose l'accès à AWS Glue pour la conversion de format de données .... 40Attribution de l'accès à une destination Kinesis Data Firehose à Amazon S3 ............................... 40Attribution de l'accès à une destination Kinesis Data Firehose à Amazon Redshift ....................... 42Accorder à Kinesis Data Firehose l'accès à une destination Amazon ES publique ........................ 44

iii

Page 4: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:

Accorder à Kinesis Data Firehose l'accès à une destination Amazon ES dans un VPC .................. 46Attribution à Kinesis Data Firehose de l'accès à une destination Splunk ..................................... 47Accès à Splunk dans un VPC ............................................................................................. 49Subvention Kinesis Data Firehose Accès à une destination de point de terminaison HTTP ............. 49Diffusion entre comptes vers une destination Amazon S3 ........................................................ 51Diffusion entre comptes vers une destination Amazon ES ....................................................... 52Utilisation des balises pour contrôler l'accès .......................................................................... 53

Surveillance ............................................................................................................................. 54Validation de la conformité ......................................................................................................... 54Résilience ................................................................................................................................ 55

Reprise après sinistre ........................................................................................................ 55Sécurité de l'infrastructure .......................................................................................................... 55

Points de terminaison d'un VPC (PrivateLink) ........................................................................ 56Bonnes pratiques de sécurité ..................................................................................................... 56

Implémentation d'un accès sur la base du moindre privilège .................................................... 56Utiliser des rôles IAM ........................................................................................................ 56Implémentation d'un chiffrement côté serveur dans des ressources dépendantes ......................... 57Utilisation de CloudTrail pour surveiller les appels d'API .......................................................... 57

Transformation de données ................................................................................................................ 58Flux de transformation de données .............................................................................................. 58Transformation de données et modèle d'état ................................................................................. 58Plans Lambda .......................................................................................................................... 59Gestion des échecs de transformation des données ....................................................................... 59Durée d’un appel Lambda .......................................................................................................... 60Sauvegarde de l'enregistrement source ........................................................................................ 60

Conversion du format d’enregistrement ................................................................................................ 61Exigences pour la conversion du format d'enregistrement ................................................................ 61Choix du désérialiseur JSON ...................................................................................................... 62Choix du sérialiseur .................................................................................................................. 63Conversion du format d'enregistrement d'entrée (console) ............................................................... 63Conversion du format d'enregistrement d'entrée (API) ..................................................................... 63Gestion des erreurs de conversion de format d'enregistrement ......................................................... 64Exemple de conversion du format d’enregistrement ........................................................................ 64

Intégration à Kinesis Data Analytics ..................................................................................................... 65Créer une application Kinesis Data Analytics qui lit à partir d’un flux de diffusion ................................. 65Rédiger les données depuis une application Kinesis Data Analytics vers un flux de diffusion .................. 65

Diffusion de données ......................................................................................................................... 66Format de diffusion des données ................................................................................................ 66Fréquence de diffusion des données ........................................................................................... 67Gestion des défaillances de diffusion des données ........................................................................ 68Format de nom d'objet Amazon S3 ............................................................................................. 70Rotation d'index pour la destination Amazon ES ............................................................................ 70Livraison entre les comptes AWS et les régions AWS pour les destinations de point de terminaisonHTTP ...................................................................................................................................... 71Enregistrements dupliqués ......................................................................................................... 71

  : Monitoring ..................................................................................................................................... 72Surveillance avec les métriques de CloudWatch ............................................................................ 72

Data Delivery CloudWatch metrics (Métriques de remise des données) ..................................... 73Métriques d'ingestion de données ....................................................................................... 78Métriques CloudWatch de niveau API .................................................................................. 82Data Transformation CloudWatch Metrics ............................................................................. 83Format Conversion CloudWatch Metrics ............................................................................... 84Métriques CloudWatch de chiffrement côté serveur (SSE) ....................................................... 84Dimensions pour Kinesis Data Firehose ............................................................................... 84Métriques d'utilisation Kinesis Data Firehose ......................................................................... 85Accès aux métriques CloudWatch pour Kinesis Data Firehose ................................................. 85Bonnes pratiques avec les alarmes CloudWatch .................................................................... 86

iv

Page 5: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:

Surveillance avec CloudWatch Logs .................................................................................... 86Surveillance de l'état de l'agent ........................................................................................... 93Journalisation des appels de l'API Kinesis Data Firehose avec AWS CloudTrail ........................... 94

Préfixes personnalisés Amazon S3 ...................................................................................................... 99L'espace de noms timestamp ................................................................................................... 99L'espace de noms firehose ..................................................................................................... 99Règles sémantiques ................................................................................................................ 100Exemples de préfixe ................................................................................................................ 101

Utilisation de Kinesis Data Firehose avec AWS PrivateLink ................................................................... 103Points de terminaison de VPC d'interface (AWS PrivateLink) pour Kinesis Data Firehose .................... 103Utilisation de points de terminaison de VPC d'interface (AWS PrivateLink) pour Kinesis Data Firehose ... 103Disponibilité ............................................................................................................................ 105

Balisage de vos flux de diffusion ....................................................................................................... 107Principes de base des balises ................................................................................................... 107Suivi des coûts à l'aide du balisage ........................................................................................... 107Restrictions liées aux balises .................................................................................................... 108Balisage des flux de diffusion à l'aide de l'API Amazon Kinesis Data Firehose ................................... 108

Didacticiel : Envoi de journaux de flux VPC vers Splunk ........................................................................ 109Étape 1 : Envoi de données de journal vers CloudWatch ............................................................... 110Étape 2 : Créer un flux de diffusion ............................................................................................ 112Étape 3 : Envoyer les données au flux de diffusion ....................................................................... 115Étape 4  : Vérifier les résultats ................................................................................................... 116

Dépannage ..................................................................................................................................... 117Données non diffusées à Amazon S3 ........................................................................................ 117Données non diffusées à Amazon Redshift ................................................................................. 118Données non diffusées à Amazon Elasticsearch Service ............................................................... 119Données non transmises à Splunk ............................................................................................. 119Flux de diffusion non disponible en tant que cible d'une action CloudWatch Logs, CloudWatch Eventsou AWS IoT ........................................................................................................................... 120Augmentation ou non-émission de la métrique d'actualité des données ............................................ 121Échec de la conversion du format d'enregistrement vers Apache Parquet ......................................... 122Les données n'arrivent pas à destination malgré de bonnes métriques ............................................. 122

Quota ............................................................................................................................................ 123Annexe -Spécifications de demande et de réponse HTTP Endpoint Delivery ............................................. 125

Format des demandes ............................................................................................................. 125Format de la réponse .............................................................................................................. 128Examples ............................................................................................................................... 129

Historique du document ................................................................................................................... 131Glossaire AWS ............................................................................................................................... 133................................................................................................................................................. cxxxiv

v

Page 6: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Concepts clés

Présentation d'Amazon Kinesis DataFirehose ?

Amazon Kinesis Data Firehose est un service entièrement géré pour livrer en temps réel données destreaming vers des destinations telles que Amazon Simple Storage Service (Amazon S3), AmazonRedshift, Amazon Elasticsearch Service (Amazon ES), Splunk et tout point de terminaison HTTPpersonnalisé ou les terminaux HTTP appartenant à des fournisseurs de services tiers pris en charge,y compris Datadog, mongodb et New Relic. Kinesis Data Firehose fait partie du Kinesis plateforme dedonnées en continu, avec Kinesis Data Streams, Flux vidéo Kinesis, et Amazon Kinesis Data Analytics.Avec Kinesis Data Firehose, vous n'avez pas besoin d'écrire des applications ou de gérer des ressources.Vous pouvez configurer vos applications producteur pour envoyer des données à Kinesis Data Firehose,qui les remet automatiquement à la destination que vous avez spécifiée. Vous pouvez égalementconfigurer Kinesis Data Firehose pour que vos données soient transformées avant d'être remises.

Pour plus d'informations sur les solutions Big Data AWS, consultez la page Big Data sur AWS. Pourplus d'informations sur les solutions de données de streaming AWS, consultez la page Qu'est-ce que lesdonnées diffusées en continu ?

Concepts clésLorsque vous démarrez avec Kinesis Data Firehose, il est utile de connaître les concepts suivants :

Flux de transmission Kinesis Data Firehose

L'entité sous-jacente de Kinesis Data Firehose. Vous utilisez Kinesis Data Firehose en créant un Fluxde transmission Kinesis Data Firehose et en y en envoyant ensuite des données. Pour en savoir plus,veuillez consultez Création d'un flux de diffusion Amazon Kinesis Data Firehose (p. 5) et Envoi dedonnées à un flux de diffusion Amazon Kinesis Data Firehose (p. 22).

record

Les données jugées utiles que l'application producteur envoie à Flux de transmission Kinesis DataFirehose. Un enregistrement peut atteindre 1000 Ko.

application producteur

L'application producteur envoie des enregistrements aux Flux de transmission Kinesis Data FirehosePar exemple, un serveur Web qui envoie des données de journal vers un flux est un producteur dedonnées. Vous pouvez aussi configurer votre Flux de transmission Kinesis Data Firehose afin qu'illise automatiquement les données d'un flux Kinesis existant et les charge à leur emplacement dedestination. Pour plus d'informations, consultez Envoi de données à un flux de diffusion AmazonKinesis Data Firehose (p. 22),

taille du tampon et intervalle de temps tampon

Kinesis Data Firehose met en tampon les données de streaming entrantes à une certaine taille ou pourun certain temps avant de les remettre aux destinations. Buffer Size est en mbs et Buffer Interval esten secondes.

Flux de donnéesPour les destinations Amazon S3, les données de diffusion sont délivrées à votre compartiment S3. Sila transformation de données est activée, vous pouvez en option sauvegarder les données source desauvegarde dans un autre compartiment Amazon S3.

1

Page 7: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Flux de données

Pour les destinations Amazon Redshift, les données de diffusion sont d'abord délivrées à votrecompartiment S3. Ensuite, Kinesis Data Firehose émet une Amazon Redshift COPY commande pourcharger les données à partir de votre compartiment S3 vers votre cluster Amazon Redshift. Si latransformation de données est activée, vous pouvez en option sauvegarder les données source desauvegarde dans un autre compartiment Amazon S3.

Pour les destinations Amazon ES, les données de streaming sont remises à votre cluster Amazon ES etpeuvent éventuellement être sauvegardées dans votre compartiment S3 simultanément.

2

Page 8: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Flux de données

Pour les destinations Splunk, les données de streaming sont remises à Splunk et peuvent éventuellementêtre sauvegardées dans votre compartiment S3 simultanément.

3

Page 9: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Inscrivez-vous à AWS

Configuration pour Amazon KinesisData Firehose

Avant d'utiliser Kinesis Data Firehose pour la première fois, exécutez les tâches suivantes :

Tâches• Inscrivez-vous à AWS (p. 4)• Facultatif : Télécharger les bibliothèques et les outils (p. 4)

Inscrivez-vous à AWSLorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquementinscrit à tous les services d'AWS, y compris Kinesis Data Firehose. Seuls les services que vous utilisezvous sont facturés.

Si vous possédez déjà un compte AWS, passez à la prochaine étape. Si tel n'est pas le cas, observez laprocédure suivante pour en créer un.

Pour s'inscrire à un compte AWS

1. Ouvrez https://portal.aws.amazon.com/billing/signup.2. Suivez les instructions en ligne.

Dans le cadre de la procédure d'inscription, vous recevrez un appel téléphonique et vous saisirez uncode de vérification en utilisant le clavier numérique du téléphone.

Facultatif : Télécharger les bibliothèques et lesoutils

Les bibliothèques et les outils suivants vous aideront à travailler avec Kinesis Data Firehose parprogrammation et à partir de la ligne de commande :

• L'Référence d'API Amazon Kinesis Data Firehose est l'ensemble des opérations de base prises encharge par Kinesis Data Firehose.

• Les kits SDK AWS pour Go, Java, .NET, Node.js, Python, et Ruby incluent un support et des exemplespour Kinesis Data Firehose.

Si votre version de AWS SDK for Java n'inclut pas d'exemples pour Kinesis Data Firehose, vous pouvezaussi télécharger le dernier kit SDK AWS à partir de GitHub.

• Le AWS Command Line Interface prend en charge Kinesis Data Firehose. L'AWS CLI vous permet decontrôler plusieurs services AWS à partir de la ligne de commande et de les automatiser à l'aide descripts.

4

Page 10: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Nom et source

Création d'un flux de diffusionAmazon Kinesis Data Firehose

Vous pouvez utiliser AWS Management Console ou un kit SDK AWS pour créer un Flux de transmissionKinesis Data Firehose vers la destination de votre choix.

Vous pouvez mettre à jour la configuration de votre flux de diffusion à tout moment après sa création, àl'aide de la console Kinesis Data Firehose ou de UpdateDestination. Votre Flux de transmission KinesisData Firehose reste à l'état ACTIVE pendant que votre configuration est mise à jour ; vous pouvez donccontinuer à envoyer des données. La configuration mise à jour prend généralement effet au bout dequelques minutes. Le numéro de version d'un Flux de transmission Kinesis Data Firehose est accru d'unevaleur de 1 après la mise à jour de la configuration. Il est pris en compte dans le nom de l'objet Amazon S3délivré. Pour plus d'informations, consultez Format de nom d'objet Amazon S3 (p. 70).

Les rubriques suivantes décrivent comment créer un Flux de transmission Kinesis Data Firehose :

Rubriques• Nom et source (p. 5)• Traiter les enregistrements (p. 6)• Choix d'une destination (p. 6)• Configuration des paramètres (p. 17)

Nom et sourceCette page décrit la page Nom et source de l'assistant Créer un flux de diffusion dans Amazon KinesisData Firehose.

Nom et source

1. Connectez-vous à AWS Management Console et ouvrez la console Kinesis à l'adresse https://console.aws.amazon.com/kinesis/.

2. Dans le volet de navigation, choisissez Data Firehose.3. Sélectionnez Create delivery Stream (Créer un flux de diffusion).4. Saisissez des valeurs pour les champs suivants :

Nom du flux de diffusion

Nom de votre Flux de transmission Kinesis Data Firehose.Source

• Instruction PUT directe ou autres sources : sélectionnez cette option pour créer un Flux detransmission Kinesis Data Firehose dans lequel les applications producteur écriront directement.

• Kinesis stream : Sélectionnez cette option pour configurer un Flux de transmission Kinesis DataFirehose qui utilise un flux Kinesis en tant que source de données. Vous pouvez ensuite utiliserKinesis Data Firehose pour lire facilement les données d'un flux de données Kinesis existantet les charger sur leur emplacement de destination. Pour en savoir plus sur comment utiliserKinesis Data Streams comme source de données, consultez Écriture dans Amazon KinesisData Firehose avec Kinesis Data Streams.

5. Choisissez Suivant pour passer à la page Traiter les enregistrements (p. 6).

5

Page 11: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Traiter les enregistrements

Traiter les enregistrementsCette rubrique décrit la page Traiter les enregistrements de l’assistant Créer un flux de diffusion dansAmazon Kinesis Data Firehose.

Traiter les enregistrements

1. Dans la section Transformer les enregistrements sources avec AWS Lambda, saisissez des valeurspour le champ suivant :

Record transformation (Transformation des enregistrements)

Pour créer un Flux de transmission Kinesis Data Firehose qui ne transforme pas les donnéesentrantes, sélectionnez Disabled (Désactivé).

Pour indiquer une fonction Lambda que Kinesis Data Firehose peut appeler et utiliser pourtransformer les données entrantes avant leur diffusion, sélectionnez Enabled (Activé). Vouspouvez configurer une nouvelle fonction Lambda à l'aide de vos plans Lambda ou en choisir uneexistante Lambda. Votre fonction Lambda doit contenir le modèle d'état requis par Kinesis DataFirehose. Pour plus d'informations, consultez Transformation de données Amazon Kinesis DataFirehose (p. 58).

2. Dans la section Conversion du format d’enregistrement, saisissez des valeurs pour le champ suivant :

Conversion du format d’enregistrement

Pour créer un Flux de transmission Kinesis Data Firehose qui ne convertisse pas le format desenregistrements de données entrants, sélectionnez Disabled (Désactivé).

Pour convertir le format des enregistrements entrants, sélectionnez Enabled (Activé), puisindiquez le format de sortie voulu. Vous devez indiquer un tableau AWS Glue qui contientle schéma que vous souhaitez que Kinesis Data Firehose utilise pour convertir votre formatd’enregistrement. Pour de plus amples informations, veuillez consulter Conversion du formatd’enregistrement (p. 61).

Pour obtenir un exemple de la configuration avec le format d'enregistrement de conversion AWSCloudFormation, consultez AWS::KinesisFirehose::DeliveryStream.

3. Sélectionnez Suivant pour accéder à la page Sélectionner une destination.

Choix d'une destinationCette rubrique décrit la page Choisir une destination de l'assistant Créer un flux de diffusion dans AmazonKinesis Data Firehose.

Kinesis Data Firehose peut envoyer des enregistrements à Amazon Simple Storage Service (Amazon S3),Amazon Redshift, Amazon Elasticsearch Service (Amazon ES) et tout point d’intérêt HTTP appartenant àvous ou à l’un de vos prestataires de services tiers, y compris Datadog, New Reliic et Splunk.

Rubriques• Choisissez Amazon S3 pour votre destination (p. 7)• Choisissez Amazon Redshift pour votre destination (p. 7)• Choisissez Amazon ES pour votre destination (p. 8)• Choisir un point de terminaison HTTP pour votre destination (p. 10)• Choisissez Datadog pour votre destination (p. 11)• Choisissez le cloud mongodb pour votre destination (p. 13)

6

Page 12: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Choisissez Amazon S3 pour votre destination

• Choisissez un nouveau relique pour votre destination (p. 14)• Choix d'une destination Splunk (p. 15)

Choisissez Amazon S3 pour votre destinationCette section décrit les options dont vous disposez pour utiliser Amazon S3 en tant que destination.

Pour choisir Amazon S3 pour votre destination

• Sur la page Choose destination (Choisir une destination), saisissez des valeurs dans les champssuivants :

 : Destination

Choisissez Amazon S3.Compartiment S3

Parmi les compartiments S3 que vous possédez, choisissez celui dans lequel les données destreaming doivent être livrées. Vous pouvez créer un compartiment S3 ou en choisir un existant.

Préfixe

(Facultatif) Pour utiliser le préfixe par défaut des objets Amazon S3, laissez cette option vide.Kinesis Data Firehose utilise automatiquement un préfixe au format “YYYY/MM/dd/HH” UTCpour les objets Amazon S3 diffusés. Vous pouvez également remplacer cette valeur par défauten indiquant un préfixe personnalisé. Pour plus d'informations, consultez Format de nom d'objetAmazon S3 (p. 70) et Préfixes personnalisés Amazon S3 (p. 99)

Préfixe d’erreur

(Facultatif) Vous pouvez indiquer un préfixe que Kinesis Data Firehose utilisera pour la diffusiondes données à Amazon S3 dans les conditions d’erreur. Pour plus d'informations, consultezFormat de nom d'objet Amazon S3 (p. 70) et Préfixes personnalisés Amazon S3 (p. 99)

Choisissez Amazon Redshift pour votre destinationCette section décrit les options dont vous disposez pour utiliser Amazon Redshift en tant que destination.

Pour choisir Amazon Redshift pour votre destination

• Sur la page Choose destination (Choisir une destination), saisissez des valeurs dans les champssuivants :

 : Destination

Sélectionnez Amazon Redshift.Cluster

Cluster Amazon Redshift dans lequel vos données de compartiment S3 sont copiées. Configurezle cluster Amazon Redshift pour qu'il soit accessible publiquement et débloquez les adresses IPKinesis Data Firehose. Pour plus d'informations, consultez Attribution de l'accès à une destinationKinesis Data Firehose à Amazon Redshift (p. 42),

Nom d'utilisateur.

Utilisateur Amazon Redshift autorisé à accéder au cluster Amazon Redshift. Cet utilisateur doitavoir l'autorisation Amazon Redshift INSERT pour copier des données du compartiment S3 vers lecluster Amazon Redshift.

7

Page 13: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Choisissez Amazon ES pour votre destination

Mot de passe

Mot de passe de l'utilisateur autorisé à accéder au cluster.Base de données.

Base de données Amazon Redshift dans laquelle les données sont copiées.Tableau

Table Amazon Redshift dans laquelle les données sont copiées.Colonnes

(Facultatif) Colonnes spécifiques de la table dans laquelle les données sont copiées. Utilisez cetteoption si le nombre de colonnes défini dans vos objets Amazon S3 est inférieur au nombre decolonnes de la table Amazon Redshift.

Intermediate S3 bucket (Compartiment S3 intermédiaire)

Kinesis Data Firehose transmet tout d'abord vos données à votre compartiment S3, puisémet une commande Amazon Redshift COPY pour charger les données dans votre clusterAmazon Redshift. Spécifiez un compartiment S3 que vous possédez dans lequel les données dediffusion en continu doivent être diffusées. Créez un nouveau compartiment S3 ou choisissez uncompartiment existant dont vous êtes propriétaire.

Kinesis Data Firehose ne supprime pas les données de votre compartiment S3 après leurchargement dans votre cluster Amazon Redshift. Vous pouvez gérer les données de votrecompartiment S3 à l'aide d'une configuration du cycle de vie. Pour en savoir plus, veuillezconsulter Gestion du cycle de vie des objets dans le Amazon Simple Storage Service Manuel dudéveloppeur.

Préfixe

(Facultatif) Pour utiliser le préfixe par défaut des objets Amazon S3, laissez cette option vide.Kinesis Data Firehose utilise automatiquement un préfixe au format « YYYY/MM/dd/HH » UTCpour les objets Amazon S3 délivrés. Vous pouvez ajouter le début de ce préfixe. Pour plusd'informations, consultez Format de nom d'objet Amazon S3 (p. 70),

COPY options (Options COPY)

Paramètres que vous pouvez spécifier dans la commande Amazon Redshift COPY. Ils peuventêtre nécessaires pour votre configuration. Par exemple, "GZIP" est requis si Amazon S3 lacompression des données est activée. "REGION" est nécessaire si votre seau S3 n’est pas dans lamême région AWS que votre Amazon Redshift groupe. Pour en savoir plus, consultez COPY dansle Amazon Redshift Database Developer Guide.

COPY command (Commande COPY)

La commande Amazon Redshift COPY. Pour en savoir plus, consultez COPY dans le AmazonRedshift Database Developer Guide.

Retry duration (Durée de la nouvelle tentative)

Temps d'attente (0–7 200 secondes) pour Kinesis Data Firehose pour réessayer si la COPY dedonnées vers votre cluster Amazon Redshift échoue. Kinesis Data Firehose retente toutes les5 minutes jusqu'à ce que la durée relative aux nouvelles tentatives se termine. Si vous définissezcette durée sur 0 (zéro) seconde, Kinesis Data Firehose n'effectue pas de nouvelle tentative encas d'échec de la commande COPY.

Choisissez Amazon ES pour votre destinationCette section décrit les options dont vous disposez pour utiliser Amazon ES en tant que destination.

8

Page 14: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Choisissez Amazon ES pour votre destination

Pour choisir Amazon ES pour votre destination

1. Sur la page Choose destination (Choisir une destination), saisissez des valeurs dans les champssuivants :

 : Destination

Sélectionnez Amazon Elasticsearch Service.Domaine

Domaine Amazon ES auquel sont transmises vos données.Index

Nom de l'index Elasticsearch à utiliser lors de l'indexation des données dans votre cluster AmazonES.

Index rotation

Choisissez cette option si l'index Elasticsearch doit faire l'objet d'une rotation et indiquez àquelle fréquence. Si la rotation d'index est activée, Kinesis Data Firehose ajoute l'horodatagecorrespondant au nom de l'index spécifié et effectue la rotation. Pour plus d'informations,consultez Rotation d'index pour la destination Amazon ES (p. 70),

Type.

Nom du type Amazon ES à utiliser lors de l'indexation des données dans votre cluster AmazonES. Pour Elasticsearch 6.x, il ne peut y avoir qu'un seul type par index. Si vous essayez despécifier un nouveau type pour un index existant qui a déjà un autre type, Kinesis Data Firehoserenvoie une erreur lors de l'exécution.

Pour Elasticsearch 7.x, laissez ce champ vide.Retry duration (Durée de la nouvelle tentative)

Temps d'attente (0–7 200 secondes) pour Kinesis Data Firehose pour réessayer si une demanded'index vers votre cluster Amazon ES échoue. Kinesis Data Firehose retente toutes les 5 minutesjusqu'à ce que la durée relative aux nouvelles tentatives se termine. Si vous définissez cette duréesur 0 (zéro) seconde, Kinesis Data Firehose n'effectue pas de nouvelle tentative en cas d'échecd'une demande d'index.

Connectivité du VPC de destination

Si votre domaine Amazon ES se trouve dans un VPC privé, utilisez cette section pour spécifier ceVPC. Spécifiez également les sous-réseaux et les sous-groupes que vous souhaitez voir utiliséspar Kinesis Data Firehose lors de l’envoi des données à votre domaine Amazon ES. Vous pouvez,si vous le souhaitez, utiliser le même groupe de sécurité que celui utilisé par le domaine AmazonES. Si vous spécifiez des groupes de sécurité différents, assurez-vous qu'ils autorisent le traficHTTPS sortant vers le groupe de sécurité du domaine Amazon ES. Assurez-vous également quele groupe de sécurité du domaine Amazon ES autorise le trafic HTTPS à partir des groupes desécurité que vous avez spécifiés lors de la configuration de votre flux de diffusion. Si vous utilisezle même groupe de sécurité pour votre flux de diffusion et le domaine Amazon ES, assurez-vousque la règle entrante du groupe de sécurité autorise le trafic HTTPS. Pour plus d'informations surles règles des groupes de sécurité, veuillez consulter Règles des groupes de sécurité dans ladocumentation Amazon VPC.

Backup mode

Vous pouvez choisir de sauvegarder uniquement les enregistrement ayant échoué ou desauvegarder tous les enregistrements. Si vous choisissez de sauvegarder uniquement lesenregistrements ayant échoué, toutes les données qui ne peuvent pas être livrées par KinesisData Firehose à votre cluster Amazon ES ou que votre fonction Lambda ne peut pas transformersont sauvegardées dans le compartiment S3 indiqué. Si vous choisissez de sauvegarder tous les

9

Page 15: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Choisir un point de terminaison HTTP pour votre destination

enregistrements, Kinesis Data Firehose sauvegarde toutes les données source entrantes dansvotre compartiment S3 en même temps qu'elles sont livrées à Amazon ES. Pour de plus amplesinformations, veuillez consulter Gestion des défaillances de diffusion des données (p. 68) etGestion des échecs de transformation des données (p. 59).

Compartiment S3 de sauvegarde

Compartiment S3 que vous possédez qui est la cible de la sauvegarde des données. Créez unnouveau compartiment S3 ou choisissez un compartiment existant dont vous êtes propriétaire.

Préfixe du compartiment S3 de sauvegarde

(Facultatif) Pour utiliser le préfixe par défaut des objets Amazon S3, laissez cette option vide.Kinesis Data Firehose utilise automatiquement un préfixe au format « YYYY/MM/dd/HH » UTCpour les objets Amazon S3 délivrés. Vous pouvez ajouter le début de ce préfixe. Pour plusd'informations, consultez Format de nom d'objet Amazon S3 (p. 70),

2. Choisissez Suivant pour passer à la page Configuration des paramètres (p. 17).

Choisir un point de terminaison HTTP pour votredestinationCette section décrit les options d’utilisation Point de terminaison HTTP pour votre destination.

Important

Si vous choisissez un point de terminaison HTTP comme destination, examinez et suivez lesinstructions Annexe -Spécifications de demande et de réponse HTTP Endpoint Delivery (p. 125).

Pour choisir Point de terminaison HTTP pour votre destination

• Sur la page Choix d'une destination, saisissez des valeurs dans les champs suivants :

 : Destination

Choisir Point de terminaison HTTP.Nom du terminal HTTP -facultatif

Spécifiez un nom convivial pour le point de terminaison HTTP. Par exemple : My HTTPEndpoint Destination.

URL du point de terminaison HTTP

Spécifiez l’URL du point de terminaison HTTP au format suivant : https://xyz.httpendpoint.com. L’URL doit être une URL HTTPS.

Clé d’accès -facultative

Contactez le propriétaire du point de terminaison pour obtenir la clé d’accès (si nécessaire) pouractiver la livraison des données à leur point de terminaison de Kinesis Data Firehose.

Encodage de contenu

Le tuyau d’incendie Kinesis Data utilise l’encodage de contenu pour compresser le corps d’unedemande avant de l’envoyer à la destination. Choisir Gzip ou Désactivé pour activer/désactiver lecodage de contenu de votre demande.

Paramètres (facultatif) :

Le tuyau d’incendie de Kinesis Data inclut ces paires de valeurs clés dans chaque appel HTTP.Ces paramètres peuvent vous aider à identifier et à organiser vos destinations.

10

Page 16: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Choisissez Datadog pour votre destination

Retry duration (Durée de la nouvelle tentative)

Préciser la durée Kinesis Data Firehose tentatives d’envoi des données au point de terminaisonHTTP sélectionné.

Après avoir envoyé des données, Kinesis Data Firehose premier attend une reconnaissance dupoint de terminaison HTTP. Si une erreur se produit ou si l'accusé de réception n'arrive pas avantla fin du délai imparti pour les accusés de réception, Kinesis Data Firehose démarre le compteurde durée des nouvelles tentatives. Il effectue de nouvelles tentatives jusqu'à ce que la duréedes nouvelles tentatives arrive à expiration. Après cela, Kinesis Data Firehose considère qu'ils'agit d'un échec de diffusion des données et sauvegarde les données dans votre compartimentAmazon S3.

Chaque fois que Kinesis Data Firehose envoie des données au point de terminaison HTTP (soit latentative initiale soit une nouvelle tentative), redémarre le compteur de délai d’accusé de réceptionet attend une reconnaissance du point de terminaison HTTP.

Même si le délai imparti pour les nouvelles tentatives arrive à son terme, Kinesis Data Firehoseattend toujours l'accusé de réception jusqu'à ce qu'il le reçoive ou que le délai imparti pour lesaccusés de réception ait été atteint. Si le délai d'attente de l'accusé de réception arrive à sonterme, Kinesis Data Firehose détermine s'il reste du temps dans le compteur des nouvellestentatives. Si c'est le cas, il réitère les tentatives et répète la logique jusqu'à ce qu'il reçoive unaccusé de réception ou qu'il détermine que le délai imparti pour les nouvelles tentatives est arrivéà son terme.

Si vous ne voulez pas que Kinesis Data Firehose tente à nouveau d'envoyer les données,définissez cette valeur sur 0.

S3 backup mode (Mode de sauvegarde S3)

Choisissez de sauvegarder tous les événements qui Kinesis Data Firehose envoie au point determinaison HTTP spécifié ou seulement ceux pour lesquels la livraison au point de terminaisonHTTP échoue. Si vous avez besoin d'une haute durabilité des données, activez ce mode desauvegarde pour tous les événements. Pensez également à sauvegarder tous les événementsinitialement, jusqu’à ce que vous vérifiiez que vos données sont correctement indexées dans leservice de point de terminaison HTTP spécifié.

S3 backup bucket (Compartiment S3 de sauvegarde)

Sélectionnez un compartiment de sauvegarde existant ou créez-en un.Préfixe du compartiment S3 de sauvegarde

(Facultatif) Pour utiliser le préfixe par défaut des objets Amazon S3, laissez cette option vide.Kinesis Data Firehose utilise automatiquement un préfixe au format « YYYY/MM/dd/HH » UTCpour les objets Amazon S3 délivrés. Vous pouvez ajouter le début de ce préfixe. Pour plusd'informations, consultez Format de nom d'objet Amazon S3 (p. 70),

Choisissez Datadog pour votre destinationCette section décrit les options d’utilisation Datadog pour votre destination.

Pour choisir Datadog pour votre destination

• Sur la page Choix d'une destination, saisissez des valeurs dans les champs suivants :

 : Destination

Choisir Fournisseur de services tiers puis dans le menu déroulant, choisissez Datadog.

11

Page 17: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Choisissez Datadog pour votre destination

URL du point de terminaison HTTP

Choisissez l’URL du terminal HTTP (Datadog UE ou Datadog États-Unis) dans le menu déroulant.Clé API

Contactez Datadog pour obtenir la clé API requise pour activer la livraison des données à ce pointterminal de Kinesis Data Firehose.

Encodage de contenu

Le tuyau d’incendie Kinesis Data utilise l’encodage de contenu pour compresser le corps d’unedemande avant de l’envoyer à la destination. Choisir Gzip ou Désactivé pour activer/désactiver lecodage de contenu de votre demande.

Paramètres (facultatif) :

Le tuyau d’incendie de Kinesis Data inclut ces paires de valeurs clés dans chaque appel HTTP.Ces paramètres peuvent vous aider à identifier et à organiser vos destinations.

Retry duration (Durée de la nouvelle tentative)

Préciser la durée Kinesis Data Firehose tentatives d’envoi des données au point de terminaisonHTTP sélectionné.

Après avoir envoyé des données, Kinesis Data Firehose premier attend une reconnaissance dupoint de terminaison HTTP. Si une erreur se produit ou si l'accusé de réception n'arrive pas avantla fin du délai imparti pour les accusés de réception, Kinesis Data Firehose démarre le compteurde durée des nouvelles tentatives. Il effectue de nouvelles tentatives jusqu'à ce que la duréedes nouvelles tentatives arrive à expiration. Après cela, Kinesis Data Firehose considère qu'ils'agit d'un échec de diffusion des données et sauvegarde les données dans votre compartimentAmazon S3.

Chaque fois que Kinesis Data Firehose envoie des données au point de terminaison HTTP (soit latentative initiale soit une nouvelle tentative), redémarre le compteur de délai d’accusé de réceptionet attend une reconnaissance du point de terminaison HTTP.

Même si le délai imparti pour les nouvelles tentatives arrive à son terme, Kinesis Data Firehoseattend toujours l'accusé de réception jusqu'à ce qu'il le reçoive ou que le délai imparti pour lesaccusés de réception ait été atteint. Si le délai d'attente de l'accusé de réception arrive à sonterme, Kinesis Data Firehose détermine s'il reste du temps dans le compteur des nouvellestentatives. Si c'est le cas, il réitère les tentatives et répète la logique jusqu'à ce qu'il reçoive unaccusé de réception ou qu'il détermine que le délai imparti pour les nouvelles tentatives est arrivéà son terme.

Si vous ne voulez pas que Kinesis Data Firehose tente à nouveau d'envoyer les données,définissez cette valeur sur 0.

S3 backup mode (Mode de sauvegarde S3)

Choisissez de sauvegarder tous les événements qui Kinesis Data Firehose envoie au point determinaison HTTP spécifié ou seulement ceux pour lesquels la livraison au point de terminaisonHTTP échoue. Si vous avez besoin d'une haute durabilité des données, activez ce mode desauvegarde pour tous les événements. Pensez également à sauvegarder tous les événementsinitialement, jusqu’à ce que vous vérifiiez que vos données sont correctement indexées dans leservice de point de terminaison HTTP spécifié.

S3 backup bucket (Compartiment S3 de sauvegarde)

Sélectionnez un compartiment de sauvegarde existant ou créez-en un.

12

Page 18: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Choisissez le cloud mongodb pour votre destination

Préfixe du compartiment S3 de sauvegarde

(Facultatif) Pour utiliser le préfixe par défaut des objets Amazon S3, laissez cette option vide.Kinesis Data Firehose utilise automatiquement un préfixe au format « YYYY/MM/dd/HH » UTCpour les objets Amazon S3 délivrés. Vous pouvez ajouter le début de ce préfixe. Pour plusd'informations, consultez Format de nom d'objet Amazon S3 (p. 70),

Choisissez le cloud mongodb pour votre destinationCette section décrit les options d’utilisation Cloud mongodb pour votre destination.

Pour choisir Cloud mongodb pour votre destination

• Sur la page Choix d'une destination, saisissez des valeurs dans les champs suivants :

 : Destination

Choisir Fournisseur de services tiers puis dans le menu déroulant, choisissez Cloud mongodb.URL de mongodb Real Webhook

Spécifiez l’URL du point de terminaison HTTP au format suivant : https://webhooks.mongodb-realm.com. L’URL doit être une URL HTTPS.

Clé API

Contactez mongodb Cloud pour obtenir la clé API requise pour activer la livraison des données àce point terminal de Kinesis Data Firehose.

Encodage de contenu

Le tuyau d’incendie Kinesis Data utilise l’encodage de contenu pour compresser le corps d’unedemande avant de l’envoyer à la destination. Choisir Gzip ou Désactivé pour activer/désactiver lecodage de contenu de votre demande.

Paramètres (facultatif) :

Le tuyau d’incendie de Kinesis Data inclut ces paires de valeurs clés dans chaque appel HTTP.Ces paramètres peuvent vous aider à identifier et à organiser vos destinations.

Retry duration (Durée de la nouvelle tentative)

Préciser la durée Kinesis Data Firehose réessaie d’envoyer des données au fournisseur tierssélectionné.

Après avoir envoyé des données, Kinesis Data Firehose premier attend une reconnaissance dupoint de terminaison HTTP. Si une erreur se produit ou si l'accusé de réception n'arrive pas avantla fin du délai imparti pour les accusés de réception, Kinesis Data Firehose démarre le compteurde durée des nouvelles tentatives. Il effectue de nouvelles tentatives jusqu'à ce que la duréedes nouvelles tentatives arrive à expiration. Après cela, Kinesis Data Firehose considère qu'ils'agit d'un échec de diffusion des données et sauvegarde les données dans votre compartimentAmazon S3.

Chaque fois que Kinesis Data Firehose envoie des données au point de terminaison HTTP (soit latentative initiale soit une nouvelle tentative), redémarre le compteur de délai d’accusé de réceptionet attend une reconnaissance du point de terminaison HTTP.

Même si le délai imparti pour les nouvelles tentatives arrive à son terme, Kinesis Data Firehoseattend toujours l'accusé de réception jusqu'à ce qu'il le reçoive ou que le délai imparti pour lesaccusés de réception ait été atteint. Si le délai d'attente de l'accusé de réception arrive à sonterme, Kinesis Data Firehose détermine s'il reste du temps dans le compteur des nouvelles

13

Page 19: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Choisissez un nouveau relique pour votre destination

tentatives. Si c'est le cas, il réitère les tentatives et répète la logique jusqu'à ce qu'il reçoive unaccusé de réception ou qu'il détermine que le délai imparti pour les nouvelles tentatives est arrivéà son terme.

Si vous ne voulez pas que Kinesis Data Firehose tente à nouveau d'envoyer les données,définissez cette valeur sur 0.

S3 backup mode (Mode de sauvegarde S3)

Choisissez de sauvegarder tous les événements qui Kinesis Data Firehose envoie au point determinaison HTTP spécifié ou seulement ceux pour lesquels la livraison au point de terminaisonHTTP échoue. Si vous avez besoin d'une haute durabilité des données, activez ce mode desauvegarde pour tous les événements. Pensez également à sauvegarder tous les événementsinitialement, jusqu’à ce que vous vérifiiez que vos données sont correctement indexées dans leservice de point de terminaison HTTP spécifié.

S3 backup bucket (Compartiment S3 de sauvegarde)

Sélectionnez un compartiment de sauvegarde existant ou créez-en un.Préfixe du compartiment S3 de sauvegarde

(Facultatif) Pour utiliser le préfixe par défaut des objets Amazon S3, laissez cette option vide.Kinesis Data Firehose utilise automatiquement un préfixe au format « YYYY/MM/dd/HH » UTCpour les objets Amazon S3 délivrés. Vous pouvez ajouter le début de ce préfixe. Pour plusd'informations, consultez Format de nom d'objet Amazon S3 (p. 70),

Choisissez un nouveau relique pour votre destinationCette section décrit les options d’utilisation Nouveau relic pour votre destination.

Pour choisir Nouveau relic pour votre destination

• Sur la page Choix d'une destination, saisissez des valeurs dans les champs suivants :

 : Destination

Choisir Fournisseur de services tiers puis dans le menu déroulant, choisissez Nouveau relic.URL du point de terminaison HTTP

Spécifiez l’URL du point de terminaison HTTP au format suivant : https://xyz.httpendpoint.com. L’URL doit être une URL HTTPS.

Clé API

Contacter New Relic pour obtenir la clé API requise pour activer la livraison des données à cepoint terminal de Kinesis Data Firehose.

Encodage de contenu

Le tuyau d’incendie Kinesis Data utilise l’encodage de contenu pour compresser le corps d’unedemande avant de l’envoyer à la destination. Choisir Gzip ou Désactivé pour activer/désactiver lecodage de contenu de votre demande.

Paramètres (facultatif) :

Le tuyau d’incendie de Kinesis Data inclut ces paires de valeurs clés dans chaque appel HTTP.Ces paramètres peuvent vous aider à identifier et à organiser vos destinations.

Retry duration (Durée de la nouvelle tentative)

Préciser la durée Kinesis Data Firehose réessaie d’envoyer des données à Nouveau Relic.14

Page 20: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Choix d'une destination Splunk

Après avoir envoyé des données, Kinesis Data Firehose premier attend une reconnaissance dupoint de terminaison HTTP. Si une erreur se produit ou si l'accusé de réception n'arrive pas avantla fin du délai imparti pour les accusés de réception, Kinesis Data Firehose démarre le compteurde durée des nouvelles tentatives. Il effectue de nouvelles tentatives jusqu'à ce que la duréedes nouvelles tentatives arrive à expiration. Après cela, Kinesis Data Firehose considère qu'ils'agit d'un échec de diffusion des données et sauvegarde les données dans votre compartimentAmazon S3.

Chaque fois que Kinesis Data Firehose envoie des données au point de terminaison HTTP (soit latentative initiale soit une nouvelle tentative), redémarre le compteur de délai d’accusé de réceptionet attend une reconnaissance du point de terminaison HTTP.

Même si le délai imparti pour les nouvelles tentatives arrive à son terme, Kinesis Data Firehoseattend toujours l'accusé de réception jusqu'à ce qu'il le reçoive ou que le délai imparti pour lesaccusés de réception ait été atteint. Si le délai d'attente de l'accusé de réception arrive à sonterme, Kinesis Data Firehose détermine s'il reste du temps dans le compteur des nouvellestentatives. Si c'est le cas, il réitère les tentatives et répète la logique jusqu'à ce qu'il reçoive unaccusé de réception ou qu'il détermine que le délai imparti pour les nouvelles tentatives est arrivéà son terme.

Si vous ne voulez pas que Kinesis Data Firehose tente à nouveau d'envoyer les données,définissez cette valeur sur 0.

S3 backup mode (Mode de sauvegarde S3)

Choisissez de sauvegarder tous les événements qui Kinesis Data Firehose envoie au nouveaurelic spécifié ou seulement ceux pour lesquels la livraison au point de terminaison HTTP échoue.Si vous avez besoin d'une haute durabilité des données, activez ce mode de sauvegarde pourtous les événements. Pensez également à sauvegarder tous les événements initialement, jusqu’àce que vous vérifiiez que vos données sont correctement indexées dans New Relic.

S3 backup bucket (Compartiment S3 de sauvegarde)

Sélectionnez un compartiment de sauvegarde existant ou créez-en un.Préfixe du compartiment S3 de sauvegarde

(Facultatif) Pour utiliser le préfixe par défaut des objets Amazon S3, laissez cette option vide.Kinesis Data Firehose utilise automatiquement un préfixe au format « YYYY/MM/dd/HH » UTCpour les objets Amazon S3 délivrés. Vous pouvez ajouter le début de ce préfixe. Pour plusd'informations, consultez Format de nom d'objet Amazon S3 (p. 70),

Choix d'une destination SplunkCette section décrit les options permettant d'utiliser Splunk comme destination.

Pour choisir une destination Splunk

• Sur la page Choix d'une destination, saisissez des valeurs dans les champs suivants :

 : Destination

Choisir Fournisseur de services tiers puis choisissez Splunk.Splunk cluster endpoint (Point de terminaison de cluster Splunk)

Pour déterminer le point de terminaison, consultez Configure Amazon Kinesis Firehose to SendData to the Splunk Platform dans la documentation Splunk.

15

Page 21: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Choix d'une destination Splunk

Splunk endpoint type (Type de point de terminaison Splunk)

Choisissez Raw dans la plupart des cas. Choisissez Event si vous avez prétraité vos donnéesavec AWS Lambda afin d'envoyer les données à différents index par type d'événement. Pour ensavoir plus sur le point de terminaison à utiliser, consultez Configurez Amazon Kinesis Firehosepour envoyer des données sur la plate-forme Splunk dans la documentation Splunk.

Jeton d'authentification

Pour configurer un point de terminaison Splunk capable de recevoir des données de Kinesis DataFirehose, consultez Descriptions d l'installation et la configuration du module complémentaireSplunk pour Amazon Kinesis Firehose dans la documentation Splunk. Enregistrez le jeton quevous obtenez de Splunk pendant que vous configurez le point de terminaison pour ce flux dediffusion, puis ajoutez-le ici.

HEC acknowledgement timeout (Expiration de l'accusé de réception HEC)

Spécifiez combien de temps Kinesis Data Firehose attend l'accusé de réception d'index queSplunk doit renvoyer. Si Splunk ne renvoie pas l'accusé de réception avant la fin du délaid'expiration, Kinesis Data Firehose considère qu'il s'agit d'un échec de livraison des données.Kinesis Data Firehose lance une nouvelle tentative ou sauvegarde les données dans votrecompartiment Amazon S3, en fonction de la durée que vous avez définie pour les nouvellestentatives.

Retry duration (Durée de la nouvelle tentative)

Spécifiez durant combien de temps Kinesis Data Firehose tente d'envoyer à nouveau desdonnées à Splunk.

Une fois les données envoyées, Kinesis Data Firehose attend d'abord un accusé de réception dela part de Splunk. Si une erreur se produit ou si l'accusé de réception n'arrive pas avant la fin dudélai imparti pour les accusés de réception, Kinesis Data Firehose démarre le compteur de duréedes nouvelles tentatives. Il effectue de nouvelles tentatives jusqu'à ce que la durée des nouvellestentatives arrive à expiration. Après cela, Kinesis Data Firehose considère qu'il s'agit d'un échecde diffusion des données et sauvegarde les données dans votre compartiment Amazon S3.

Chaque fois que Kinesis Data Firehose envoie des données à Splunk, qu'il s'agisse de la premièretentative ou d'une relance, le compteur du délai imparti pour les accusés de réception est lancédans l'attente d'un accusé de réception de la part de Splunk.

Même si le délai imparti pour les nouvelles tentatives arrive à son terme, Kinesis Data Firehoseattend toujours l'accusé de réception jusqu'à ce qu'il le reçoive ou que le délai imparti pour lesaccusés de réception ait été atteint. Si le délai d'attente de l'accusé de réception arrive à sonterme, Kinesis Data Firehose détermine s'il reste du temps dans le compteur des nouvellestentatives. Si c'est le cas, il réitère les tentatives et répète la logique jusqu'à ce qu'il reçoive unaccusé de réception ou qu'il détermine que le délai imparti pour les nouvelles tentatives est arrivéà son terme.

Si vous ne voulez pas que Kinesis Data Firehose tente à nouveau d'envoyer les données,définissez cette valeur sur 0.

S3 backup mode (Mode de sauvegarde S3)

Optez pour une sauvegarde de tous les événements envoyés par Kinesis Data Firehose à Splunkou de ceux uniquement pour lesquels la remise à Splunk a échoué. Si vous avez besoin d'unehaute durabilité des données, activez ce mode de sauvegarde pour tous les événements. Demême, envisagez de sauvegarder tous les événements dès le départ, tant que vous n'avez pasvérifié que vos données sont correctement indexées dans Splunk.

S3 backup bucket (Compartiment S3 de sauvegarde)

Sélectionnez un compartiment de sauvegarde existant ou créez-en un.

16

Page 22: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Configuration des paramètres

Préfixe du compartiment S3 de sauvegarde

(Facultatif) Pour utiliser le préfixe par défaut des objets Amazon S3, laissez cette option vide.Kinesis Data Firehose utilise automatiquement un préfixe au format « YYYY/MM/dd/HH » UTCpour les objets Amazon S3 délivrés. Vous pouvez ajouter le début de ce préfixe. Pour plusd'informations, consultez Format de nom d'objet Amazon S3 (p. 70),

Configuration des paramètresCette rubrique décrit la page Configure settings (Configurer les paramètres) de l'assistant Create DeliveryStream (Créer un flux de diffusion).

Configuration des paramètres

1. Sur la page Configuration des paramètres, fournissez des valeurs dans les champs suivants :

Taille de tampon et intervalle de tampon pour la destination

Kinesis Data Firehose consigne les données entrantes avant de les livrer à la destinationspécifiée. Pour Amazon S3, Amazon Redshift et Splunk comme destination choisie, vouspouvez choisir une taille tampon de 1–128 mibs et un intervalle tampon de 60–900 secondes.Pour Amazon Elassearch comme destination choisie, vous pouvez choisir une taille tamponde 1–100 mibs et un intervalle tampon de 60–900 secondes. Pour les destinations de point determinaison HTTP, y compris Datadog et New Reliic, vous pouvez choisir une taille tampon de1 à 64 mibs et un intervalle de tampon de 60 à 900 secondes. Pour mongodb Cloud, vous pouvezchoisir une taille tampon de 1 à 16 mibs et un intervalle de tampon de 60 à 900 secondes.

Note

La taille de tampon recommandée pour la destination varie d’un fournisseur de servicesà l’autre. Par exemple, la taille de tampon recommandée pour Datadog est de 4 mibset la taille de tampon recommandée pour New Relic et mongodb Cloud est de 1 mib.Contactez le fournisseur de services tiers dont vous avez choisi la destination commedestination de données pour plus d’informations sur la taille de tampon recommandée.

Important

Pour les destinations de point de terminaison HTTP, Datadog et New Reliic, si vousvoyez 413 codes de réponse à partir du point de terminaison de destination danscloudwatch Logs, abaissez la taille de l’indice tampon sur votre flux de livraison etréessayez.

Taille tampon de sauvegarde S3 et intervalle tampon

Kinesis Data Firehose utilise Amazon S3 pour sauvegarder toutes les données ou n’a pasrépondu uniquement aux données qu’il tente de livrer à la destination que vous avez choisie.Kinesis Data Firehose tampon les données entrantes avant de les livrer (en les sauvegardant versle haut) vers Amazon S3. Vous pouvez choisir une taille tampon de 1 à 128 mibs et un intervallede tampon de 60 à 900 secondes. La condition satisfaite d’abord déclenche la livraison desdonnées à Amazon S3. Si vous activez la transformation des données, l’intervalle de mémoiretampon s’applique à partir du moment où les données transformées sont reçues par le flexibled’incendie de Kinesis Data à la livraison de données vers Amazon S3. Si la livraison des donnéesà la destination tombe derrière l’écriture des données au flux de livraison, Kinesis Data Firehoseaugmente la taille du tampon de manière dynamique pour rattraper le problème. Cette actionpermet de veiller à ce que toutes les données soient livrées à la destination.

17

Page 23: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Configuration des paramètres

Compression S3

Choisissez GZIP, Snappy, Zip ou la compression de données compatible Hadoop, ou aucunecompression de données. La compression Snappy, Zip et la compression Snappy compatibleHadoop n’est pas disponible pour les flux de livraison avec Amazon Redshift comme destination.

Chiffrement

Kinesis Data Firehose prend en charge le chiffrement côté serveur Amazon S3 avec AWS KeyManagement Service (AWS KMS) pour le chiffrement des données livrées dans Amazon S3.Vous pouvez choisir de ne pas de chiffrer les données ou de les chiffrer avec une des clés AWSKMS que vous possédez. Pour plus d'informations, consultez Protection des données grâce auchiffrement côté serveur avec les clés gérées par AWS KMS (SSE-KMS),

Consignation des erreurs

Si la transformation de données est activée, Kinesis Data Firehose peut journaliser l'appelLambda, et envoyer les erreurs de diffusion de données dans CloudWatch Logs. Vous pouvezalors afficher les journaux d'erreurs spécifiques en cas de défaillance de l'appel Lambda ou de ladiffusion de données. Pour plus d'informations, consultez Surveillance de Kinesis Data Firehose àl'aide d'CloudWatch Logs (p. 86),

Rôle IAM.

Vous pouvez choisir de créer un nouveau rôle pour lequel les autorisations requises sontattribuées automatiquement, ou choisir un rôle existant créé pour Kinesis Data Firehose.Ce rôle est utilisé pour accorder à Kinesis Data Firehose l'accès à votre compartiment S3,à votre clé AWS KMS (si le chiffrement des données est activé), ainsi qu'à la fonctionLambda (si la transformation des données est activée). La console peut créer un rôleavec des espaces réservés. Vous pouvez ignorer ou supprimer en toute sécurité leslignes avec %FIREHOSE_BUCKET_NAME%, %FIREHOSE_DEFAULT_FUNCTION%, ou%FIREHOSE_DEFAULT_VERSION%. Pour plus d’informations, voir Attribution de l'accès à unedestination Kinesis Data Firehose à Amazon S3 (p. 40).

2. Vérifiez les paramètres et choisissez Create Delivery Stream (Créer un flux de diffusion).

Le nouveau Flux de transmission Kinesis Data Firehose reste quelques instants à l'état Creating avantd'être disponible. Une fois que votre Flux de transmission Kinesis Data Firehose est dans un état Active,vous pouvez commencer à y envoyer des données à partir de l'application producteur.

18

Page 24: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Prérequis

Test de votre flux de diffusion à l'aided'exemples de données

Vous pouvez utiliser AWS Management Console pour intégrer des simulations de données de symboleboursier. La console exécute un script sur votre navigateur pour placer des exemples d'enregistrementsdans votre flux de diffusion Kinesis Data Firehose. Cela vous permet de tester la configuration de votre fluxde diffusion sans devoir générer vos propres données de test.

Voici un exemple de simulation de données :

{"TICKER_SYMBOL":"QXZ","SECTOR":"HEALTHCARE","CHANGE":-0.05,"PRICE":84.51}

Notez que des frais Amazon Kinesis Data Firehose standard sont appliqués lorsque votre flux de diffusiontransmet les données, mais que la génération de données n'entraîne aucun frais. Pour ne pas entraînerces frais, vous pouvez arrêter à tout moment l'exemple de flux sur la console.

Table des matières• Prérequis (p. 19)• Effectuez un test à l'aide de Amazon S3 comme destination (p. 19)• Effectuez un test à l'aide de Amazon Redshift comme destination (p. 20)• Effectuez un test à l'aide de Amazon ES comme destination (p. 20)• Test avec Splunk comme destination (p. 21)

PrérequisAvant de commencer, créez un flux de diffusion. Pour en savoir plus, consultez Création d'un flux dediffusion Amazon Kinesis Data Firehose (p. 5).

Effectuez un test à l'aide de Amazon S3 commedestination

Utilisez la procédure suivante pour tester votre flux de diffusion à l'aide de Amazon Simple Storage Service(Amazon S3) comme destination.

Pour tester un flux de diffusion à l'aide de Amazon S3

1. Ouvrez la console Kinesis Data Firehose à l'adresse https://console.aws.amazon.com/firehose/.2. Choisissez le flux de diffusion.3. Sous Test with demo data, choisissez Start sending demo data pour générer des exemples de

données de symbole boursier.4. Suivez les instructions à l'écran pour vérifier que les données sont remises à votre compartiment S3.

Notez que les nouveaux objets peuvent prendre quelques minutes à s'afficher dans votrecompartiment, selon la configuration de la mise en mémoire tampon de votre compartiment.

5. Une fois le test terminé, choisissez Stop sending demo data pour arrêter les frais d'utilisation.

19

Page 25: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Effectuez un test à l'aide de Amazon

Redshift comme destination

Effectuez un test à l'aide de Amazon Redshiftcomme destination

Utilisez la procédure suivante pour tester votre flux de diffusion à l'aide de Amazon Redshift commedestination.

Pour tester un flux de diffusion à l'aide de Amazon Redshift

1. Votre flux de diffusion s'attend à trouver une table dans votre cluster Amazon Redshift. Connectez-vous à Amazon Redshift avec une interface SQL et exécutez l'instruction suivante pour créer une tablequi accepte les exemples de données.

create table firehose_test_table( TICKER_SYMBOL varchar(4), SECTOR varchar(16), CHANGE float, PRICE float);

2. Ouvrez la console Kinesis Data Firehose à l'adresse https://console.aws.amazon.com/firehose/.3. Choisissez le flux de diffusion.4. Modifiez les détails de la destination afin que votre flux de diffusion pointe vers la table

firehose_test_table récemment créée.5. Sous Test with demo data, choisissez Start sending demo data pour générer des exemples de

données de symbole boursier.6. Suivez les instructions à l'écran pour vérifier que les données sont remises à votre table. Notez que les

nouvelles lignes peuvent prendre quelques minutes à s'afficher dans votre table, selon la configurationde la mise en mémoire tampon.

7. Une fois le test terminé, choisissez Stop sending demo data pour arrêter les frais d'utilisation.8. Modifiez les détails de la destination pour que votre flux de diffusion Kinesis Data Firehose pointe vers

une autre table.9. (Facultatif) Supprimez la table firehose_test_table.

Effectuez un test à l'aide de Amazon ES commedestination

Utilisez la procédure suivante pour tester votre flux de diffusion à l'aide de Amazon Elasticsearch Service(Amazon ES) comme destination.

Pour tester un flux de diffusion à l'aide de Amazon ES

1. Ouvrez la console Kinesis Data Firehose à l'adresse https://console.aws.amazon.com/firehose/.2. Choisissez le flux de diffusion.3. Sous Test with demo data, choisissez Start sending demo data pour générer des exemples de

données de symbole boursier.4. Suivez les instructions à l'écran pour vérifier que les données sont remises à votre domaine Amazon

ES. Pour en savoir plus, consultez Recherche de documents dans un domaine Amazon ES, dans leAmazon Elasticsearch Service Guide du développeur.

5. Une fois le test terminé, choisissez Stop sending demo data pour arrêter les frais d'utilisation.

20

Page 26: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Test avec Splunk comme destination

Test avec Splunk comme destinationUtilisez la procédure suivante pour tester votre flux de diffusion en utilisant Splunk comme destination.

Pour tester un flux de diffusion en utilisant Splunk

1. Ouvrez la console Kinesis Data Firehose à l'adresse https://console.aws.amazon.com/firehose/.2. Choisissez le flux de diffusion.3. Sous Test with demo data, choisissez Start sending demo data pour générer des exemples de

données de symbole boursier.4. Vérifiez si les données sont bien remises à votre index Splunk. Voici des exemples de termes

recherche dans Splunk : sourcetype="aws:firehose:json" et index="name-of-your-splunk-index". Pour savoir comment rechercher des événements dans Splunk, consultez lemanuel Search Manual dans la documentation Splunk.

Si les données de test n'apparaissent pas dans votre index Splunk, vérifiez si votre compartimentAmazon S3 contient des événements en échec. Consultez également Données non diffusées àSplunk.

5. Une fois le test terminé, choisissez Stop sending demo data pour cesser de supporter des coûtsd'utilisation.

21

Page 27: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Écriture avec Kinesis Data Streams

Envoi de données à un flux dediffusion Amazon Kinesis DataFirehose

Vous pouvez envoyer des données à votre flux de diffusion Kinesis Data Firehose à partir de différentstypes de sources : vous pouvez utiliser un flux de données Kinesis, l'agent Kinesis ou l'API Kinesis DataFirehose à l'aide du kit SDK AWS. Vous pouvez également utiliser Amazon CloudWatch Logs, CloudWatchEvents ou AWS IoT comme source de données. Si vous utilisez Kinesis Data Firehose pour la premièrefois, commencez par vous familiariser avec les concepts et la terminologie présentés dans Présentationd'Amazon Kinesis Data Firehose ? (p. 1).

Note

Certains services AWS peuvent uniquement envoyer des messages et événements à un flux dediffusion Kinesis Data Firehose se trouvant dans la même région. Si votre flux de diffusion n'estpas proposé lorsque vous configurez une cible pour Amazon CloudWatch Logs, CloudWatchEvents ou AWS IoT, vérifiez que votre flux de diffusion Kinesis Data Firehose est situé dans lamême région que vos autres services.

Rubriques• Écriture dans Kinesis Data Firehose avec Kinesis Data Streams (p. 22)• Écriture dans Kinesis Data Firehose à l'aide de l'agent Kinesis (p. 23)• Écriture dans Kinesis Data Firehose à l'aide du kit SDK AWS (p. 34)• Écriture dans Kinesis Data Firehose avec CloudWatch Logs (p. 35)• Écriture dans Kinesis Data Firehose avec CloudWatch Events (p. 36)• Écriture dans Kinesis Data Firehose avec AWS IoT (p. 36)

Écriture dans Kinesis Data Firehose avec KinesisData Streams

Vous pouvez configurer Amazon Kinesis Data Streams pour envoyer des informations vers un flux dediffusion Kinesis Data Firehose.

Important

Si vous utilisez Kinesis Producer Library (KPL) pour écrire des données dans un flux de donnéesKinesis, vous pouvez utiliser un regroupement pour combiner ces enregistrements Kinesis. Sivous utilisez ensuite ce flux de données en tant que source pour votre flux de diffusion KinesisData Firehose, Kinesis Data Firehose dégroupe les enregistrements avant de les transmettre versla destination. Si vous configurez votre flux de diffusion pour transformer les données, KinesisData Firehose dégroupe les enregistrements avant de les transmettre à AWS Lambda. Pour deplus amples informations, veuillez consulter Développement de producteurs de flux de donnéesAmazon Kinesis à l'aide de la bibliothèque Kinesis Producer Library et Regroupement.

1. Connectez-vous à la AWS Management Console et ouvrez la console Kinesis Data Firehose àl'adresse https://console.aws.amazon.com/firehose/.

22

Page 28: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Écriture à l’aide de l’agent

2. Sélectionnez Create Delivery Stream (Créer un flux de diffusion). Sur la page Nom et source, saisissezdes valeurs dans les champs suivants :

Nom du flux de diffusion

Nom de votre Flux de transmission Kinesis Data Firehose.Source

Choisissez l'option Kinesis Flux pour configurer un Flux de transmission Kinesis Data Firehosequi utilise un flux de données Kinesis en tant que source de données. Vous pouvez ensuiteutiliser Kinesis Data Firehose pour lire facilement les données d'un flux de données existant et lescharger sur leur emplacement de destination.

Pour utiliser un flux de données Kinesis en tant que source, choisissez un flux existant dans laliste Flux Kinesis ou choisissez Créer un nouveau pour créer un nouveau flux de données Kinesis.Une fois le nouveau flux créé, choisissez Actualiser pour mettre à jour la liste Kinesis flux. Si vousavez un grand nombre de flux, filtrez la liste avec l'option Filter by name (Filtrer par nom).

Note

Lorsque vous configurez un flux de données Kinesis en tant que source d'un flux dediffusion Kinesis Data Firehose, les opérations Kinesis Data Firehose PutRecord etPutRecordBatch sont désactivées. Dans ce cas, pour ajouter des données à votreflux de diffusion Kinesis Data Firehose, utilisez les opérations Kinesis Data StreamsPutRecord et PutRecords.

Kinesis Data Firehose commence à lire les données à partir de la position LATEST de votre fluxKinesis. Pour en savoir plus sur les positions Kinesis Data Streams, consultez GetShardIterator.Kinesis Data Firehose appelle l'opération Kinesis Data Streams GetRecords une fois par secondepour chaque partition.

Plusieurs flux de diffusion Kinesis Data Firehose peuvent être lus par le même flux Kinesis.D'autres applications Kinesis (de type consommateur) peuvent également lire des données àpartir du même flux. Chaque appel d'un flux de diffusion Kinesis Data Firehose ou de toute autreapplication consommateur est pris en compte dans la limite globale de la partition. Pour éviter lesrestrictions, planifiez attentivement vos applications. Pour en savoir plus sur les limites applicablesà Kinesis Data Streams, , consultez Limites d'Amazon Kinesis Streams.

3. Choisissez Next (Suivant) pour passer à la page Traiter les enregistrements (p. 6).

Écriture dans Kinesis Data Firehose à l'aide del'agent Kinesis

Amazon Kinesis est une application logicielle Java autonome qui offre un moyen facile de collecter etd’envoyer des données à Kinesis Data Firehose. L'agent surveille en permanence un ensemble de fichierset envoie de nouvelles données à votre Flux de transmission Kinesis Data Firehose. L'agent gère lesrotations de fichier, les points de contrôle et les nouvelles tentatives après échec. Il diffuse toutes vosdonnées de manière fiable, rapide et simple. Il émet également des métriques Amazon CloudWatch pourvous aider à mieux surveiller et dépanner le processus de streaming.

Par défaut, les enregistrements sont analysés à partir de chaque fichier sur la base du caractère de sautde ligne ('\n'). Toutefois, l'agent peut également être configuré pour analyser les enregistrements deplusieurs lignes (consultez Paramètres de configuration de l'agent (p. 27)).

Cet agent peut être installé dans des environnements basés sur des serveurs Linux tels que desserveurs Web, serveurs de journaux ou encore serveurs de base de données. Après avoir installé l'agent,

23

Page 29: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Prerequisites

configurez-le en spécifiant les fichiers à surveiller et le flux de diffusion pour les données. Une fois quel'agent est configuré, il collecte de façon durable les données depuis les fichiers et les envoie en toutefiabilité dans le flux de diffusion.

Rubriques• Prerequisites (p. 24)• Credentials (p. 24)• Fournisseurs d'informations d'identification personnalisées (p. 25)• Téléchargement et installation de l'agent (p. 25)• Configuration et démarrage de l'agent (p. 26)• Paramètres de configuration de l'agent (p. 27)• Surveillance de plusieurs répertoires de fichiers et écriture dans plusieurs flux (p. 30)• Utilisez l’agent pour prétraiter les données (p. 30)• Commandes de l’interface de ligne de commande de l’agent (p. 34)

Prerequisites• Votre système d’exploitation doit être Amazon Linux ou Red Hat Enterprise Linux version 7 ou ultérieure.• L’agent version 2.0.0 ou ultérieure s’exécute à l’aide de JRE version 1.8 ou ultérieure. L’agent version

1.1.x s’exécute à l’aide de JRE 1.7 ou version ultérieure.• Si vous utilisez Amazon EC2 pour exécuter votre agent, lancez votre instance EC2.• Le rôle IAM ou les informations d'identification AWS que vous spécifiez doivent avoir les autorisations

nécessaires pour effectuer l'opération Kinesis Data Firehose PutRecordBatch pour que l'agent puisseenvoyer des données à votre flux de diffusion. Si vous activez la surveillance CloudWatch pour l'agent,l'autorisation d'effectuer l'opération CloudWatch PutMetricData est également nécessaire. Pourplus d'informations, consultez Contrôle de l'accès avec Amazon Kinesis Data Firehose (p. 38),Surveillance de l'état de l'agent Kinesis (p. 93) et Authentification et contrôle d'accès pour AmazonCloudWatch.

CredentialsGérez vos informations d'identification AWS à l'aide d'une des méthodes suivantes :

• Créez un fournisseur d'informations d'identification personnalisé. Pour de plus amplesinformations, veuillez consulter the section called “Fournisseurs d'informations d'identificationpersonnalisées” (p. 25).

• Spécifiez un rôle IAM lorsque vous lancez votre instance EC2.• Spécifiez les informations d'identification AWS lorsque vous configurez l'agent (consultez les entrées

pour awsAccessKeyId et awsSecretAccessKey dans le tableau configuration situé sous the sectioncalled “Paramètres de configuration de l'agent” (p. 27)).

• Modifiez /etc/sysconfig/aws-kinesis-agent pour spécifier votre région AWS et vos clés d'accèsAWS.

• Si votre instance EC2 se trouve dans un autre compte AWS, créez un rôle IAM pour autoriserl'accès au service Kinesis Data Firehose. Spécifiez ce rôle en configurant l'agent (consultezassumeRoleARN (p. ) et assumeRoleExternalId (p. )). Utilisez l'une des méthodesprécédentes pour spécifier les informations d'identification AWS d'un utilisateur dans l'autre compte quiest autorisé à assumer ce rôle.

24

Page 30: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Fournisseurs d'informations d'identification personnalisées

Fournisseurs d'informations d'identificationpersonnaliséesVous pouvez créer un fournisseur d’informations d’identification personnalisées et donnerson nom de classe et son chemin d’accès au jar à l’agent Kinesis dans les paramètresde configuration suivants : userDefinedCredentialsProvider.classname etuserDefinedCredentialsProvider.location. Pour les descriptions de ces deux paramètres deconfiguration, voir the section called “Paramètres de configuration de l'agent” (p. 27).

Pour créer un fournisseur d’informations d’identification personnalisées, définissez une classe quiimplémente le AWSCredentialsProvider comme dans l’exemple suivant.

import com.amazonaws.auth.AWSCredentials;import com.amazonaws.auth.AWSCredentialsProvider;import com.amazonaws.auth.BasicAWSCredentials;

public class YourClassName implements AWSCredentialsProvider { public YourClassName() { }

public AWSCredentials getCredentials() { return new BasicAWSCredentials("key1", "key2"); }

public void refresh() { }}

Votre classe doit avoir un constructeur qui ne prend aucun argument.

AWS appelle périodiquement la méthode d'actualisation pour obtenir des informations d'identificationmises à jour. Si vous souhaitez que votre fournisseur d'informations d'identification fournisse différentesinformations d'identification tout au long de sa durée de vie, incluez le code pour actualiser les informationsd'identification dans cette méthode. Vous pouvez également laisser cette méthode vide si vous voulezun fournisseur d'informations d'identification qui vend des informations d'identification statiques (nonmodifiées).

Téléchargement et installation de l'agentCommencez par vous connecter à votre instance. Pour plus d'informations, consultez Connexion à votreinstance dans le Amazon EC2 Guide de l'utilisateur pour les instances Linux. En cas de problème deconnexion, consultez Résolution d'un problème de connexion à votre instance dans Amazon EC2 Guide del'utilisateur pour les instances Linux.

Ensuite, installez l'agent à l'aide d'une des méthodes suivantes.

• Pour configurer l’agent à partir des référentiels Amazon Linux

Cette méthode fonctionne uniquement pour les instances Amazon Linux. Utilisez la commande suivante :

sudo yum install –y aws-kinesis-agent

L’agent v 2.0.0 ou version ultérieure est installé sur les ordinateurs dotés du système d’exploitationAmazon Linux 2 (AL2). Cette version de l’agent nécessite Java 1.8 ou une version ultérieure. Si laversion Java requise n’est pas encore présente, le processus d’installation de l’agent l’installe. Pour plusd’informations sur Amazon Linux 2, consultez https://aws.amazon.com/amazon-linux-2/.

25

Page 31: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Configuration et démarrage de l'agent

• Pour configurer l’agent à partir du référentiel Amazon S3

Cette méthode fonctionne pour Red Hat Enterprise Linux, ainsi que pour les instances Amazon Linux2, car elle installe l’agent à partir du référentiel disponible publiquement. Utilisez la commande suivantepour télécharger et installer la dernière version de l’agent 2.x.x :

sudo yum install –y https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-latest.amzn2.noarch.rpm

Pour installer une version spécifique de l'agent, spécifiez le numéro de version dans la commande. Parexemple, la commande suivante installe l’agent v 2.0.0.

sudo yum install –y https://streaming-data-agent.s3.amazonaws.com/aws-kinesis-agent-2.0.0-2.amzn2.noarch.rpm

Si vous avez Java 1.7 et que vous ne souhaitez pas le mettre à niveau, vous pouvez télécharger laversion d’agent 1.x.x, qui est compatible avec Java 1.7. Par exemple, pour télécharger l’agent v1.1.6,vous pouvez utiliser la commande suivante :

sudo yum install –y https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-1.1.6-1.amzn1.noarch.rpm

Le dernier agent v1.x.x peut être téléchargé à l’aide de la commande suivante :

sudo yum install –y https://s3.amazonaws.com/streaming-data-agent/aws-kinesis-agent-latest.amzn1.noarch.rpm

• Pour configurer l’agent à partir du référentiel GitHub

1. Tout d’abord, assurez-vous que la version Java requise est installée, selon la version de l’agent.2. Téléchargez l’agent à partir de l’ awslabs/agent-amazon-kinesis du référentiel GitHub.3. Installez l'agent en accédant au répertoire de téléchargement et en exécutant la commande

suivante :

sudo ./setup --install

Configuration et démarrage de l'agentPour configurer et démarrer l'agent

1. Ouvrez le fichier de configuration et modifiez-le (en tant que super-utilisateur si vous utilisez lesautorisations d'accès fichier par défaut) :/etc/aws-kinesis/agent.json

Dans ce fichier de configuration, spécifiez les fichiers ( "filePattern" ) à partir desquels l'agentcollecte les données, et le nom du flux de diffusion ( "deliveryStream" ) dans lequel l'agent envoie

26

Page 32: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Paramètres de configuration de l'agent

les données. Le nom de fichier est un modèle et l'agent reconnaît les rotations de fichier. Vous pouvezeffectuer une rotation de fichier ou créer de nouveaux fichiers pas plus d'une fois par seconde. L'agentutilise l'horodatage de création de fichier pour déterminer les fichiers qui doivent être suivis et tracésdans votre flux de diffusion. La création de fichiers ou la rotation de fichiers plus d'une fois par secondene permet pas à l'agent de différencier correctement les fichiers.

{ "flows": [ { "filePattern": "/tmp/app.log*", "deliveryStream": "yourdeliverystream" } ] }

La région AWS par défaut est us-east-1. Si vous utilisez une autre région, ajoutez lefirehose.endpoint en définissant sur le fichier de configuration, en spécifiant le point determinaison pour votre région. Pour plus d'informations, consultez Paramètres de configuration del'agent (p. 27),

2. Démarrez l'agent manuellement :

sudo service aws-kinesis-agent start

3. (Facultatif) Configurez l'agent pour qu'il soit lancé au démarrage du système :

sudo chkconfig aws-kinesis-agent on

L'agent fonctionne maintenant en arrière-plan en tant que service système. Il surveille en permanenceles fichiers spécifiés et envoie des données dans le flux de diffusion spécifié. L'activité de l'agent estenregistrée dans /var/log/aws-kinesis-agent/aws-kinesis-agent.log.

Paramètres de configuration de l'agentL'agent prend en charge les deux paramètres de configuration obligatoires filePattern etdeliveryStream, plus les paramètres de configuration facultatifs des fonctionnalités supplémentaires.Vous pouvez spécifier aussi bien des paramètres de configuration obligatoires que facultatifs dans /etc/aws-kinesis/agent.json.

Chaque fois que vous modifiez le fichier de configuration, vous devez arrêter et démarrer l'agent en utilisantles commandes suivantes :

sudo service aws-kinesis-agent stopsudo service aws-kinesis-agent start

Vous pouvez également utiliser la commande suivante :

sudo service aws-kinesis-agent restart

Les paramètres de configuration générale sont indiqués ci-après.

27

Page 33: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Paramètres de configuration de l'agent

Paramètre deconfiguration

Description :

assumeRoleARN L'ARN (Amazon Resource Name) du rôle que l'utilisateur doit assumer. Pouren savoir plus, consultez Déléguer l'accès entre des comptes AWS à l'aide derôle IAM dans IAM Guide de l'utilisateur.

assumeRoleExternalIdIdentifiant facultatif qui détermine qui peut assumer le rôle. Pour en savoirplus, consultez Procédure d'utilisation d'un ID externe dans IAM Guide del'utilisateur.

awsAccessKeyId ID de clé d'accès AWS qui remplace les informations d'identificationpar défaut. Ce paramètre est prioritaire sur tous les autres fournisseursd'informations d'identification.

awsSecretAccessKey Clé secrète AWS qui remplace les informations d'identification par défaut.Ce paramètre est prioritaire sur tous les autres fournisseurs d'informationsd'identification.

cloudwatch.emitMetricsS'il est défini (true), permet à l'agent d'émettre des métriques pourCloudWatch.

Par défaut=True

cloudwatch.endpoint Point de terminaison régional pour CloudWatch.

Par défaut : monitoring.us-east-1.amazonaws.com

firehose.endpoint Point de terminaison régional pour Kinesis Data Firehose.

Par défaut : firehose.us-east-1.amazonaws.com

userDefinedCredentialsProvider.classnameSi vous définissez un fournisseur d'informations d'identificationpersonnalisées, indiquez son nom de classe complet à l'aide de ce paramètre.N'ajoutez pas .class à la fin du nom de la classe.

userDefinedCredentialsProvider.locationSi vous définissez un fournisseur d'informations d'identificationpersonnalisées, utilisez ce paramètre pour spécifier le chemin absoludu fichier jar contenant le fournisseur d'informations d'identificationpersonnalisées. L'agent recherche également le fichier jar à l'emplacementsuivant : . /usr/share/aws-kinesis-agent/lib/.

Les paramètres de configuration de flux sont indiqués ci-après.

Paramètre deconfiguration

Description :

aggregatedRecordSizeBytesPour que l’agent regroupe les enregistrements, puis les place dans le flux detransmission en une seule opération, spécifiez ce paramètre. Définissez lataille souhaitée pour l’enregistrement regroupé avant que l'agent le place dansle flux de transmission.

Par défaut : 0 (pas de regroupement)

dataProcessingOptionsListe des options de traitement appliquées à chaque enregistrement analyséavant qu'il ne soit envoyé au flux de diffusion. Les options de traitement sont

28

Page 34: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Paramètres de configuration de l'agent

Paramètre deconfiguration

Description :

exécutées dans l'ordre spécifié. Pour plus d'informations, consultez Utilisezl’agent pour prétraiter les données (p. 30),

deliveryStream [Obligatoire] Nom du flux de diffusion.

filePattern [Obligatoire] Modèle global des fichiers qui doivent être surveillés parl'agent. N'importe quel fichier qui correspond à ce modèle est collectéautomatiquement par l'agent et surveillé. Pour tous les fichiers correspondantà ce modèle, accordez l’autorisation de lecture à aws-kinesis-agent-user. Pour le répertoire contenant les fichiers , accordez les autorisations delecture et d’exécution à aws-kinesis-agent-user.

Important

L'agent récupère tous les fichiers correspondant à ce modèle. Pourvous assurer que l'agent ne récupère pas d’autres enregistrementsque ceux prévus à cet effet, choisissez soigneusement ce modèle.

initialPosition Position initiale à partir de laquelle le fichier a commencé à être analysé. Lesvaleurs valides sont START_OF_FILE et END_OF_FILE.

Par défaut : END_OF_FILE

maxBufferAgeMillis Durée maximale, en millisecondes, pendant laquelle l'agent met les donnéesen tampon avant de les envoyer dans le flux de diffusion.

Plage de valeurs : 1 000–900 000 (1 seconde à 15 minutes)

Par défaut : 60 000 (1 minute)

maxBufferSizeBytes Taille maximale, en octets, pour laquelle l'agent met les données en tamponavant de les envoyer dans le flux de diffusion.

Plage de valeurs : 1–4 194 304 (4 Mo)

Par défaut : 4 194 304 (4 Mo)

maxBufferSizeRecordsNombre maximal d'enregistrements pour lequel l'agent met les données entampon avant de les envoyer dans le flux de diffusion.

Plage de valeurs : 1–à 500

Par défaut : 500**

minTimeBetweenFilePollsMillisFréquence, en millisecondes, à laquelle l'agent interroge et analyse lesfichiers surveillés pour rechercher les nouvelles données.

Plage de valeurs : 1 ou plus

Par défaut : -100

multiLineStartPatternModèle d'identification du début d'un enregistrement. Un enregistrement secompose d'une ligne qui correspond au modèle et de lignes suivantes quine correspondent pas au modèle. Les valeurs valides sont les expressionsrégulières. Par défaut, chaque nouvelle ligne comprise dans les fichiersjournaux est analysée comme étant un enregistrement.

29

Page 35: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Surveillance de plusieurs répertoires de

fichiers et écriture dans plusieurs flux

Paramètre deconfiguration

Description :

skipHeaderLines Nombre de lignes que l'agent doit ignorer lors de l'analyse au début desfichiers surveillés.

Plage de valeurs : 0 ou plus

Par défaut : 0 (zéro)

truncatedRecordTerminatorChaîne que l'agent utilise pour tronquer un enregistrement analysé lorsque lataille de ce dernier dépasse la taille limite d'un enregistrement Kinesis DataFirehose. (1,000 Ko)

Par défaut : '\n' (nouvelle ligne)

Surveillance de plusieurs répertoires de fichiers etécriture dans plusieurs fluxEn spécifiant plusieurs paramètres de configuration de flux, vous pouvez configurer l'agent poursurveiller plusieurs répertoires de fichiers et envoyer des données dans plusieurs flux. Dans l'exemplede configuration suivant, l'agent surveille deux répertoires de fichiers et envoie des données à un flux dedonnées Kinesis et un flux de diffusion Kinesis Data Firehose respectivement. Vous pouvez spécifier lesdifférents points de terminaison pour Kinesis Data Streams et Kinesis Data Firehose afin que votre flux dedonnées et votre flux de diffusion Kinesis Data Firehose n'aient pas besoin de se trouver dans la mêmerégion.

{ "cloudwatch.emitMetrics": true, "kinesis.endpoint": "https://your/kinesis/endpoint", "firehose.endpoint": "https://your/firehose/endpoint", "flows": [ { "filePattern": "/tmp/app1.log*", "kinesisStream": "yourkinesisstream" }, { "filePattern": "/tmp/app2.log*", "deliveryStream": "yourfirehosedeliverystream" } ] }

Pour en savoir plus sur l'utilisation de l'agent avec Amazon Kinesis Data Streams, consultez Ecriture dansAmazon Kinesis Data Streams à l'aide de l'agent Kinesis.

Utilisez l’agent pour prétraiter les donnéesL'agent peut prétraiter les enregistrements analysés à partir des fichiers surveillés avant de les envoyerdans votre flux de diffusion. Vous pouvez activer cette fonctionnalité en ajoutant le paramètre deconfiguration dataProcessingOptions à votre flux de fichiers. Une ou plusieurs options de traitementpeuvent être ajoutées. Elles sont exécutées dans l'ordre spécifié.

L'agent prend en charge les options de traitement suivantes. Comme l'agent est open source, vous pouvezcontinuer à développer et étendre ses options de traitement. Vous pouvez télécharger l'agent depuis AgentKinesis.

30

Page 36: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Utilisez l’agent pour prétraiter les données

Options de traitement

SINGLELINE

Convertit un enregistrement de plusieurs lignes en un enregistrement d'une seule ligne en supprimantles caractères de saut de ligne, les espaces de début et les espaces de fin.

{ "optionName": "SINGLELINE"}

CSVTOJSON

Convertit un enregistrement du format séparé par délimiteur au format JSON.

{ "optionName": "CSVTOJSON", "customFieldNames": [ "field1", "field2", ... ], "delimiter": "yourdelimiter"}

customFieldNames

[Obligatoire] Noms de domaine utilisés comme clés dans chaque paire clé-valeur JSON.Par exemple, si vous spécifiez ["f1", "f2"], l'enregistrement « v1, v2 » est converti en{"f1":"v1","f2":"v2"}.

delimiter

Chaîne utilisée comme délimiteur dans l'enregistrement. La valeur par défaut est une virgule (,).LOGTOJSON

Convertit un enregistrement du format de journal au format JSON. Les formats de journal pris encharge sont Apache Common Log, Apache Combined Log, Apache Error Log, et RFC3164 Syslog.

{ "optionName": "LOGTOJSON", "logFormat": "logformat", "matchPattern": "yourregexpattern", "customFieldNames": [ "field1", "field2", … ]}

logFormat

[Obligatoire] Format d'entrée de journal. Les valeurs admises sont les suivantes :• COMMONAPACHELOG — Format Journal courant Apache. Chaque entrée de journal a le

schéma suivant par défaut : «  ». "%{host} %{ident} %{authuser} [%{datetime}]\"%{request}\" %{response} %{bytes}".

• COMBINEDAPACHELOG — Le format Journal combiné Apache. Chaque entrée de journal a leschéma suivant par défaut : «  ». "%{host} %{ident} %{authuser} [%{datetime}]\"%{request}\" %{response} %{bytes} %{referrer} %{agent}".

• APACHEERRORLOG — Le format Journal d'erreurs Apache. Chaque entrée de journal a leschéma suivant par défaut : «  ». "[%{timestamp}] [%{module}:%{severity}] [pid%{processid}:tid %{threadid}] [client: %{client}] %{message}".

• SYSLOG — Le format Syslog RFC3164. Chaque entrée de journal a le schéma suivantpar défaut : «  ». "%{timestamp} %{hostname} %{program}[%{processid}]:%{message}".

31

Page 37: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Utilisez l’agent pour prétraiter les données

matchPattern

Remplace le modèle par défaut pour le format de journal spécifié. Utilisez ce paramètre pourextraire les valeurs des entrées du journal si elles utilisent un format personnalisé. Si vousspécifiez matchPattern, vous devez également spécifier customFieldNames.

customFieldNames

Noms de champ personnalisés utilisés comme clés dans chaque paire clé-valeur JSON. Vouspouvez utiliser ce paramètre pour définir les noms de champ pour les valeurs extraites dematchPattern, ou remplacer les noms de champ par défaut des formats de journalisationprédéfinis.

Example  : Configuration LOGTOJSON

Voici un exemple de configuration LOGTOJSON pour une entrée au format Journal courant Apacheconvertie au format JSON :

{ "optionName": "LOGTOJSON", "logFormat": "COMMONAPACHELOG"}

Avant la conversion :

64.242.88.10 - - [07/Mar/2004:16:10:02 -0800] "GET /mailman/listinfo/hsdivision HTTP/1.1" 200 6291

Après la conversion :

{"host":"64.242.88.10","ident":null,"authuser":null,"datetime":"07/Mar/2004:16:10:02 -0800","request":"GET /mailman/listinfo/hsdivision HTTP/1.1","response":"200","bytes":"6291"}

Example  : Configuration LOGTOJSON avec champs personnalisés

Voici un autre exemple de configuration LOGTOJSON :

{ "optionName": "LOGTOJSON", "logFormat": "COMMONAPACHELOG", "customFieldNames": ["f1", "f2", "f3", "f4", "f5", "f6", "f7"]}

Avec ce paramètre de configuration, la même entrée au format Journal courant Apache de journal issue del'exemple précédent est convertie au format JSON comme suit :

{"f1":"64.242.88.10","f2":null,"f3":null,"f4":"07/Mar/2004:16:10:02 -0800","f5":"GET /mailman/listinfo/hsdivision HTTP/1.1","f6":"200","f7":"6291"}

Example  : Conversion d'une entrée au format Journal courant Apache

La configuration de flux suivante convertit une entrée au format Journal courant Apache en unenregistrement d'une seule ligne au format JSON :

{

32

Page 38: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Utilisez l’agent pour prétraiter les données

"flows": [ { "filePattern": "/tmp/app.log*", "deliveryStream": "my-delivery-stream", "dataProcessingOptions": [ { "optionName": "LOGTOJSON", "logFormat": "COMMONAPACHELOG" } ] } ] }

Example  : Conversion des enregistrements de plusieurs lignes

La configuration de flux suivante analyse les enregistrements de plusieurs lignes dont la première lignecommence par « [SEQUENCE= ». Chaque enregistrement est d'abord converti en un enregistrementd'une seule ligne. Les valeurs sont ensuite extraites de l'enregistrement sur la base d'un séparateurtabulation. Les valeurs extraites sont mappées à des valeurs customFieldNames spécifiées pour formerun enregistrement d'une seule ligne au format JSON.

{ "flows": [ { "filePattern": "/tmp/app.log*", "deliveryStream": "my-delivery-stream", "multiLineStartPattern": "\\[SEQUENCE=", "dataProcessingOptions": [ { "optionName": "SINGLELINE" }, { "optionName": "CSVTOJSON", "customFieldNames": [ "field1", "field2", "field3" ], "delimiter": "\\t" } ] } ] }

Example  : Configuration LOGTOJSON avec modèle de correspondance

Voici un exemple de configuration LOGTOJSON pour une entrée au format Journal courant Apacheconvertie au format JSON, avec le dernier champ (octets) omis :

{ "optionName": "LOGTOJSON", "logFormat": "COMMONAPACHELOG", "matchPattern": "^([\\d.]+) (\\S+) (\\S+) \\[([\\w:/]+\\s[+\\-]\\d{4})\\] \"(.+?)\" (\\d{3})", "customFieldNames": ["host", "ident", "authuser", "datetime", "request", "response"]}

Avant la conversion :

123.45.67.89 - - [27/Oct/2000:09:27:09 -0400] "GET /java/javaResources.html HTTP/1.0" 200

Après la conversion :

33

Page 39: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Commandes de l’interface de ligne de commande de l’agent

{"host":"123.45.67.89","ident":null,"authuser":null,"datetime":"27/Oct/2000:09:27:09 -0400","request":"GET /java/javaResources.html HTTP/1.0","response":"200"}

Commandes de l’interface de ligne de commande del’agentLancer automatiquement l'agent au démarrage du système :

sudo chkconfig aws-kinesis-agent on

Vérifiez le statut de l'agent.

sudo service aws-kinesis-agent status

Arrêter l'agent :

sudo service aws-kinesis-agent stop

Lire le fichier journal de l'agent à partir de cet emplacement :

/var/log/aws-kinesis-agent/aws-kinesis-agent.log

Désinstaller l'agent :

sudo yum remove aws-kinesis-agent

Écriture dans Kinesis Data Firehose à l'aide du kitSDK AWS

Vous pouvez utiliser l'API Amazon Kinesis Data Firehose pour envoyer des données vers un Flux detransmission Kinesis Data Firehose avec le Kit SDK AWS pour Java, .NET, Node.js, Python ou Ruby.Si vous utilisez Kinesis Data Firehose pour la première fois, commencez par vous familiariser avec lesconcepts et la terminologie présentés dans Présentation d'Amazon Kinesis Data Firehose ? (p. 1). Pourplus d'informations, consultez Start Developing with Amazon Web Services.

Ces exemples ne représentent pas du code prêt à la production, car ils ne recherchent pas toutes lesexceptions possibles ou ne tiennent pas compte de toutes les considérations possibles en matière desécurité ou de performances.

L'API Kinesis Data Firehose offre deux opérations pour l'envoi des données votre flux de diffusion :PutRecord et PutRecordBatch. PutRecord() envoie un enregistrement de données au sein d'un seulappel et PutRecordBatch() peut envoyer plusieurs enregistrements de données au sein d'un seul appel.

Rubriques• Opérations d’écriture uniques à l'aide de PutRecord (p. 35)• Opérations d'écriture par lots à l'aide de PutRecordBatch (p. 35)

34

Page 40: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Opérations d’écriture uniques à l'aide de PutRecord

Opérations d’écriture uniques à l'aide de PutRecordLe positionnement des données nécessite uniquement le nom du Flux de transmission Kinesis DataFirehose et une mémoire tampon d'octets (<=1 000 Ko). Étant donné que Kinesis Data Firehose traitepar lots plusieurs enregistrements avant de charger le fichier dans Amazon S3, vous pouvez ajouter unséparateur d'enregistrements. Utilisez le code suivant pour placer des données dans un enregistrement àla fois dans un flux de diffusion :

PutRecordRequest putRecordRequest = new PutRecordRequest();putRecordRequest.setDeliveryStreamName(deliveryStreamName);

String data = line + "\n";

Record record = new Record().withData(ByteBuffer.wrap(data.getBytes()));putRecordRequest.setRecord(record);

// Put record into the DeliveryStreamfirehoseClient.putRecord(putRecordRequest);

Pour plus contexte sur le code, consultez l'exemple de code inclus dans le kit SDK AWS. Pour plusd'informations sur la syntaxe de demande et de réponse, consultez la rubrique appropriée dans OpérationsAPI Amazon Kinesis Data Firehose.

Opérations d'écriture par lots à l'aide dePutRecordBatchLe positionnement des données nécessite uniquement le nom du Flux de transmission Kinesis DataFirehose et une liste d'enregistrements. Étant donné que Kinesis Data Firehose traite par lots plusieursenregistrements avant de charger le fichier dans Amazon S3, vous pouvez ajouter un séparateurd'enregistrements. Utilisez le code suivant pour placer des enregistrements de données par lots dans unflux de diffusion :

PutRecordBatchRequest putRecordBatchRequest = new PutRecordBatchRequest();putRecordBatchRequest.setDeliveryStreamName(deliveryStreamName);putRecordBatchRequest.setRecords(recordList);

// Put Record Batch records. Max No.Of Records we can put in a// single put record batch request is 500firehoseClient.putRecordBatch(putRecordBatchRequest);

recordList.clear();

Pour plus contexte sur le code, consultez l'exemple de code inclus dans le kit SDK AWS. Pour plusd'informations sur la syntaxe de demande et de réponse, consultez la rubrique appropriée dans OpérationsAPI Amazon Kinesis Data Firehose.

Écriture dans Kinesis Data Firehose avecCloudWatch Logs

Pour de plus amples informations sur la manière de créer un abonnement CloudWatch Logs qui envoie desévénements de journaux à Kinesis Data Firehose, veuillez consulter Filtres d'abonnements avec AmazonKinesis Firehose.

35

Page 41: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Écriture avec CloudWatch Events

Important

Les événements de journaux CloudWatch sont compressés avec gzip niveau 6. Si vous souhaitezspécifier Amazon ES ou Splunk comme destination pour le flux de diffusion, utilisez une fonctionLambda pour décompresser les enregistrements en UTF-8.et en JSON monoligne. Pour deplus amples informations sur l'utilisation de fonctions Lambda avec un flux de diffusion, veuillezconsulter Transformation de données (p. 58).

Écriture dans Kinesis Data Firehose avecCloudWatch Events

Vous pouvez configurer Amazon CloudWatch pour envoyer des événements à un flux de diffusion KinesisData Firehose en ajoutant une cible à une règle CloudWatch Events.

Pour créer une cible pour une règle CloudWatch Events qui envoie des événements à un flux dediffusion existant

1. Connectez-vous à la AWS Management Console et ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.

2. Choisissez Create rule.3. Sur la page Étape 1 : Créer une règle, pour Cibles, choisissez Ajouter une cible, puis Flux de diffusion

Firehose.4. Pour Flux de diffusion, choisissez un flux de diffusion Kinesis Data Firehose.

Pour plus d'informations sur la création de règles CloudWatch Events, consultez Démarrez avec AmazonCloudWatch Events.

Écriture dans Kinesis Data Firehose avec AWS IoTVous pouvez configurer AWS IoT pour envoyer des informations à un flux de diffusion Amazon KinesisData Firehose en ajoutant une action.

Pour créer une action qui envoie des événements à un flux de diffusion Kinesis Data Firehoseexistant

1. Lorsque vous créez une règle dans la console AWS IoT, sur la page Créer une règle, sous Définissezune ou plusieurs actions, choisissez Ajouter action.

2. Choisissez Envoyer des messages à un flux Amazon Kinesis Firehose.3. Choisissez Configurer une action.4. Pour le Nom du flux, choisissez un flux de diffusion Kinesis Data Firehose existant.5. Dans le champ Séparateur, choisissez un caractère de séparation à insérer entre les enregistrements.6. Pour le IAM nom du rôle, choisissez un rôle IAM existant ou Créer un nouveau rôle.7. Choisissez Add action.

Pour plus d'informations sur la création de règles AWS IoT, consultez Didacticiels sur les règles AWS IoT.

36

Page 42: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Protection des données

Sécurité dans Amazon Kinesis DataFirehose

Chez AWS, la sécurité dans le cloud est notre priorité numéro 1. En tant que client d'AWS, vousbénéficiez d'un centre de données et d'une architecture réseau conçus pour répondre aux exigences desorganisations les plus pointilleuses en termes de sécurité.

La sécurité est une responsabilité partagée entre AWS et vous-même. Le modèle de responsabilitépartagée décrit ceci comme sécurité du cloud et sécurité dans le cloud :

• Sécurité du cloud – AWS est responsable de la protection de l'infrastructure qui exécute des servicesAWS dans le cloud AWS. AWS vous fournit également les services que vous pouvez utiliser en toutesécurité. L'efficacité de notre sécurité est régulièrement testée et vérifiée par des auditeurs tiers dans lecadre des programmes de conformité AWS. Pour en savoir plus sur les programmes de conformité quis'appliquent à Kinesis Data Firehose, veuillez consulter Services AWS concernés par le programme deconformité.

• Sécurité dans le cloud – Votre responsabilité est déterminée par le service AWS que vous utilisez. Vousêtes également responsable d'autres facteurs, y compris la sensibilité de vos données, les exigences devotre organisation, et la législation et la réglementation applicables.

Cette documentation vous aide à comprendre comment appliquer le modèle de responsabilité partagéelors de l'utilisation de Kinesis Data Firehose. Les rubriques suivantes vous montrent comment configurerKinesis Data Firehose pour répondre à vos objectifs de sécurité et de conformité. Vous pouvez égalementapprendre à utiliser d'autres services AWS qui vous permettent de surveiller et de sécuriser vos ressourcesKinesis Data Firehose.

Rubriques• Protection des données dans Amazon Kinesis Data Firehose (p. 37)• Contrôle de l'accès avec Amazon Kinesis Data Firehose (p. 38)• Surveillance de Amazon Kinesis Data Firehose (p. 54)• Validation de la conformité pour Amazon Kinesis Data Firehose (p. 54)• Résilience dans Amazon Kinesis Data Firehose (p. 55)• Sécurité de l'infrastructure dans Kinesis Data Firehose (p. 55)• Bonnes pratiques de sécurité pour Kinesis Data Firehose (p. 56)

Protection des données dans Amazon Kinesis DataFirehose

Si vous avez des données sensibles, vous pouvez activer le chiffrement des données côté serveur lorsquevous utilisez Amazon Kinesis Data Firehose. La méthode utilisée dépend de la source de vos données.

Chiffrement côté serveur avec Kinesis Data Streamscomme source de donnéesLorsque vous configurez un flux de données Kinesis en tant que source de données d'un flux de diffusionKinesis Data Firehose, Kinesis Data Firehose ne stocke plus les données au repos. À la place, les donnéessont stockées dans le flux de données.

37

Page 43: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Chiffrement côté serveur avec l'instruction

PUT directe ou d'autres sources de données

Lorsque vous envoyez des données à partir de vos producteurs de données vers votre flux de données,Kinesis Data Streams chiffre vos données à l'aide d'une clé AWS Key Management Service (AWS KMS)avant de les stocker au repos. Lorsque votre flux de diffusion Kinesis Data Firehose lit les données à partirde votre flux de données, Kinesis Data Streams déchiffre d'abord les données, puis les envoie vers KinesisData Firehose. Kinesis Data Firehose place les données en mémoire tampon en fonction des indices quevous spécifiez. Il diffuse ensuite à vos destinations sans avoir à stocker les données non chiffrées au repos.

Pour savoir plus précisément comment activer le chiffrement côté serveur pour Kinesis Data Streams,consultez Utilisation du chiffrement côté serveur dans le Amazon Kinesis Data Streams Guide dudéveloppeur.

Chiffrement côté serveur avec l'instruction PUT directeou d'autres sources de donnéesSi vous envoyez des données à votre flux de diffusion à l'aide de PutRecord ou de PutRecordBatch, ou sivous envoyez les données avec AWS IoT, Amazon CloudWatch Logs ou CloudWatch Events, vous pouvezactiver le chiffrement côté serveur à l'aide de l'opération StartDeliveryStreamEncryption.

Pour arrêter le chiffrement côté serveur, utilisez l'opérationStopDeliveryStreamEncryption.

Vous pouvez également activer SSE lorsque vous créez le flux de transmission. Pour ce faire, spécifiezDeliveryStreamEncryptionConfigurationInput lorsque vous appelez CreateDeliveryStream.

Lorsque la clé CMK est de type CUSTOMER_MANAGED_CMK, si le service Amazon Kinesis Data Firehosene peut pas déchiffrer les enregistrements en raison d'une exception KMSNotFoundException,KMSInvalidStateException, KMSDisabledException ou KMSAccessDeniedException, leservice attend jusqu'à 24 heures (la période de rétention) pour résoudre le problème. Si le problèmepersiste au-delà de la période de rétention, le service ignore les enregistrements qui ont dépassé lapériode de rétention et n'ont pas pu être déchiffrés, puis supprime les données. Amazon Kinesis DataFirehose fournit les quatre métriques CloudWatch suivantes que vous pouvez utiliser pour suivre les quatreexceptions AWS KMS :

• KMSKeyAccessDenied

• KMSKeyDisabled

• KMSKeyInvalidState

• KMSKeyNotFound

Pour plus d'informations sur ces quatre métriques, consultez the section called “Surveillance avec lesmétriques de CloudWatch” (p. 72).

Important

Pour chiffrer votre flux de diffusion, utilisez des CMK symétriques. Kinesis Data Firehose ne prendpas en charge les CMK asymétriques. Pour de plus amples informations sur les CMK symétriqueset asymétriques, veuillez consulter À propos des CMK symétriques et asymétriques dans le guidedu développeur AWS Key Management Service.

Contrôle de l'accès avec Amazon Kinesis DataFirehose

Les sections suivantes expliquent comment contrôler les accès vers et depuis vos ressources Kinesis DataFirehose. Elles décrivent notamment comment accorder l'accès à votre application afin que celle-ci puisse

38

Page 44: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Attribution à votre application de l'accèsà vos ressources Kinesis Data Firehose

envoyer des données à votre flux de diffusion Kinesis Data Firehose. Ils décrivent également commentvous pouvez accorder Kinesis Data Firehose accès à votre Amazon Simple Storage Service (Amazon S3)seau, Amazon Redshift ou Amazon Elasticsearch Service cluster, ainsi que les autorisations d’accès dontvous avez besoin si vous utilisez Datadog, New Relic ou Splunk comme destination. Enfin, vous trouverezdans cette rubrique des conseils sur la manière de configurer Kinesis Data Firehose pour transmettre desdonnées à une destination qui appartient à un autre compte AWS. Pour gérer toutes ces formes d'accès,AWS Identity and Access Management (IAM) est la technologie à utiliser. Pour en savoir plus sur IAM,consultez Qu'est-ce que IAM ?.

Table des matières :• Attribution à votre application de l'accès à vos ressources Kinesis Data Firehose (p. 39)• Autoriser Kinesis Data Firehose à assumer un rôle IAM (p. 40)• Accorder à Kinesis Data Firehose l'accès à AWS Glue pour la conversion de format de

données (p. 40)• Attribution de l'accès à une destination Kinesis Data Firehose à Amazon S3 (p. 40)• Attribution de l'accès à une destination Kinesis Data Firehose à Amazon Redshift (p. 42)• Accorder à Kinesis Data Firehose l'accès à une destination Amazon ES publique (p. 44)• Accorder à Kinesis Data Firehose l'accès à une destination Amazon ES dans un VPC (p. 46)• Attribution à Kinesis Data Firehose de l'accès à une destination Splunk (p. 47)• Accès à Splunk dans un VPC (p. 49)• Subvention Kinesis Data Firehose Accès à une destination de point de terminaison HTTP (p. 49)• Diffusion entre comptes vers une destination Amazon S3 (p. 51)• Diffusion entre comptes vers une destination Amazon ES (p. 52)• Utilisation des balises pour contrôler l'accès (p. 53)

Attribution à votre application de l'accès à vosressources Kinesis Data FirehosePour que votre application puisse accéder à votre flux de diffusion Kinesis Data Firehose, utilisez unestratégie similaire à celle de l'exemple suivant. Vous pouvez ajuster des opérations d'API individuellesauxquelles vous accordez l'accès en modifiant la section Action ou accorder l'accès à toutes lesopérations avec "firehose:*".

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "firehose:DeleteDeliveryStream", "firehose:PutRecord", "firehose:PutRecordBatch", "firehose:UpdateDestination" ], "Resource": [ "arn:aws:firehose:region:account-id:deliverystream/delivery-stream-name" ] } ]}

39

Page 45: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Autoriser Kinesis Data Firehose à assumer un rôle IAM

Autoriser Kinesis Data Firehose à assumer un rôleIAMSi vous utilisez la console pour créer un flux de diffusion et que vous choisissez l'option permettant decréer un nouveau rôle, AWS attache la stratégie d'approbation requise au rôle. Ou si vous voulez KinesisData Firehose pour utiliser un rôle IAM existant ou si vous créez un rôle vous-même, joignez la politique defiducie suivante à ce rôle afin que Kinesis Data Firehose peut l’assumer.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "firehose.amazonaws.com" }, "Action": "sts:AssumeRole" } ]}

Pour de plus amples informations sur la modification de la relation d'approbation d'un rôle, veuillezconsulter Modification d'un rôle.

Accorder à Kinesis Data Firehose l'accès à AWS Gluepour la conversion de format de donnéesSi votre flux de transmission effectue une conversion de format de données, Kinesis Data Firehoseréférence les définitions de table stockées dans AWS Glue. Pour donner à Kinesis Data Firehose l'accèsnécessaire à AWS Glue, ajoutez l'instruction suivante à votre stratégie. Pour de plus amples informationssur la recherche de l'ARN de la table, veuillez consulter Spécification des ARN de ressource AWS Glue.

{ "Effect": "Allow", "Action": [ "glue:GetTable", "glue:GetTableVersion", "glue:GetTableVersions" ], "Resource": "table-arn"}

Attribution de l'accès à une destination Kinesis DataFirehose à Amazon S3Lorsque vous utilisez une destination Amazon S3, Kinesis Data Firehose remet les données à votrecompartiment S3 et peut éventuellement utiliser une clé AWS KMS que vous possédez pour le chiffrementdes données. Si la journalisation des erreurs est activée, Kinesis Data Firehose envoie également leserreurs de diffusion des données à vos flux et à votre groupe de journaux CloudWatch. Vous devez avoirun rôle IAM lors de la création d'un flux de diffusion. Kinesis Data Firehose assume ce rôle IAM et accèdeau compartiment spécifié, à la clé et au groupe de journaux et aux flux CloudWatch.

Exécutez la stratégie d'accès suivante pour permettre à Kinesis Data Firehose d'accéder à votrecompartiment S3 et à votre clé AWS KMS. Si vous n'êtes pas propriétaire du compartiment S3, ajoutez

40

Page 46: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Attribution de l'accès à une destinationKinesis Data Firehose à Amazon S3

s3:PutObjectAcl à la liste des actions Amazon S3. Le propriétaire du compartiment bénéficie alorsd'un accès complet aux objets remis par Kinesis Data Firehose. Cette stratégie possède également unedéclaration qui autorise l'accès à Amazon Kinesis Data Streams. Si vous n'utilisez pas Kinesis DataStreams comme source de données, vous pouvez supprimer cette déclaration.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:log-stream-name" ] }, { "Effect": "Allow", "Action": [

41

Page 47: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Attribution de l'accès à une destination

Kinesis Data Firehose à Amazon Redshift

"lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ]}

Pour de plus amples informations sur la façon de permettre à d'autres services AWS d'accéder à vosressources AWS, veuillez consulter Création d'un rôle pour déléguer des autorisations à un service AWSdans le IAM Guide de l'utilisateur.

Pour savoir comment accorder à Kinesis Data Firehose l'accès à une destination Amazon S3 dans un autrecompte, consultez the section called “Diffusion entre comptes vers une destination Amazon S3” (p. 51).

Attribution de l'accès à une destination Kinesis DataFirehose à Amazon RedshiftPour savoir comment octroyer un accès à Kinesis Data Firehose en utilisant une destination AmazonRedshift, consultez les sections suivantes.

Rubriques• Rôle IAM et stratégie d'accès (p. 42)• Accès VPC à un cluster Amazon Redshift (p. 44)

Rôle IAM et stratégie d'accèsLorsque vous utilisez une destination Amazon Redshift, Kinesis Data Firehose remet les données àvotre compartiment S3 en tant qu'emplacement intermédiaire. Elle peut éventuellement utiliser une AWSKMS clé que vous possédez pour le chiffrement des données. Kinesis Data Firehose charge ensuiteles données à partir du compartiment S3 dans votre cluster Amazon Redshift. Si la journalisation deserreurs est activée, Kinesis Data Firehose envoie également les erreurs de diffusion des données à vosflux et à votre groupe de journaux CloudWatch. Kinesis Data Firehose utilise le nom d'utilisateur AmazonRedshift spécifié et le mot de passe pour accéder à votre cluster et utilise un rôle IAM pour accéder aucompartiment spécifié, à la clé, au groupe de journaux CloudWatch et aux flux. Vous devez disposer d'unrôle IAM lorsque vous créez un flux de diffusion.

Exécutez la stratégie d'accès suivante pour permettre à Kinesis Data Firehose d'accéder à votrecompartiment S3 et à votre clé AWS KMS. Si vous ne possédez pas de compartiment S3, ajoutezs3:PutObjectAcl Amazon S3 à la liste des actions, afin d'accorder au propriétaire du compartimentun accès total aux objets transmis par Kinesis Data Firehose. Cette stratégie possède également unedéclaration qui autorise l'accès à Amazon Kinesis Data Streams. Si vous n'utilisez pas Kinesis DataStreams comme source de données, vous pouvez supprimer cette déclaration.

{"Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation",

42

Page 48: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Attribution de l'accès à une destination

Kinesis Data Firehose à Amazon Redshift

"s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:log-stream-name" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ]}

Pour de plus amples informations sur la façon de permettre à d'autres services AWS d'accéder à vosressources AWS, veuillez consulter Création d'un rôle pour déléguer des autorisations à un service AWSdans le IAM Guide de l'utilisateur.

43

Page 49: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Accorder à Kinesis Data Firehose l'accèsà une destination Amazon ES publique

Accès VPC à un cluster Amazon RedshiftSi votre cluster Amazon Redshift se trouve dans un VPC (Virtual Private Cloud), il doit être accessiblepubliquement avec une adresse IP publique. En outre, accordez un accès Kinesis Data Firehose à votrecluster Amazon Redshift en débloquant les adresses IP Kinesis Data Firehose. Kinesis Data Firehoseutilise actuellement un bloc d'adresses CIDR pour chaque région disponible :

• 13.58.135.96/27 pour USA Est (Ohio)• 52.70.63.192/27 pour USA Est (Virginie du Nord)• 13.57.135.192/27 pour USA Ouest (Californie du Nord)• 52.89.255.224/27 pour USA Ouest (Oregon)• 18.253.138.96/27 pour AWS GovCloud (US-East)• 52.61.204.160/27 pour AWS GovCloud (US-West)• 35.183.92.128/27 pour Canada (Centre)• 18.162.221.32/27 pour Asie-Pacifique (Hong Kong)• 13.232.67.32/27 pour Asie-Pacifique (Mumbai)• 13.209.1.64/27 pour Asie-Pacifique (Séoul)• 13.228.64.192/27 pour Asie-Pacifique (Singapour)• 13.210.67.224/27 pour Asie-Pacifique (Sydney)• 13.113.196.224/27 pour Asie-Pacifique (Tokyo)• 52.81.151.32/27 pour Chine (Pékin)• 161.189.23.64/27 pour Chine (Ningxia)• 35.158.127.160/27 pour Europe (Francfort)• 52.19.239.192/27 pour Europe (Irlande)• 18.130.1.96/27 pour Europe (Londres)• 35.180.1.96/27 pour Europe (Paris)• 13.53.63.224/27 pour Europe (Stockholm)• 15.185.91.0/27 pour Moyen-Orient (Bahreïn)• 18.228.1.128/27 pour Amérique du Sud (São Paulo)• 15.161.135.128/27 pour UE (Milan)• 13.244.121.224/277 pour Afrique (Le Cap)

Pour en savoir plus sur la façon de débloquer les adresses IP, consultez l’étape Autoriser l'accès au clusterdans le guide Amazon Redshift Mise en route.

Accorder à Kinesis Data Firehose l'accès à unedestination Amazon ES publiqueLorsque vous utilisez une destination Amazon ES, Kinesis Data Firehose remet les données à votre clusterAmazon ES et sauvegarde simultanément tous les documents (ou ceux dont le traitement a échoué) dansvotre compartiment S3. Si la journalisation des erreurs est activée, Kinesis Data Firehose envoie égalementles erreurs de diffusion des données à vos flux et à votre groupe de journaux CloudWatch. Kinesis DataFirehose utilise un rôle IAM pour accéder au domaine Elasticsearch spécifié, au compartiment S3, à la cléAWS KMS et au groupe de journaux et aux flux CloudWatch. Vous devez disposer d'un rôle IAM lorsquevous créez un flux de diffusion.

Exécutez la stratégie d'accès suivante pour permettre à Kinesis Data Firehose d'accéder à votrecompartiment S3, au domaine Amazon ES et à la clé AWS KMS. Si vous ne possédez pas de

44

Page 50: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Accorder à Kinesis Data Firehose l'accèsà une destination Amazon ES publique

compartiment S3, ajoutez s3:PutObjectAcl à la liste des actions Amazon S3, qui accorde aupropriétaire du compartiment un accès total aux objets diffusés par Kinesis Data Firehose. Cette stratégiepossède également une déclaration qui autorise l'accès à Amazon Kinesis Data Streams. Si vous n'utilisezpas Kinesis Data Streams comme source de données, vous pouvez supprimer cette déclaration.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "es:DescribeElasticsearchDomain", "es:DescribeElasticsearchDomains", "es:DescribeElasticsearchDomainConfig", "es:ESHttpPost", "es:ESHttpPut" ], "Resource": [ "arn:aws:es:region:account-id:domain/domain-name", "arn:aws:es:region:account-id:domain/domain-name/*" ] }, { "Effect": "Allow", "Action": [ "es:ESHttpGet" ], "Resource": [ "arn:aws:es:region:account-id:domain/domain-name/_all/_settings", "arn:aws:es:region:account-id:domain/domain-name/_cluster/stats", "arn:aws:es:region:account-id:domain/domain-name/index-name*/_mapping/type-name",

45

Page 51: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Accorder à Kinesis Data Firehose l'accès àune destination Amazon ES dans un VPC

"arn:aws:es:region:account-id:domain/domain-name/_nodes", "arn:aws:es:region:account-id:domain/domain-name/_nodes/stats", "arn:aws:es:region:account-id:domain/domain-name/_nodes/*/stats", "arn:aws:es:region:account-id:domain/domain-name/_stats", "arn:aws:es:region:account-id:domain/domain-name/index-name*/_stats" ] }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:log-stream-name" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ]}

Pour de plus amples informations sur la façon de permettre à d'autres services AWS d'accéder à vosressources AWS, veuillez consulter Création d'un rôle pour déléguer des autorisations à un service AWSdans le IAM Guide de l'utilisateur.

Pour savoir comment accorder à Kinesis Data Firehose l'accès à un cluster Amazon ES dans un autrecompte, consultez the section called “Diffusion entre comptes vers une destination Amazon ES” (p. 52).

Accorder à Kinesis Data Firehose l'accès à unedestination Amazon ES dans un VPCSi votre domaine Amazon ES se trouve dans un VPC, assurez-vous d'accorder à Kinesis Data Firehose lesautorisations décrites dans la section précédente. En outre, vous devez accorder à Kinesis Data Firehoseles autorisations suivantes pour lui permettre d'accéder au VPC de votre domaine Amazon ES.

• ec2:DescribeVpcs

• ec2:DescribeVpcAttribute

• ec2:DescribeSubnets

• ec2:DescribeSecurityGroups

• ec2:DescribeNetworkInterfaces

46

Page 52: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Attribution à Kinesis Data Firehosede l'accès à une destination Splunk

• ec2:CreateNetworkInterface

• ec2:CreateNetworkInterfacePermission

• ec2:DeleteNetworkInterface

Si vous révoquez ces autorisations après avoir créé le flux de diffusion, Kinesis Data Firehose ne peutpas évoluer en créant d'autres ENI, si nécessaire. Par conséquent, il est possible que vous constatiez unedégradation des performances.

Lorsque vous créez ou mettez à jour votre flux de diffusion, vous spécifiez un groupe de sécurité qui serautilisé par Kinesis Data Firehose lors de l’envoi des données à votre domaine Amazon ES. Vous pouvez,si vous le souhaitez, utiliser le même groupe de sécurité que celui utilisé par le domaine Amazon ES. Sivous spécifiez un groupe de sécurité différent, assurez-vous qu'il autorise le trafic HTTPS sortant versle groupe de sécurité du domaine Amazon ES. Assurez-vous également que le groupe de sécurité dudomaine Amazon ES autorise le trafic HTTPS à partir du groupe de sécurité que vous avez spécifié lorsde la configuration de votre flux de diffusion. Si vous utilisez le même groupe de sécurité pour votre fluxde diffusion et le domaine Amazon ES, assurez-vous que la règle entrante du groupe de sécurité autorisele trafic HTTPS. Pour plus d'informations sur les règles des groupes de sécurité, veuillez consulter Règlesdes groupes de sécurité dans la documentation Amazon VPC.

Attribution à Kinesis Data Firehose de l'accès à unedestination SplunkLorsque vous utilisez une destination Splunk, Kinesis Data Firehose remet les données à votre pointde terminaison HTTP Event Collector (HEC) Splunk. Il sauvegarde également ces données dans lecompartiment Amazon S3 que vous spécifiez, et vous pouvez éventuellement utiliser une clé AWS KMSdont vous êtes propriétaire pour réaliser un chiffrement côté serveur Amazon S3. Si la journalisationdes erreurs est activée, Kinesis Data Firehose envoie les erreurs de livraison des données à vos fluxde consignation CloudWatch. Vous pouvez également utiliser AWS Lambda pour la transformation desdonnées. Si vous utilisez un équilibreur de charge AWS, assurez-vous qu'il s'agit d'un Equilibreur decharge classique. Kinesis Data Firehose ne prend en charge ni Application Load Balancers ni Équilibreursde charge du réseau. En outre, activez les sessions permanentes basées sur la durée avec l'expiration ducookie désactivée. Pour en savoir plus sur la façon de procéder, consultez le document Permanence desession basée sur la durée.

Vous devez avoir un rôle IAM lors de la création d'un flux de diffusion. Kinesis Data Firehose assume cerôle IAM et accède au compartiment spécifié, à la clé et au groupe de journaux et aux flux CloudWatch.

Exécutez la stratégie d'accès suivante pour permettre à Kinesis Data Firehose d'accéder à votrecompartiment S3. Si vous ne possédez pas de compartiment S3, ajoutez s3:PutObjectAcl Amazon S3à la liste des actions, afin d'accorder au propriétaire du compartiment un accès total aux objets transmis parKinesis Data Firehose. Cette stratégie accorde également à Kinesis Data Firehose l'accès à CloudWatchpour la journalisation des erreurs et à AWS Lambda pour la transformation des données. La stratégiepossède également une déclaration qui autorise l'accès à Amazon Kinesis Data Streams. Si vous n'utilisezpas Kinesis Data Streams en tant que source de données, vous pouvez supprimer cette déclaration.Kinesis Data Firehose n'utilise pas IAM pour accéder à Splunk. Pour accéder à Splunk, il utilise votre jetonHEC.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload",

47

Page 53: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Attribution à Kinesis Data Firehosede l'accès à une destination Splunk

"s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:*" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ]}

Pour de plus amples informations sur la façon de permettre à d'autres services AWS d'accéder à vosressources AWS, veuillez consulter Création d'un rôle pour déléguer des autorisations à un service AWSdans le IAM Guide de l'utilisateur.

48

Page 54: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Accès à Splunk dans un VPC

Accès à Splunk dans un VPCSi votre plateforme Splunk se trouve dans un VPC, il doit être accessible publiquement avec uneadresse IP publique. En outre, accordez à Kinesis Data Firehose l'accès à votre plateforme Splunk endébloquant les adresses IP Kinesis Data Firehose. Kinesis Data Firehose utilise actuellement les blocsd'adresse CIDR suivants.

• 18.216.68.160/27, 18.216.170.64/27, 18.216.170.96/27 pour USA Est (Ohio)• 34.238.188.128/26, 34.238.188.192/26, 34.238.195.0/26 pour USA Est (Virginie du Nord)• 13.57.180.0/26 pour USA Ouest (Californie du Nord)• 34.216.24.32/27, 34.216.24.192/27, 34.216.24.224/27 pour USA Ouest (Oregon)• 18.253.138.192/26 pour AWS GovCloud (US-East)• 52.61.204.192/26 pour AWS GovCloud (US-West)• 18.162.221.64/26 pour Asie-Pacifique (Hong Kong)• 13.232.67.64/26 pour Asie-Pacifique (Mumbai)• 13.209.71.0/26 pour Asie-Pacifique (Séoul)• 13.229.187.128/26 pour Asie-Pacifique (Singapour)• 13.211.12.0/26 pour Asie-Pacifique (Sydney)• 13.230.21.0/27, 13.230.21.32/27 pour Asie-Pacifique (Tokyo)• 35.183.92.64/26 pour Canada (Centre)• 18.194.95.192/27, 18.194.95.224/27, 18.195.48.0/27 pour Europe (Francfort)• 34.241.197.32/27, 34.241.197.64/27, 34.241.197.96/27 pour Europe (Irlande)• 18.130.91.0/26 pour Europe (Londres)• 35.180.112.0/26 pour Europe (Paris)• 13.53.191.0/26 pour Europe (Stockholm)• 15.185.91.64/26 pour Moyen-Orient (Bahreïn)• 18.228.1.192/26 pour Amérique du Sud (São Paulo)• 15.161.135.192/26 pour UE (Milan)• 13.244.165.128/26 pour Afrique (Le Cap)

Subvention Kinesis Data Firehose Accès à unedestination de point de terminaison HTTPVous pouvez utiliser Kinesis Data Firehose pour livrer des données à n’importe quelle destination de pointde terminaison HTTP. Kinesis Data Firehose sauvegarde également ces données Amazon S3 que vousspécifiez, et vous pouvez éventuellement utiliser un AWS KMS clé que vous possédez pour Amazon S3cryptage côté serveur. Si la journalisation des erreurs est activée, Kinesis Data Firehose envoie les erreursde livraison des données à vos flux de consignation CloudWatch. Vous pouvez également utiliser AWSLambda pour la transformation des données.

Vous devez avoir un rôle IAM lors de la création d'un flux de diffusion. Kinesis Data Firehose assume cerôle IAM et accède au compartiment spécifié, à la clé et au groupe de journaux et aux flux CloudWatch.

Utilisez la politique d’accès suivante pour activer Kinesis Data Firehose pour accéder au bucket S3 quevous avez spécifié pour la sauvegarde des données. Si vous ne possédez pas de compartimentS3, ajoutez s3:PutObjectAcl Amazon S3 à la liste des actions, afin d'accorder au propriétaire ducompartiment un accès total aux objets transmis par Kinesis Data Firehose. Cette stratégie accorde

49

Page 55: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Subvention Kinesis Data Firehose Accès à

une destination de point de terminaison HTTP

également à Kinesis Data Firehose l'accès à CloudWatch pour la journalisation des erreurs et à AWSLambda pour la transformation des données. La stratégie possède également une déclaration qui autorisel'accès à Amazon Kinesis Data Streams. Si vous n'utilisez pas Kinesis Data Streams comme source dedonnées, vous pouvez supprimer cette déclaration.

Important

Kinesis Data Firehose n’utilise pas IAM pour accéder aux destinations de point de terminaisonHTTP possédées par des fournisseurs de services tiers pris en charge, y compris datadog,mongodb et New Relic. Pour accéder à une destination de point de terminaison HTTP spécifiéedétenue par un prestataire de services tiers pris en charge, contactez le fournisseur de servicespour obtenir la clé API ou la clé d’accès requise pour permettre la livraison des données à ceservice depuis Kinesis Data Firehose.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:region:account-id:key/key-id" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.region.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::bucket-name/prefix*" } } }, { "Effect": "Allow", "Action": [ "kinesis:DescribeStream", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:region:account-id:stream/stream-name" }, { "Effect": "Allow", "Action": [

50

Page 56: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Diffusion entre comptes vers une destination Amazon S3

"logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:log-group-name:log-stream:*" ] }, { "Effect": "Allow", "Action": [ "lambda:InvokeFunction", "lambda:GetFunctionConfiguration" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name:function-version" ] } ]}

Pour de plus amples informations sur la façon de permettre à d'autres services AWS d'accéder à vosressources AWS, veuillez consulter Création d'un rôle pour déléguer des autorisations à un service AWSdans le IAM Guide de l'utilisateur.

Important

Actuellement Kinesis Data Firehose NE prend PAS en charge la livraison des données auxterminaux HTTP dans un VPC.

Diffusion entre comptes vers une destination AmazonS3Vous pouvez utiliser l'AWS CLI ou les API Kinesis Data Firehose pour créer un flux de diffusion dans uncompte AWS avec une destination Amazon S3 dans un autre compte. La procédure suivante présente unexemple de configuration d'un flux de diffusion Kinesis Data Firehose appartenant au compte A en vue dela diffusion de données vers un compartiment Amazon S3 appartenant au compte B.

1. Créez un rôle IAM dans le compte A en suivant la procédure décrite sous Attribution à KinesisFirehose de l'accès à une destination Amazon S3.

Note

Le compartiment Amazon S3 spécifié dans la stratégie d'accès appartient ici au compte B.Assurez-vous d'ajouter s3:PutObjectAcl à la liste des actions Amazon S3 dans lastratégie d'accès pour accorder au compte B un accès total aux objets diffusés par AmazonKinesis Data Firehose.

2. Pour autoriser l'accès à partir du rôle IAM précédemment configuré, créez une stratégie decompartiment S3 dans le compte B. Le code suivant est un exemple de stratégie de compartiment.Pour en savoir plus, consultez Utilisation de stratégies de compartiment et de stratégies utilisateur.

{

"Version": "2012-10-17", "Id": "PolicyID", "Statement": [ { "Sid": "StmtID", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::accountA-id:role/iam-role-name" },

51

Page 57: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Diffusion entre comptes vers une destination Amazon ES

"Action": [ "s3:AbortMultipartUpload", "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ]}

3. Créez un flux de diffusion Kinesis Data Firehose sous le compte A en utilisant le rôle IAM que vousavez créé à l'étape 1.

Diffusion entre comptes vers une destination AmazonESVous pouvez utiliser l'AWS CLI ou les API Kinesis Data Firehose pour créer un flux de diffusion dans uncompte AWS avec une destination Amazon ES dans un autre compte. La procédure suivante illustre lafaçon dont vous pouvez créer un flux de diffusion Kinesis Data Firehose sous le compte A et le configurerpour qu'il transmette des données à une destination Amazon ES appartenant au compte B.

1. Créez un rôle IAM sous le compte A en suivant les étapes décrites dans the section called “Accorder àKinesis Data Firehose l'accès à une destination Amazon ES publique” (p. 44).

2. Pour autoriser l’accès à partir du IAM rôle que vous avez créé à l’étape précédente, créez un AmazonES politique sous le compte B. Le JSON suivant est un exemple.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::Account-A-ID:role/firehose_delivery_role " }, "Action": "es:ESHttpGet", "Resource": [ "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_all/_settings", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_cluster/stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/roletest*/_mapping/roletest", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_nodes", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_nodes/stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_nodes/*/stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/_stats", "arn:aws:es:us-east-1:Account-B-ID:domain/cross-account-cluster/roletest*/_stats" ] } ]

52

Page 58: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Utilisation des balises pour contrôler l'accès

}

3. Créez un flux de diffusion Kinesis Data Firehose sous le compte A en utilisant le rôle IAM que vousavez créé à l'étape 1. Lorsque vous créez le flux de diffusion, utilisez l'AWS CLI ou les API KinesisData Firehose et spécifiez le champ ClusterEndpoint au lieu de DomainARN pour Amazon ES.

Note

Pour créer un flux de diffusion dans un compte AWS avec une destination Amazon ES dans unautre compte, vous devez utiliser l'AWS CLI ou les API Kinesis Data Firehose. Vous ne pouvezpas utiliser l’AWS Management Console pour créer ce type de configuration inter-comptes.

Utilisation des balises pour contrôler l'accèsVous pouvez utiliser l'élément facultatif Condition (ou Condition block) dans une stratégie IAM pouraffiner l'accès aux opérations Kinesis Data Firehose basées sur les clés et valeurs de balise. Les sous-sections suivantes décrivent comment vous devez procéder pour les différentes opérations Kinesis DataFirehose. Pour plus d’informations sur l’utilisation du Condition et les opérateurs que vous pouvezutiliser, voir Éléments de la politique IAM JSON : Condition

CreateDeliveryStream et TagDeliveryStreamPour les opérations TagDeliveryStream et CreateDeliveryStream, utilisez la clé de conditionaws:RequestTag. Dans l'exemple suivant, MyKey et MyValue représentent la clé et sa valeurcorrespondante pour une balise.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "firehose:CreateDeliveryStream", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/MyKey": "MyValue" } } } ]}

UntagDeliveryStreamPour l'opération UntagDeliveryStream, utilisez la clé de condition aws:TagKeys. Dans l'exemplesuivant, MyKey est un exemple de clé de balise.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "firehose:UntagDeliveryStream", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": "MyKey" }

53

Page 59: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Surveillance

} } ]}

ListDeliveryStreamsVous ne pouvez pas utiliser le contrôle d'accès basé sur les balises avec ListDeliveryStreams.

Autres opérations Kinesis Data FirehosePour toutes les opérations Kinesis Data Firehose autres que CreateDeliveryStream,TagDeliveryStream, UntagDeliveryStream et ListDeliveryStreams, utilisez la clé decondition aws:RequestTag. Dans l'exemple suivant, MyKey et MyValue représentent la clé et sa valeurcorrespondante pour une balise.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "firehose:DescribeDeliveryStream", "Resource": "*", "Condition": { "Null": { "firehose:ResourceTag/MyKey": "MyValue" } } ]}

Surveillance de Amazon Kinesis Data FirehoseKinesis Data Firehose fournit des fonctionnalités de surveillance pour vos flux de diffusion. Pour de plusamples informations, veuillez consulter  : Monitoring (p. 72).

Validation de la conformité pour Amazon KinesisData Firehose

Les auditeurs tiers évaluent la sécurité et la conformité de Amazon Kinesis Data Firehose dans le cadrede plusieurs programmes de conformité AWS. Il s'agit notamment des certifications SOC, PCI, FedRAMP,HIPAA et autres.

Pour obtenir la liste des services AWS dans le cadre de programmes de conformité spécifiques, consultezServices AWS concernés par le programme de conformité. Pour obtenir des informations générales,consultez la page Programmes de conformité AWS.

Vous pouvez télécharger les rapports de l'audit externe avec AWS Artifact. Pour plus d'informations,consultez Téléchargement des rapports dans AWS Artifact.

Votre responsabilité de conformité lors de l'utilisation de Kinesis Data Firehose est déterminée par lasensibilité de vos données, les objectifs de conformité de votre entreprise, ainsi que par la législation et la

54

Page 60: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Résilience

réglementation applicables. Si votre utilisation de Kinesis Data Firehose est soumise à la conformité auxnormes HIPAA, PCI, ou FedRAMP, AWS fournit des ressources pour vous aider :

• Guides de démarrage rapide de la sécurité et de la conformité – Ces guides de déploiement proposentdes considérations architecturales et fournissent des étapes pour déployer des environnements deréférence centrés sur la sécurité et la conformité sur AWS.

• Livre blanc sur l'architecture pour la sécurité et la conformité HIPAA – Le livre blanc décrit comment lesentreprises peuvent utiliser AWS pour créer des applications conformes à la loi HIPAA.

• Ressources de conformité AWS – Cet ensemble de manuels et de guides peut s'appliquer à votresecteur et à votre emplacement.

• AWS Config – Ce service AWS permet d'évaluer comment les configurations de vos ressources seconforment aux pratiques internes, aux normes et aux directives industrielles.

• AWS Security Hub – Ce service AWS fournit une vue complète de votre état de sécurité au sein de AWSqui vous permet de vérifier votre conformité aux normes du secteur et aux bonnes pratiques de sécurité.

Résilience dans Amazon Kinesis Data FirehoseL'infrastructure mondiale d'AWS repose sur des régions et des zones de disponibilité AWS. Les régionsAWS fournissent plusieurs zones de disponibilité physiquement séparées et isolées, reliées par unréseau à latence faible, à débit élevé et à forte redondance. Avec les zones de disponibilité, vous pouvezconcevoir et exploiter des applications et des bases de données qui basculent automatiquement d'unezone de disponibilité à l'autre sans interruption. Les zones de disponibilité sont plus hautement disponibles,tolérantes aux pannes et évolutives que les infrastructures traditionnelles à un ou plusieurs centres dedonnées.

Pour plus d'informations sur les régions et les zones de disponibilité AWS, consultez Infrastructuremondiale AWS.

Outre l’infrastructure globale AWS, Kinesis Data Firehose propose plusieurs fonctionnalités qui contribuentà la prise en charge des vos besoins en matière de résilience et de sauvegarde de données.

Reprise après sinistreKinesis Data Firehose s'exécute en mode sans serveur et s'occupe des dégradations de l'hôte, de ladisponibilité des zones de disponibilité et d'autres problèmes liés à l'infrastructure en effectuant unemigration automatique. Lorsque cela se produit, Kinesis Data Firehose s'assure que le flux de diffusion estmigré sans aucune perte de données.

Sécurité de l'infrastructure dans Kinesis DataFirehose

En tant que service géré, Amazon Kinesis Data Firehose est protégé par les procédures de sécuritédu réseau mondial AWS qui sont décrites dans le livre blanc Amazon Web Services : Présentation desprocédures de sécurité.

Vous utilisez les appels d'API publiés AWS pour accéder à Kinesis Data Firehose via le réseau. Les clientsdoivent prendre en charge le protocole TLS (Transport Layer Security) 1.0 ou version ultérieure. Nousrecommandons TLS 1.2 ou version ultérieure. Les clients doivent également prendre en charge les suitesde chiffrement PFS (Perfect Forward Secrecy) comme Ephemeral Diffie-Hellman (DHE) ou Elliptic CurveEphemeral Diffie-Hellman (ECDHE) La plupart des systèmes modernes telles que Java 7 et versionsultérieures prennent en charge ces modes.

55

Page 61: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Points de terminaison d'un VPC (PrivateLink)

En outre, les demandes doivent être signées à l'aide d'un ID de clé d'accès et d'une clé d'accès secrèteassociée à un mandataire IAM. Vous pouvez également utiliser AWS Security Token Service (AWS STS)pour générer des informations d'identification de sécurité temporaires et signer les demandes.

Points de terminaison d'un VPC (PrivateLink)Kinesis Data Firehose fournit la prise en charge des points de terminaison d'un VPC (PrivateLink).Pour de plus amples informations, veuillez consulter Utilisation de Kinesis Data Firehose avec AWSPrivateLink (p. 103).

Bonnes pratiques de sécurité pour Kinesis DataFirehose

Amazon Kinesis Data Firehose fournit un certain nombre de fonctionnalités de sécurité à prendre encompte lorsque vous développez et implémentez vos propres stratégies de sécurité. Les bonnes pratiquessuivantes doivent être considérées comme des instructions générales et ne représentent pas unesolution de sécurité complète. Étant donné que ces bonnes pratiques peuvent ne pas être appropriées ousuffisantes pour votre environnement, considérez-les comme des remarques utiles plutôt que comme desrecommandations.

Implémentation d'un accès sur la base du moindreprivilègeLorsque vous accordez des autorisations, vous choisissez qui obtient les autorisations pour telles ou tellesressources Kinesis Data Firehose. Vous activez des actions spécifiques que vous souhaitez autoriser surces ressources. Par conséquent, vous devez accorder uniquement les autorisations qui sont requises pourexécuter une tâche. L'implémentation d'un accès sur la base du moindre privilège est fondamentale pourréduire les risques en matière de sécurité et l'impact que pourraient avoir des d'erreurs ou des actes demalveillance.

Utiliser des rôles IAMLes applications clientes et de type producteur doivent avoir des informations d'identification validespour accéder aux flux de transmission Kinesis Data Firehose et votre flux de transmission KinesisData Firehose doit avoir des informations d'identification valides pour accéder aux destinations. Vousne devez pas stocker les informations d'identification AWS directement dans une application client nidans un compartiment Amazon S3. Il s'agit d’informations d'identification à long terme qui ne font pasautomatiquement l'objet d'une rotation et qui pourraient avoir un impact commercial important si ellesétaient compromises.

Au lieu de cela, vous devez utiliser un rôle IAM pour gérer des informations d'identification temporairespour votre application client ou de type producteur afin d’accéder à des flux de transmission Kinesis DataFirehose. Lorsque vous utilisez un rôle, vous n'avez pas à utiliser d’informations d'identification à longterme (par exemple, un nom d'utilisateur et un mot de passe ou des clés d'accès) pour accéder à d’autresressources.

Pour plus d'informations, veuillez consulter les rubriques suivantes dans le Guide de l'utilisateur IAM :

• Rôles IAM• Scénarios courants pour les rôles : utilisateurs, applications et services.

56

Page 62: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Implémentation d'un chiffrement côté

serveur dans des ressources dépendantes

Implémentation d'un chiffrement côté serveur dans desressources dépendantesLes données au repos et les données en transit peuvent être chiffrées Kinesis Data Firehose. Pour de plusamples informations, veuillez consulter Protection des données (p. 37).

Utilisation de CloudTrail pour surveiller les appelsd'APIKinesis Data Firehose est intégré à AWS CloudTrail, service qui enregistre les actions effectuées par unutilisateur, un rôle ou un service AWS dans Kinesis Data Firehose.

Les informations collectées par CloudTrail vous permettent de déterminer quelle demande a été envoyée àKinesis Data Firehose, l'adresse IP source à partir de laquelle la demande a été effectuée, qui a effectué lademande, quand, ainsi que d'autres informations.

Pour plus d'informations, consultez the section called “Journalisation des appels de l'API Kinesis DataFirehose avec AWS CloudTrail” (p. 94).

57

Page 63: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Flux de transformation de données

Transformation de données AmazonKinesis Data Firehose

Kinesis Data Firehose peut appeler votre fonction Lambda afin de transformer les données sourceentrantes et diffuser les données transformées aux destinations. Vous pouvez activer la transformation dedonnées Kinesis Data Firehose lorsque vous créez votre flux de diffusion.

Flux de transformation de donnéesLorsque vous activez la transformation de données Kinesis Data Firehose, par défaut, Kinesis DataFirehose met en mémoire tampon les données entrantes à hauteur de 3 Mo. (Pour ajuster la taille de miseen mémoire tampon, utilisez l'APIProcessingConfiguration avec le ProcessorParameter appeléBufferSizeInMBs.) Kinesis Data Firehose appelle ensuite la fonction Lambda spécifiée avec chaquelot mis en mémoire tampon de façon asynchrone à l'aide du mode d'appel synchrone AWS Lambda. Lesdonnées transformées sont envoyées de Lambda vers Kinesis Data Firehose. Kinesis Data Firehoseles envoie ensuite à la destination quand la taille de mise en mémoire tampon ou l'intervalle de mise enmémoire tampon de la destination spécifié(e) est atteint(e), selon la situation qui survient en premier.

Important

Le mode d'appel synchrone Lambda a une taille de charge utile limitée à 6 Mo pour la demande etla réponse. Assurez-vous que votre taille de mise en mémoire tampon pour l'envoi de la demandeà la fonction est inférieure ou égale à 6 Mo. Assurez-vous également que la réponse que votrefonction renvoie ne dépasse pas 6 Mo.

Transformation de données et modèle d'étatTous les enregistrements transformés par Lambda doivent contenir les paramètres suivants, sinon KinesisData Firehose les rejette et les traite comme un échec de la transformation des données.

recordId

L'ID d'enregistrement est diffusé de Kinesis Data Firehose à Lambda pendant l'appel. L'enregistrementtransformé doit comporter le même ID d'enregistrement. La moindre incohérence entre l'ID del'enregistrement initial et l'ID de l'enregistrement transformé est traitée comme un échec de latransformation des données.

result

État de la transformation de données de l'enregistrement. Les valeurs possibles sont : Ok(l'enregistrement a été transformé), Dropped (l'enregistrement a été abandonné de manièreintentionnelle par votre logique de traitement) et ProcessingFailed (impossible de transformerl'enregistrement). Si l'état d'un enregistrement est Ok ou Dropped, Kinesis Data Firehose le considèrecomme traité. Sinon, Kinesis Data Firehose le considère comme n'ayant pas été correctement traité.

Données

Charge utile des données transformées, d'après l'encodage en base64.

58

Page 64: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Plans Lambda

Plans LambdaVous pouvez utiliser des plans pour créer une fonction Lambda pour la transformation de données.Certains de ces plans sont dans la console AWS Lambda et d'autres sont dans AWS ServerlessApplication Repository.

Pour voir les plans disponibles dans la console AWS Lambda

1. Connectez-vous à la AWS Management Console et ouvrez la console AWS Lambda à l'adressehttps://console.aws.amazon.com/lambda/.

2. Choisissez Create function (Créer une fonction), puis Use a blueprint (Utiliser un plan).3. Dans le champ Blueprints (Plans) recherchez le mot-clé firehose pour trouver les plans Kinesis Data

Firehose Lambda.

Pour voir les plans disponibles dans AWS Serverless Application Repository

1. Accédez à AWS Serverless Application Repository.2. Choisissez Browse all applications.3. Dans le champ Applications recherchez le mot-clé firehose.

Vous pouvez également créer une fonction Lambda sans utiliser de plan. Consultez Démarrage avec AWSLambda.

Gestion des échecs de transformation des donnéesSi l'appel de votre fonction Lambda échoue en raison d'un délai d'expiration réseau ou parce que vousavez atteint la limite d'appels Lambda, Kinesis Data Firehose fait trois nouvelles tentatives d'appels pardéfaut. Si l'appel n'aboutit pas, Kinesis Data Firehose ignore ce lot d'enregistrements. Les enregistrementsignorés sont traités comme des enregistrements comme n'ayant pas été correctement traités. Vouspouvez spécifier ou remplacer les options de tentative d'appel à l'aide de l'API CreateDeliveryStream ouUpdateDestination. Avec ce type d'échec, vous pouvez journaliser les erreurs d'appel dans AmazonCloudWatch Logs. Pour plus d'informations, consultez Surveillance de Kinesis Data Firehose à l'aided'CloudWatch Logs (p. 86).

Si le statut de la transformation des données d'un enregistrement est ProcessingFailed, Kinesis DataFirehose considère l'enregistrement comme n'ayant pas été correctement traité. Avec ce type d'échec,vous pouvez émettre des journaux d'erreur dans Amazon CloudWatch Logs avec votre fonction Lambda.Pour en savoir plus, consultez Accès à Amazon CloudWatch Logs pour AWS Lambda dans AWS LambdaDeveloper Guide.

En cas d'échec de la transformation des données, les enregistrements n'ayant pas été correctement traitéssont diffusés au compartiment S3 du dossier processing-failed. Les enregistrements sont au formatsuivant :

{ "attemptsMade": "count", "arrivalTimestamp": "timestamp", "errorCode": "code", "errorMessage": "message", "attemptEndingTimestamp": "timestamp", "rawData": "data", "lambdaArn": "arn"}

59

Page 65: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Durée d’un appel Lambda

attemptsMade

Nombre de tentatives de demandes d'appel.arrivalTimestamp

Heure à laquelle l'enregistrement a été reçu par Kinesis Data Firehose.errorCode

Code d'erreur HTTP renvoyé par Lambda.errorMessage

Message d'erreur renvoyé par Lambda.attemptEndingTimestamp

Heure à laquelle Kinesis Data Firehose a cessé ses tentatives d'appel Lambda.rawData

Données d'enregistrement encodées en base64.lambdaArn

Amazon Resource Name (ARN) de la fonction Lambda.

Durée d’un appel LambdaKinesis Data Firehose prend en charge une durée d’appel Lambda de 5 minutes maximum. Si votrefonction Lambda dure plus de 5 minutes, l’erreur suivante est générée : Firehose encountered timeouterrors when calling AWS Lambda. The maximum supported function timeout is 5 minutes. (Firehose arencontré des erreurs de temporisation lors de l’appel d’AWS Lambda. La durée de temporisation maximalede la fonction est de 5 minutes.)

Pour plus d’informations sur les actions de Kinesis Data Firehose si cette erreur se produit, consultez lasection the section called “Gestion des échecs de transformation des données” (p. 59).

Sauvegarde de l'enregistrement sourceKinesis Data Firehose peut sauvegarder tous les enregistrements non transformés dans votrecompartiment S3 tout en diffusant les enregistrements transformés à la destination. Vous pouvez activer lasauvegarde de l'enregistrement source lorsque vous créez ou mettez à jour votre flux de diffusion. Vous nepouvez pas désactiver la sauvegarde de l'enregistrement source après l'avoir activée.

60

Page 66: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Exigences pour la conversion du format d'enregistrement

Conversion de votre formatd'enregistrement d'entrée dansKinesis Data Firehose

Amazon Kinesis Data Firehose peut convertir le format de vos données d'entrée de JSON en ApacheParquet ou Apache ORC avant de les stocker dans Amazon S3. Parquet et ORC sont des formats dedonnées en colonnes qui gagnent der l'espace et permettent des requêtes plus rapides que les formatsorientés lignes comme JSON. Si vous voulez convertir un format d'entrée autre que JSON, comme desvaleurs séparées par des virgules (CSV) ou un texte structuré, vous pouvez utiliser AWS Lambda pour letransformer d'abord en JSON. Pour plus d'informations, consultez Transformation de données (p. 58),

Rubriques• Exigences pour la conversion du format d'enregistrement (p. 61)• Choix du désérialiseur JSON (p. 62)• Choix du sérialiseur (p. 63)• Conversion du format d'enregistrement d'entrée (console) (p. 63)• Conversion du format d'enregistrement d'entrée (API) (p. 63)• Gestion des erreurs de conversion de format d'enregistrement (p. 64)• Exemple de conversion du format d’enregistrement (p. 64)

Exigences pour la conversion du formatd'enregistrement

Kinesis Data Firehose a besoin des trois éléments suivants pour convertir le format de vos donnéesd'enregistrement :

• Un désérialiseur pour lire le JSON de vos données d’entrée – Vous pouvez choisir l’un des deux types dedésérieuses : Serde Apache Hive JSON ou openx JSON serde.

Note

Lorsque vous combinez plusieurs documents JSON dans le même enregistrement, assurez-vous que votre saisie est toujours présentée au format JSON appuyé. Un ensemble dedocuments JSON n’est PAS une entrée valide.Par exemple, il s’agit de l’entrée correcte : {"a":1}{"a":2}Et il s’agit de l’entrée INCORRECTE : [{"a":1}, {"a":2}]

• Un schéma pour déterminer comment interpréter ces données – Utilisez AWS Glue pour créer unschéma dans Catalogue de données AWS Glue. Kinesis Data Firehose référence ensuite ce schémaet l'utilise pour interpréter vos données d'entrée. Vous pouvez utiliser le même schéma pour configurerKinesis Data Firehose et vos logiciels d'analyse. Pour en savoir plus, consultez Remplissage ducatalogue de données AWS Glue dans le Manuel du développeur AWS Glue.

61

Page 67: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Choix du désérialiseur JSON

• Un sérialiseur pour convertir les données au format de stockage des colonnes cible (parquet ou ORC) –Vous pouvez choisir l’un des deux types de sérialisateurs : Serde ORC ou Serde.

Important

Si vous activez la conversion du format d'enregistrement, vous ne pouvez pas définir votredestination Kinesis Data Firehose sur Amazon Elasticsearch Service (Amazon ES), AmazonRedshift ou Splunk. Avec la conversion de format activée, Amazon S3 est la seule destination quevous pouvez utiliser pour votre flux de transmission Kinesis Data Firehose.

Vous pouvez convertir le format de vos données même si vous regroupez vos enregistrements avant de lesenvoyer à Kinesis Data Firehose.

Choix du désérialiseur JSONChoisissez OpenX JSON SerDe si votre JSON d'entrée contient des horodatages dans les formatssuivants :

• aaaa-MM-jj'T'HH:mm:ss[.S]'Z', où la fraction peut avoir jusqu'à 9 chiffres – Par exemple2017-02-07T15:13:01.39256Z.

• aaaa-[M]M-[d]j HH:mm:ss[.S], où la fraction peut avoir jusqu'à 9 chiffres – Par exemple 2017-02-0715:13:01.14.

• Heure Unix en secondes – Par exemple 1518033528.• Heure Unix en millisecondes – Par exemple 1518033528123.• Heure Unix en secondes à virgule flottante – Par exemple 1518033528.123.

Le désérialiseur OpenX JSON SerDe peut convertir les points (.) en traits de soulignement (_). Il peutégalement convertir les clés JSON en minuscules avant de les désérialiser. Pour en savoir plus sur lesoptions qui sont disponibles avec ce désérialiseur via Kinesis Data Firehose, consultez OpenXJsonSerDe.

Si vous ne savez pas quel désérialiseur choisir, utilisez OpenX JSON SerDe, à moins d'avoir deshorodatages que celui-ci ne prend pas en charge.

Si vous avez des horodatages dans des formats autres que ceux répertoriés précédemment, utilisezApache Hive JSON SerDe. Lorsque vous choisissez cette désérialiseur, vous pouvez spécifier lesformats d'horodatage à utiliser. Pour ce faire, suivez la syntaxe du modèle des chaînes de formatDateTimeFormat Joda Time. Pour plus d'informations, consultez Classe DateTimeFormat.

Vous pouvez également utiliser la valeur spéciale millis pour analyser les horodatagesUnix en millisecondes. Si vous ne spécifiez pas de format, Kinesis Data Firehose utilisejava.sql.Timestamp::valueOf par défaut.

Le désérialiseur Hive JSON SerDe n'autorise pas les éléments suivants :

• Des points (.) dans les noms de colonnes.• Les champs dont le type est uniontype.• Les champs qui ont des types numériques dans le schéma, mais qui sont des chaînes dans le code

JSON. Par exemple, si le schéma est (an int), et que le JSON est {"a":"123"}, le désérialiseur HiveSerDe envoie une erreur.

Le désérialiseur Hive SerDe ne convertit pas le code JSON imbriqué en chaînes. Par exemple, si vousavez {"a":{"inner":1}}, il ne traite pas {"inner":1} comme une chaîne.

62

Page 68: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Choix du sérialiseur

Choix du sérialiseurLe sérialiseur que vous choisissez dépend de vos besoins métier. Pour en savoir plus sur les deux optionsde sérialiseur, consultez ORC SerDe et Parquet SerDe.

Conversion du format d'enregistrement d'entrée(console)

Vous pouvez activer la conversion de format de données sur la console lors de la création ou de la miseà jour d'un flux de transmission Kinesis. Avec la conversion de format de données activée, Amazon S3est la seule destination que vous pouvez configurer pour le flux de transmission. De plus, la compressionAmazon S3 est désactivée lorsque vous activez la conversion de format. Toutefois, la compression Snappyse fait automatiquement dans le cadre du processus de conversion. Le format de trame pour Snappy utilisépar Kinesis Data Firehose dans ce cas est compatible avec Hadoop. Cela signifie que vous pouvez utiliserles résultats de la compression Snappy et exécuter des requêtes sur ces données dans Athena. Pour leformat de trame Snappy sur lequel s'appuie Hadoop, consultez BlockCompressorStream.java.

Pour activer la conversion de format de données pour un flux de transmission de données

1. Connectez-vous à l'AWS Management Console et ouvrez la console Kinesis Data Firehose à l'adressehttps://console.aws.amazon.com/firehose/.

2. Choisissez un flux de transmission Kinesis Data Firehose pour mettre à jour ou créer un nouveau fluxde transmission en suivant les étapes indiquées dans Création d'un flux de diffusion Amazon KinesisData Firehose (p. 5).

3. Sous Convert record format (Convertir le format d'enregistrement), définissez Record formatconversion (Conversion du format d'enregistrement) sur Enabled (Activé).

4. Choisissez le format de sortie souhaité. Pour plus d'informations sur les deux options, consultezApache Parquet et Apache ORC.

5. Choisissez une table AWS Glue afin d'indiquer un schéma pour vos enregistrements source.Définissez la région, la base de données, la table et la version de la table.

Conversion du format d'enregistrement d'entrée(API)

Si vous voulez qu'Kinesis Data Firehose convertisse le format de vos données d'entrée de JSONen Parquet ou ORC, spécifiez l'élément facultatif DataFormatConversionConfiguration dansExtendedS3DestinationConfiguration ou dans ExtendedS3DestinationUpdate. Si vous spécifiezDataFormatConversionConfiguration, les restrictions suivantes s'appliquent :

• Dans BufferingHints, vous ne pouvez pas définir SizeInMBs en une valeur inférieure à 64 si vousactivez la conversion de format d'enregistrement. De plus, lorsque la conversion de format n'est pasactivée, la valeur par défaut est 5. La valeur devient 128 lorsque vous activez la conversion.

• Vous devez définir CompressionFormat dans configuration de l’extendeds3 ou dans mise àjour de l’extendeds3des vers UNCOMPRESSED. Valeur par défaut pour CompressionFormat estUNCOMPRESSED. Par conséquent, vous pouvez également le laisser non spécifié dans configuration del’extendeds3. Les données sont toujours compressées dans le cadre du processus de sérialisation, enutilisant la compression Snappy, par défaut. Le format de trame pour Snappy utilisé par Kinesis DataFirehose dans ce cas est compatible avec Hadoop. Cela signifie que vous pouvez utiliser les résultats dela compression Snappy et exécuter des requêtes sur ces données dans Athena. Pour le format de trame

63

Page 69: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Gestion des erreurs de conversion

de format d'enregistrement

Snappy sur lequel s'appuie Hadoop, consultez BlockCompressorStream.java. Lorsque vous configurez lesérialiseur, vous pouvez choisir d'autres types de compression.

Gestion des erreurs de conversion de formatd'enregistrement

Quand Kinesis Data Firehose ne peut pas analyser ou désérialiser un enregistrement (par exemple,lorsque les données ne correspondent pas au schéma), ce service l'écrit dans Amazon S3 avec un préfixed'erreur. Si cette écriture échoue, Kinesis Data Firehose relance le processus indéfiniment, ce qui bloqueles remises suivantes. Pour chaque enregistrement ayant échoué, Kinesis Data Firehose écrit un documentJSON avec le schéma suivant :

{ "attemptsMade": long, "arrivalTimestamp": long, "lastErrorCode": string, "lastErrorMessage": string, "attemptEndingTimestamp": long, "rawData": string, "sequenceNumber": string, "subSequenceNumber": long, "dataCatalogTable": { "catalogId": string, "databaseName": string, "tableName": string, "region": string, "versionId": string, "catalogArn": string }}

Exemple de conversion du format d’enregistrementPour obtenir un exemple de configuration de la conversion du format des enregistrements avec AWSCloudFormation, veuillez consulter AWS::KinesisFirehose::DeliveryStream.

64

Page 70: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Créer une application Kinesis Data

Analytics qui lit à partir d’un flux de diffusion

Utilisation de Amazon Kinesis DataAnalyticsCréer une application Kinesis Data Analytics qui lit àpartir d’un flux de diffusion

1. Connectez-vous à la AWS Management Console et ouvrez la console Kinesis Data Analytics àl'adresse https://console.aws.amazon.com/kinesisanalytics.

2. Sélectionnez . Create application3. Indiquez un nom pour l’application et une description facultative. Puis, choisissez . Create application.4. Sélectionnez . Connect streaming data.5. Pour Source, sélectionnez Kinesis Firehose delivery stream (Flux de diffusion Kinesis Firehose).6. Dans la liste libellée Kinesis Firehose delivery stream (Flux de diffusion Kinesis Firehose), sélectionnez

le flux de diffusion que votre Kinesis Data Analytics va traiter. Sinon, choisissez Create new pourconfigurer un nouveau flux de livraison.

7. Pour terminer la configuration de votre application Kinesis Data Analytics, consultez la section Mise enroute avec Amazon Kinesis Data Analytics pour les applications SQL.

Rédiger les données depuis une application KinesisData Analytics vers un flux de diffusion

1. Pour créer une application Kinesis Data Analytics, suivez les instructions disponibles dans la sectionMise en route avec Amazon Kinesis Data Analytics pour les applications SQL.

2. Ouvrez la console Kinesis Data Analytics à l'adresse https://console.aws.amazon.com/kinesisanalytics.

3. Dans la liste des applications, sélectionnez l’application à configurer pour écrire sur un flux dediffusion.

4. Sélectionnez . Application details.5. Dans le bas de la page, cliquez sur le bouton . Connect to a destination.6. Choisir Flux de livraison du tuyau d’incendie Kinesis, puis choisissez un flux de livraison existant dans

la liste ou choisissez Create new pour créer un nouveau flux de livraison.

65

Page 71: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Format de diffusion des données

Diffusion des données AmazonKinesis Data Firehose

Une fois les données envoyées à votre flux de diffusion, elles sont automatiquement remises à ladestination de votre choix.

Important

Si vous utilisez Kinesis Producer Library (KPL) pour écrire des données dans un flux de donnéesKinesis, vous pouvez utiliser un regroupement pour combiner ces enregistrements Kinesis. Sivous utilisez ensuite ce flux de données en tant que source pour votre flux de diffusion KinesisData Firehose, Kinesis Data Firehose dégroupe les enregistrements avant de les transmettre versla destination. Si vous configurez votre flux de diffusion pour transformer les données, KinesisData Firehose dégroupe les enregistrements avant de les transmettre à AWS Lambda. Pour ensavoir plus, consultez Développement de producteurs de flux de données Amazon Kinesis àl'aide de la bibliothèque Kinesis Producer Library et Regroupementdans le Guide du développeurAmazon Kinesis Data Streams.

Rubriques• Format de diffusion des données (p. 66)• Fréquence de diffusion des données (p. 67)• Gestion des défaillances de diffusion des données (p. 68)• Format de nom d'objet Amazon S3 (p. 70)• Rotation d'index pour la destination Amazon ES (p. 70)• Livraison entre les comptes AWS et les régions AWS pour les destinations de point de terminaison

HTTP (p. 71)• Enregistrements dupliqués (p. 71)

Format de diffusion des donnéesPour la diffusion de données vers Amazon Simple Storage Service (Amazon S3), Kinesis Data Firehoseconcatène plusieurs enregistrements entrants en fonction de la configuration de la mise en mémoiretampon de votre flux de diffusion. Il diffuse ensuite les enregistrements vers Amazon S3 en tant qu'objetAmazon S3. Vous pouvez ajouter un séparateur d'enregistrement à la fin de chaque enregistrement avantde l'envoyer à Kinesis Data Firehose. Ensuite, vous pouvez diviser un objet Amazon S3 transmis enenregistrements individuels.

Pour la diffusion des données vers Amazon Redshift, la première Kinesis Data Firehose diffuse lesdonnées entrantes vers votre compartiment S3 au format indiqué précédemment. Kinesis Data Firehoseémet ensuite une commande Amazon Redshift COPY pour charger les données à partir de votrecompartiment S3 vers votre cluster Amazon Redshift. Assurez-vous qu'une fois que Kinesis Data Firehosea concaténé plusieurs enregistrements entrants dans un objet Amazon S3, l'objet Amazon S3 peut êtrecopié dans votre cluster Amazon Redshift. Pour plus d'informations, consultez Paramètres du format desdonnées de la commande COPY Amazon Redshift,

Pour la diffusion de données à Amazon ES, Kinesis Data Firehose met en mémoire tampon lesenregistrements entrants en fonction de la configuration de la mise en mémoire tampon de votre flux de

66

Page 72: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Fréquence de diffusion des données

diffusion. Il génère ensuite une demande en bloc Elasticsearch pour indexer plusieurs enregistrementsdans votre cluster Elasticsearch. Veillez à ce que votre enregistrement soit encodé en UTF-8 et aplanien objet JSON sur une seule ligne avant de l'envoyer à Kinesis Data Firehose. En outre, l'optionrest.action.multi.allow_explicit_index de votre cluster Elasticsearch doit être définie sur true(par défaut) afin d'accepter les demandes en bloc avec un index explicite défini par enregistrement. Pourde plus amples informations, veuillez consulter Configuration des options avancées Amazon ES dans leAmazon Elasticsearch Service Guide du développeur.

Pour la remise de données à Splunk, Kinesis Data Firehose concatène les octets que vous envoyez. Sivous voulez des délimiteurs dans vos données, tels qu'un caractère de nouvelle ligne, vous devez lesinsérer par vous-même. Vérifiez que Splunk est configuré pour analyser ces délimiteurs.

Lorsque vous livrez des données à un point de terminaison HTTP appartenant à un fournisseur de servicestiers pris en charge, vous pouvez utiliser le service intégré Amazon Lambda pour créer une fonction pourtransformer le ou les enregistrements entrants au format correspondant au format que l’intégration dufournisseur de services attend. Contactez le fournisseur de services tiers dont le point de terminaison HTTPvous a été choisi pour obtenir plus d’informations sur le format d’enregistrement accepté.

Fréquence de diffusion des donnéesChaque destination Kinesis Data Firehose a sa propre fréquence de diffusion des données.

Amazon S3

La fréquence de diffusion des données à Amazon S3 est déterminée par les valeurs Amazon S3 Buffersize et Buffer interval que vous avez configurées pour votre flux de diffusion. Kinesis Data Firehoseplace les données entrantes en tampon avant de les délivrer à Amazon S3. Vous pouvez configurer lesvaleurs pour Amazon S3 Taille du tampon (1 à–128 Mo) ou Intervalle du tampon (60 à–900 secondes).La première condition qui est satisfaite déclenche la livraison des données à Amazon S3. Lorsquela diffusion des données vers la destination est en retard sur l'écriture des données dans le flux dediffusion, Kinesis Data Firehose augmente la taille du tampon dynamiquement. Il peut ensuite rattraperle retard et veiller à ce que toutes les données soient livrées à la destination.

Amazon Redshift

La fréquence des opérations COPY des données Amazon S3 vers Amazon Redshift est déterminéepar la rapidité à laquelle votre cluster Amazon Redshift peut terminer la commande COPY. S'il y atoujours des données à copier, Kinesis Data Firehose émet une nouvelle commande COPY dès que lacommande COPY antérieure est terminée avec succès par Amazon Redshift.

Amazon Elasticsearch Service

La fréquence de diffusion des données à Amazon ES est déterminé par les valeurs Buffer sizeet Buffer interval d'Elasticsearch que vous avez configurées pour votre flux de diffusion. KinesisData Firehose place les données entrantes en tampon avant de les délivrer à Amazon ES. Vouspouvez configurer les valeurs pour Buffer size (1–100 Mo) ou Buffer interval (60–900 secondes)d'Elasticsearch, et la condition satisfaite en premier déclenche l'envoi de données vers Amazon ES.

Splunk

Kinesis Data Firehose place les données entrantes en tampon avant de les transmettre à Splunk.La taille du tampon est de 5 Mo et l'intervalle de mise en mémoire tampon est en 60 secondes. Lapremière condition qui est satisfaite déclenche la livraison des données à Splunk. La taille et l'intervallede temps du tampon ne peuvent pas être configurés. Ces valeurs sont optimales.

Destination du point de terminaison HTTP

Kinesis Data Firehose consigne les données entrantes avant de les livrer à la destination de pointde terminaison HTTP spécifiée. Pour les destinations de point de terminaison HTTP, y compris

67

Page 73: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Gestion des défaillances de diffusion des données

Datadog, mongodb et New Reliic, vous pouvez choisir une taille tampon de 1 à 64 mibs et un intervallede tampon (60-900 secondes). La taille de tampon recommandée pour la destination varie d’unfournisseur de services à l’autre. Par exemple, la taille de tampon recommandée pour Datadog estde 4 mibs et la taille de tampon recommandée pour New Reliic est 1 mib. Contactez le fournisseurde services tiers dont vous avez choisi la destination comme destination de données pour plusd’informations sur la taille de tampon recommandée.

Gestion des défaillances de diffusion des donnéesChaque destination Kinesis Data Firehose gère ses défaillances en matière de diffusion de données.

Amazon S3

La diffusion de données à votre compartiment S3 peut échouer pour plusieurs raisons. Par exemple, lecompartiment pourrait ne plus exister, le rôle IAM que Kinesis Data Firehoseassume peut ne pas avoiraccès au compartiment, le réseau peut échouer ou autres événements similaires. Dans ces conditions,Kinesis Data Firehose effectue de nouvelles tentatives pendant 24 heures maximum, jusqu'à ce quela diffusion réussisse. La durée de stockage maximale des données de Kinesis Data Firehose estde 24 heures. En cas de défaillance de leur diffusion pendant plus de 24 heures, vos données sontperdues.

Amazon Redshift

Pour la destination Amazon Redshift, vous pouvez spécifier une période de tentative d'envoi (0–7 200 secondes) lorsque vous créez un flux de diffusion.

La diffusion de données à votre cluster Amazon Redshift peut échouer pour plusieurs raisons. Parexemple, vous pouvez avoir une configuration de cluster incorrecte de votre flux de diffusion, uncluster en maintenance ou une panne de réseau. Dans ces conditions, Kinesis Data Firehose fait denouvelles tentatives pendant la durée spécifiée et ignore ce lot particulier d'objets Amazon S3. Lesinformations concernant les documents ignorés sont transmises à votre compartiment S3 en tant quefichier manifeste dans le dossier errors/ que vous pouvez utiliser pour le renvoi manuel. Pour plusd'informations sur la COPIE manuelle des données avec des fichiers manifestes, consultez Utilisationd'un manifeste pour spécifier les fichiers de données.

Amazon Elasticsearch Service

Pour la destination Amazon ES, vous pouvez spécifier une période de tentative d'envoi (0–7 200 secondes) lorsque vous créez un flux de diffusion.

La diffusion de données à votre cluster Amazon ES peut échouer pour plusieurs raisons. Par exemple,vous pouvez avoir une configuration de cluster Amazon ES incorrecte de votre flux de diffusion, lamaintenance d'un cluster Amazon ES, une panne de réseau ou des événements similaires. Dans cesconditions, Kinesis Data Firehose effectue de nouvelles tentatives pendant la durée spécifiée, puisignore cette demande d'index particulière. Les documents ignorés sont transmis à votre compartimentS3 dans le dossier elasticsearch_failed/ que vous pouvez utiliser pour le renvoi manuel.Chaque document a le format JSON suivant :

{ "attemptsMade": "(number of index requests attempted)", "arrivalTimestamp": "(the time when the document was received by Firehose)", "errorCode": "(http error code returned by Elasticsearch)", "errorMessage": "(error message returned by Elasticsearch)", "attemptEndingTimestamp": "(the time when Firehose stopped attempting index request)", "esDocumentId": "(intended Elasticsearch document ID)", "esIndexName": "(intended Elasticsearch index name)", "esTypeName": "(intended Elasticsearch type name)", "rawData": "(base64-encoded document data)"

68

Page 74: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Gestion des défaillances de diffusion des données

}

Splunk

Lorsque Kinesis Data Firehose envoie des données vers Splunk, il attend un accusé de réceptionde la part de Splunk. Si une erreur se produit ou si l'accusé de réception n'arrive pas avant la fin dudélai imparti pour les accusés de réception, Kinesis Data Firehose démarre le compteur de durée desnouvelles tentatives. Il effectue de nouvelles tentatives jusqu'à ce que la durée des nouvelles tentativesarrive à expiration. Après cela, Kinesis Data Firehose considère qu'il s'agit d'un échec de diffusion desdonnées et sauvegarde les données dans votre compartiment Amazon S3.

Chaque fois que Kinesis Data Firehose envoie des données vers Splunk, qu'il s'agisse de la premièretentative ou d'une nouvelle tentative, il redémarre le compteur du délai d'expiration des accusés deréception. Ensuite, il attend un accusé de réception de la part de Splunk. Même si la durée de nouvelletentative arrive à son terme, Kinesis Data Firehose attend toujours l'accusé de réception jusqu'à cequ'il le reçoive ou que le délai imparti pour les accusés de réception ait été atteint. Si le délai impartipour les accusés de réception arrive à son terme, Kinesis Data Firehose cherche à déterminer s'il restedu temps dans le compteur des nouvelles tentatives. Si c'est le cas, il réitère les tentatives et répète lalogique jusqu'à ce qu'il reçoive un accusé de réception ou qu'il détermine que le délai imparti pour lesnouvelles tentatives est arrivé à son terme.

Le défaut de réception d'un accusé de réception n'est pas le seul type d'erreur de remise de donnéespossible. Pour en savoir plus sur les autres types d'erreurs de remise de données, consultez Erreursde livraison de données Splunk. Les erreurs de remise de données déclenchent la logique de relancesi votre durée des nouvelles tentatives est supérieure à 0.

Voici un exemple d'enregistrement d'erreur.

{ "attemptsMade": 0, "arrivalTimestamp": 1506035354675, "errorCode": "Splunk.AckTimeout", "errorMessage": "Did not receive an acknowledgement from HEC before the HEC acknowledgement timeout expired. Despite the acknowledgement timeout, it's possible the data was indexed successfully in Splunk. Kinesis Firehose backs up in Amazon S3 data for which the acknowledgement timeout expired.", "attemptEndingTimestamp": 13626284715507, "rawData": "MiAyNTE2MjAyNzIyMDkgZW5pLTA1ZjMyMmQ1IDIxOC45Mi4xODguMjE0IDE3Mi4xNi4xLjE2NyAyNTIzMyAxNDMzIDYgMSA0MCAxNTA2MDM0NzM0IDE1MDYwMzQ3OTQgUkVKRUNUIE9LCg==", "EventId": "49577193928114147339600778471082492393164139877200035842.0"}

Destination du point de terminaison HTTP

Quand Kinesis Data Firehose envoie des données à une destination de point de terminaison HTTP,elle attend une réponse de cette destination. Si une erreur survient, ou si la réponse n’arrive pasdans la période d’expiration de la réponse, Kinesis Data Firehose démarre le compteur de durée detentatives. Il effectue de nouvelles tentatives jusqu'à ce que la durée des nouvelles tentatives arrive àexpiration. Après cela, Kinesis Data Firehose considère qu'il s'agit d'un échec de diffusion des donnéeset sauvegarde les données dans votre compartiment Amazon S3.

À chaque fois Kinesis Data Firehose envoie des données à une destination de point de terminaisonHTTP, qu’il s’agisse de la tentative initiale ou d’une nouvelle tentative, redémarre le compteur de délaide réponse. Il attend alors qu’une réponse arrive à partir de la destination du point de terminaisonHTTP. Même si la durée de la nouvelle tentative expire, Kinesis Data Firehose toujours attend laréponse jusqu’à ce qu’elle soit reçue ou que le délai de réponse soit atteint. Si la réponse expire,Kinesis Data Firehose pour déterminer s’il y a temps dans le compteur de tentatives. S’il reste dutemps, il réessaie et répète la logique jusqu’à ce qu’il reçoive une réponse ou détermine que le tempsde relance a expiré.

69

Page 75: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Format de nom d'objet Amazon S3

Le non-respect d’une réponse n’est pas le seul type d’erreur de livraison de données pouvant seproduire. Pour plus d’informations sur les autres types d’erreurs de livraison de données, voir Erreursde livraison des données de point de terminaison HTTP

Voici un exemple d'enregistrement d'erreur.

{ "attemptsMade":5, "arrivalTimestamp":1594265943615, "errorCode":"HttpEndpoint.DestinationException", "errorMessage":"Received the following response from the endpoint destination. {"requestId": "109777ac-8f9b-4082-8e8d-b4f12b5fc17b", "timestamp": 1594266081268, "errorMessage": "Unauthorized"}", "attemptEndingTimestamp":1594266081318, "rawData":"c2FtcGxlIHJhdyBkYXRh", "subsequenceNumber":0, "dataId":"49607357361271740811418664280693044274821622880012337186.0"}

Format de nom d'objet Amazon S3Kinesis Data Firehose ajoute un préfixe de temps UTC au format YYYY/MM/dd/HH avant de d'écrire desobjets dans Amazon S3. Le préfixe crée une hiérarchie logique dans le compartiment, où chaque barreoblique (/) crée un niveau dans la hiérarchie. Vous pouvez modifier cette structure en spécifiant un préfixepersonnalisé. Pour plus d'informations sur la spécification d'un préfixe personnalisé, consultez Préfixespersonnalisés Amazon S3 (p. 99).

Le nom de l'objet Amazon S3 suit le modèle DeliveryStreamName-DeliveryStreamVersion-YYYY-MM-dd-HH-MM-SS-RandomString, où DeliveryStreamVersion commence par 1 et augmente de1 pour chaque modification de configuration du flux de diffusion Kinesis Data Firehose. Vous pouvezmodifier les configurations du flux de diffusion (par exemple, le nom du compartiment S3, les conseils demise en mémoire tampon, la compression et le chiffrement). Pour cela, vous pouvez utiliser la consoleKinesis Data Firehose ou l'opération d'API UpdateDestination.

Rotation d'index pour la destination Amazon ESPour le Amazon ES vous pouvez spécifier une option de rotation d’index basée sur le temps à partir del’une des cinq options suivantes : NoRotation, OneHour, OneDay, OneWeek, ou OneMonth.

Selon l'option de rotation que vous choisissez, Kinesis Data Firehose ajoute une partie de l'horodataged'arrivée UTC au nom de l'index spécifié. Il effectue une rotation de cet horodatage en conséquence.L'exemple suivant montre le nom d'index obtenu dans Amazon ES pour chaque option de rotation d'index,où le nom de l'index spécifié est myindex et l'horodatage d'arrivée est 2016-02-25T13:00:00Z.

RotationPeriod IndexName

NoRotation myindex

OneHour myindex-2016-02-25-13

OneDay myindex-2016-02-25

OneWeek myindex-2016-w08

70

Page 76: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Livraison entre les comptes AWS et les régions AWSpour les destinations de point de terminaison HTTP

RotationPeriod IndexName

OneMonth myindex-2016-02

Livraison entre les comptes AWS et les régionsAWS pour les destinations de point de terminaisonHTTP

Kinesis Data Firehose prend en charge la livraison des données aux destinations de terminaux HTTP surles comptes AWS. Kinesis Data Firehose le flux de livraison et le point de terminaison HTTP que vous avezchoisi car votre destination peut être dans différents comptes AWS.

Kinesis Data Firehose prend également en charge la livraison des données aux destinations de point determinaison HTTP dans les régions AWS. Vous pouvez livrer des données d’un flux de livraison dans unerégion AWS vers un point de terminaison HTTP dans une autre région AWS. Vous pouvez égalementtransmettre des données d’un flux de livraison à une destination de point de terminaison HTTP en dehorsdes régions AWS, par exemple sur votre serveur sur site, en définissant l’URL du point de terminaisonHTTP à la destination souhaitée. Pour ces scénarios, des frais supplémentaires de transfert de donnéessont ajoutés à vos coûts de livraison. Pour plus d’informations, voir Transfert de données dans la page «Prix à la demande ».

Enregistrements dupliquésKinesis Data Firehose utilise la sémantique au moins une fois pour la diffusion des données. Danscertaines circonstances, par exemple lorsque les délais de diffusion des données sont dépassés, lesnouvelles tentatives de diffusion par Kinesis Data Firehose peuvent se traduire par la création de doublons,lorsque la demande initiale de diffusion des données finit par être acceptée. Cela s'applique à tous lestypes de destination qui prennent en charge Kinesis Data Firehose.

71

Page 77: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Surveillance avec les métriques de CloudWatch

Surveillance des Amazon KinesisData Firehose

Vous pouvez surveiller Amazon Kinesis Data Firehose en utilisant les fonctionnalités suivantes :

• Amazon CloudWatch metrics (p. 72)— Kinesis Data Firehose envoie à Amazon CloudWatch desmétriques personnalisées avec la surveillance détaillée de chaque flux de diffusion.

• Amazon CloudWatch Logs (p. 86)— Kinesis Data Firehose envoie à CloudWatch des journauxpersonnalisés avec la surveillance détaillée de chaque flux de diffusion.

• Kinesis Agent (p. 93)— Kinesis Agent publie les métriques CloudWatch personnalisées pour mieuxévaluer si l'agent fonctionne comme prévu.

• API logging and history (p. 94)— Kinesis Data Firehose utilise AWS CloudTrail pour consigner lesappels d'API et stocker les données dans un compartiment Amazon S3 et pour conserver les historiquesdes appels d'API.

Surveillance d'Kinesis Data Firehose à l'aide demétriques CloudWatch

Kinesis Data Firehose s'intègre avec les métriques Amazon CloudWatch, ce qui vous permet de collecter,d'afficher et d'analyser des métriques CloudWatch pour vos Flux de transmission Kinesis Data Firehose.Par exemple, vous pouvez surveiller les métriques IncomingBytes et IncomingRecords pour suivre lesdonnées ingérées dans Kinesis Data Firehose des producteurs de données.

Les métriques que vous configurez pour vos Flux de transmission Kinesis Data Firehose et vos agentssont automatiquement collectées et envoyées à CloudWatch toutes les cinq minutes. Les métriques sontarchivées pendant deux semaines ; après cette période, les données sont supprimées.

Les métriques collectées pour Flux de transmission Kinesis Data Firehose sont gratuites. Pour ensavoir plus sur les métriques relatives à l'agent Kinesis, consultez Surveillance de l'état de l'agentKinesis (p. 93).

Rubriques• Data Delivery CloudWatch metrics (Métriques de remise des données) (p. 73)• Métriques d'ingestion de données (p. 78)• Métriques CloudWatch de niveau API (p. 82)• Data Transformation CloudWatch Metrics (p. 83)• Format Conversion CloudWatch Metrics (p. 84)• Métriques CloudWatch de chiffrement côté serveur (SSE) (p. 84)• Dimensions pour Kinesis Data Firehose (p. 84)• Métriques d'utilisation Kinesis Data Firehose (p. 85)• Accès aux métriques CloudWatch pour Kinesis Data Firehose (p. 85)• Bonnes pratiques avec les alarmes CloudWatch (p. 86)• Surveillance de Kinesis Data Firehose à l'aide d'CloudWatch Logs (p. 86)

72

Page 78: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Data Delivery CloudWatch metrics(Métriques de remise des données)

• Surveillance de l'état de l'agent Kinesis (p. 93)• Journalisation des appels de l'API Kinesis Data Firehose avec AWS CloudTrail (p. 94)

Data Delivery CloudWatch metrics (Métriques deremise des données)L'espace de noms AWS/Firehose inclut les métriques au niveau des services suivantes.Si vous constatez de faibles baisses de moyenne pour BackupToS3.Success,DeliveryToS3.Success, DeliveryToSplunk.Success, DeliveryToElasticsearch.Successou DeliveryToRedshift.Success, cela n'indique pas une perte de données. En cas d'erreur delivraison, Kinesis Data Firehose effectue de nouvelles tentatives de livraison et ne poursuit pas tant queles enregistrements ne sont pas correctement remis à la destination configurée ou au compartiment S3 desauvegarde.

Remise aux Amazon ES

Métrique Description :

DeliveryToElasticsearch.Bytes Nombre d'octets indexés à Amazon ES au cours de la périodespécifiée.

Unités Octets

DeliveryToElasticsearch.DataFreshnessÂge (entre l'accès à Kinesis Data Firehose et maintenant) del'enregistrement le plus ancien dans Kinesis Data Firehose.Tous les enregistrements plus anciens ayant été remis àAmazon ES.

Unités Seconds

DeliveryToElasticsearch.Records Nombre d'enregistrements indexés à Amazon ES au cours dela période spécifiée.

Unités Count

DeliveryToElasticsearch.Success Somme des enregistrements indexés avec succès sur lasomme des enregistrements qui ont été tentés.

DeliveryToS3.Bytes Nombre d'octets remis au Amazon S3 au cours de la périodespécifiée. Kinesis Data Firehose émet cette métriqueuniquement si vous activez la sauvegarde pour l’ensembledes documents.

Unités Count

DeliveryToS3.DataFreshness Âge (entre l'accès à Kinesis Data Firehose et maintenant)de l'enregistrement le plus ancien dans Kinesis DataFirehose. Tout enregistrement plus ancien a été remis aucompartiment S3. Kinesis Data Firehose émet cette métriqueuniquement si vous activez la sauvegarde pour l’ensembledes documents.

Unités Seconds

DeliveryToS3.Records Nombre d'enregistrements remis au Amazon S3 au coursde la période spécifiée. Kinesis Data Firehose émet cette

73

Page 79: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Data Delivery CloudWatch metrics(Métriques de remise des données)

Métrique Description :métrique uniquement si vous activez la sauvegarde pourl’ensemble des documents.

Unités Count

DeliveryToS3.Success Somme des commandes put Amazon S3 réussies sur lasomme de toutes les commandes put Amazon S3. KinesisData Firehose émet toujours cette mesure si la sauvegardeest activée uniquement pour les documents ayant échoué, oupour l’ensemble des documents.

Remise aux Amazon Redshift

Métrique Description :

DeliveryToRedshift.Bytes Nombre d'octets copiés vers Amazon Redshift au cours de lapériode spécifiée.

Unités Count

DeliveryToRedshift.Records Nombre d'enregistrements copiés vers Amazon Redshift aucours de la période spécifiée.

Unités Count

DeliveryToRedshift.Success Somme des commandes COPY Amazon Redshift réussiessur la somme de toutes les commandes COPY AmazonRedshift.

DeliveryToS3.Bytes Nombre d'octets fournis à Amazon S3 au cours de la périodespécifiée.

Unités Octets

DeliveryToS3.DataFreshness Âge (entre l'accès à Kinesis Data Firehose et maintenant) del'enregistrement le plus ancien dans Kinesis Data Firehose.Tous les enregistrements plus anciens ayant été remis aucompartiment S3.

Unités Seconds

DeliveryToS3.Records Nombre d'enregistrements fournis à Amazon S3 au cours dela période spécifiée.

Unités Count

DeliveryToS3.Success Somme des commandes put Amazon S3 réussies sur lasomme de toutes les commandes put Amazon S3.

BackupToS3.Bytes Nombre d'octets transmis à Amazon S3 pour la sauvegardeau cours de la période spécifiée. Kinesis Data Firehose émetcette métrique lorsque la sauvegarde dans Amazon S3 estactivée.

Unités Count

74

Page 80: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Data Delivery CloudWatch metrics(Métriques de remise des données)

Métrique Description :

BackupToS3.DataFreshness Âge (entre l'accès à Kinesis Data Firehose et maintenant)de l'enregistrement le plus ancien dans Kinesis DataFirehose. Tout enregistrement plus ancien a été transmis aucompartiment Amazon S3 pour sauvegarde. Kinesis DataFirehose émet cette métrique lorsque la sauvegarde dansAmazon S3 est activée.

Unités Seconds

BackupToS3.Records Nombre d'enregistrements transmis à Amazon S3 pour lasauvegarde au cours de la période spécifiée. Kinesis DataFirehose émet cette métrique lorsque la sauvegarde dansAmazon S3 est activée.

Unités Count

BackupToS3.Success Somme des commandes put Amazon S3 réussies pour lasauvegarde par rapport à la somme de toutes les commandesput Amazon S3 de sauvegarde. Kinesis Data Firehose émetcette métrique si la sauvegarde dans Amazon S3 est activée.

Remise aux Amazon S3Les métriques du tableau suivant sont liées à la remise aux Amazon S3, date à laquelle il s'agit de ladestination principale du flux de diffusion.

Métrique Description :

DeliveryToS3.Bytes Nombre d'octets fournis à Amazon S3 au cours de la périodespécifiée.

Unités Octets

DeliveryToS3.DataFreshness Âge (entre l'accès à Kinesis Data Firehose et maintenant) del'enregistrement le plus ancien dans Kinesis Data Firehose.Tous les enregistrements plus anciens ayant été remis aucompartiment S3.

Unités Seconds

DeliveryToS3.Records Nombre d'enregistrements fournis à Amazon S3 au cours dela période spécifiée.

Unités Count

DeliveryToS3.Success Somme des commandes put Amazon S3 réussies sur lasomme de toutes les commandes put Amazon S3.

BackupToS3.Bytes Nombre d'octets remis au Amazon S3 pour la sauvegardeau cours de la période spécifiée. Kinesis Data Firehose émetcette métrique si la sauvegarde des données est activée(seulement possible si la transformation des données estégalement activée).

Unités Count

75

Page 81: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Data Delivery CloudWatch metrics(Métriques de remise des données)

Métrique Description :

BackupToS3.DataFreshness Âge (entre l'accès à Kinesis Data Firehose et maintenant)de l'enregistrement le plus ancien dans Kinesis DataFirehose. Tout enregistrement antérieur a été remis aucompartiment Amazon S3 pour la sauvegarde. Kinesis DataFirehose émet cette métrique si la sauvegarde des donnéesest activée (uniquement possible si la transformation desdonnées est également activée).

Unités Seconds

BackupToS3.Records Nombre d'enregistrements remis au Amazon S3 pour lasauvegarde au cours de la période spécifiée. Kinesis DataFirehose émet cette métrique si la sauvegarde des donnéesest activée (seulement possible si la transformation desdonnées est également activée).

Unités Count

BackupToS3.Success Somme des commandes Amazon S3 put réussies pour lasauvegarde par rapport à la somme de toutes les commandesput Amazon S3. Kinesis Data Firehose émet cette métrique sila sauvegarde des données est activée (uniquement possiblesi la transformation des données est également activée).

Remise à Splunk

Métrique Description :

DeliveryToSplunk.Bytes Nombre d'octets fournis à Splunk au cours de la périodespécifiée.

Unités Octets

DeliveryToSplunk.DataAckLatency Durée approximative nécessaire pour recevoir un accuséde réception de la part de Splunk après l'envoi des donnéespar Kinesis Data Firehose. L'augmentation ou la réductionde la tendance de cette métrique est plus utile que la valeurapproximative absolue. L'augmentation de tendance peutindiquer une indexation et des taux d'accusé de réception desindexeurs Splunk plus lents.

Unités Seconds

DeliveryToSplunk.DataFreshness Âge (entre l'accès à Kinesis Data Firehose et maintenant) del'enregistrement le plus ancien dans Kinesis Data Firehose.Tous les enregistrements plus anciens ayant été remis àSplunk.

Unités Seconds

DeliveryToSplunk.Records Nombre d'enregistrements fournis à Splunk au cours de lapériode spécifiée.

Unités Count

76

Page 82: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Data Delivery CloudWatch metrics(Métriques de remise des données)

Métrique Description :

DeliveryToSplunk.Success Somme des enregistrements indexés avec succès sur lasomme des enregistrements qui ont été tentés.

DeliveryToS3.Success Somme des commandes put Amazon S3 réussies sur lasomme de toutes les commandes put Amazon S3. Cettemétrique est émise si la sauvegarde vers Amazon S3 estactivée.

BackupToS3.Bytes Nombre d'octets transmis au Amazon S3 pour la sauvegardeau cours de la période spécifiée. Kinesis Data Firehose émetcette métrique si le flux de diffusion est configuré de façon àsauvegarder tous les documents.

Unités Count

BackupToS3.DataFreshness Âge (entre l'accès à Kinesis Data Firehose et maintenant)de l'enregistrement le plus ancien dans Kinesis DataFirehose. Tout enregistrement antérieur a été envoyé versle compartiment Amazon S3 pour la sauvegarde. KinesisData Firehose émet cette métrique si le flux de diffusion estconfiguré de façon à sauvegarder tous les documents.

Unités Seconds

BackupToS3.Records Nombre d'enregistrements transmis au Amazon S3 pourla sauvegarde au cours de la période spécifiée. KinesisData Firehose émet cette métrique si le flux de diffusion estconfiguré de façon à sauvegarder tous les documents.

Unités Count

BackupToS3.Success Somme des commandes put Amazon S3 réussies pour lasauvegarde par rapport à la somme de toutes les commandesput Amazon S3. Kinesis Data Firehose émet cette métrique sile flux de diffusion est configuré de façon à sauvegarder tousles documents.

Livraison aux terminaux HTTP

Métrique Description :

DeliveryToHttpEndpoint.Bytes Nombre d’octets livrés avec succès au point de terminaisonHTTP.

Unités Octets

DeliveryToHttpEndpoint.Records Le nombre d’enregistrements livrés avec succès au point determinaison HTTP.

Unités Comptes

DeliveryToHttpEndpoint.DataFreshnessÂge de l’enregistrement le plus ancien dans le tuyaud’incendie de Kinesis Data.

Unités Seconds

77

Page 83: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Métriques d'ingestion de données

Métrique Description :

DeliveryToHttpEndpoint.Success La somme de toutes les demandes de livraison de donnéesréussies au point de terminaison HTTP

Unités Count

DeliveryToHttpEndpoint.ProcessedBytesNombre d’octets traités, y compris les tentatives.

DeliveryToHttpEndpoint.ProcessedRecordsNombre de tentatives d’enregistrement, y compris lestentatives.

Métriques d'ingestion de donnéesIngestion de données via Kinesis Data Streams

Métrique Description :

DataReadFromKinesisStream.Bytes Lorsque la source de données est un flux de données Kinesis,cette métrique indique le nombre d'octets lus à partir de ceflux de données. Ce nombre inclut les relectures dues à desbasculements.

Unités Octets

DataReadFromKinesisStream.RecordsLorsque la source de données est un flux de données Kinesis,cette métrique indique le nombre d'enregistrements lus àpartir de ce flux de données. Ce nombre inclut les relecturesdues à des basculements.

Unités Count

ThrottledDescribeStream Nombre total de fois où l'opération DescribeStream estlimitée lorsque la source de données est un flux de donnéesKinesis.

Unités Count

ThrottledGetRecords Nombre total de fois où l'opération GetRecords est limitéelorsque la source de données est un flux de données Kinesis.

Unités Count

ThrottledGetShardIterator Nombre total de fois où l'opération GetShardIterator estlimitée lorsque la source de données est un flux de donnéesKinesis.

Unités Count

Ingestion de données via Direct PUT

Métrique Description :

BackupToS3.Bytes Nombre d'octets envoyés vers Amazon S3 pour lasauvegarde au cours de la période spécifiée. Kinesis Data

78

Page 84: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Métriques d'ingestion de données

Métrique Description :Firehose émet cette métrique lorsque la transformation desdonnées est activée pour les destinations Amazon S3 ouAmazon Redshift.

Unités Octets

BackupToS3.DataFreshness Âge (entre l'accès à Kinesis Data Firehose et maintenant)de l'enregistrement le plus ancien dans Kinesis DataFirehose. Tout enregistrement antérieur a été envoyé vers lecompartiment Amazon S3 pour la sauvegarde. Kinesis DataFirehose émet cette métrique lorsque la transformation desdonnées est activée pour les destinations Amazon S3 ouAmazon Redshift.

Unités Seconds

BackupToS3.Records Nombre d'enregistrements envoyés vers Amazon S3 pour lasauvegarde au cours de la période spécifiée. Kinesis DataFirehose émet cette métrique lorsque la transformation desdonnées est activée pour les destinations Amazon S3 ouAmazon Redshift.

Unités Count

BackupToS3.Success Somme des commandes Amazon S3 put réussies pour lasauvegarde par rapport à la somme de toutes les commandesAmazon S3 put. Kinesis Data Firehose émet cette métriquelorsque la transformation des données est activée pour lesdestinations Amazon S3 ou Amazon Redshift.

BytesPerSecondLimit Nombre maximal actuel d'octets par seconde qu'un fluxde remise peut ingérer avant la limitation. Pour demanderune augmentation de cette limite, accédez au Centre desupport AWS et choisissez Créer un cas, puis choisissezAugmentation de la limite de service.

DataReadFromKinesisStream.Bytes Lorsque la source de données est un flux de données Kinesis,cette métrique indique le nombre d'octets lus à partir de ceflux de données. Ce nombre inclut les relectures dues à desbasculements.

Unités Octets

DataReadFromKinesisStream.RecordsLorsque la source de données est un flux de données Kinesis,cette métrique indique le nombre d'enregistrements lus àpartir de ce flux de données. Ce nombre inclut les relecturesdues à des basculements.

Unités Count

DeliveryToElasticsearch.Bytes Nombre d'octets indexés à Amazon ES au cours de la périodespécifiée.

Unités Octets

79

Page 85: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Métriques d'ingestion de données

Métrique Description :

DeliveryToElasticsearch.DataFreshnessÂge (entre l'accès à Kinesis Data Firehose et maintenant) del'enregistrement le plus ancien dans Kinesis Data Firehose.Tous les enregistrements plus anciens ayant été remis àAmazon ES.

Unités Seconds

DeliveryToElasticsearch.Records Nombre d'enregistrements indexés à Amazon ES au cours dela période spécifiée.

Unités Count

DeliveryToElasticsearch.Success Somme des enregistrements indexés avec succès sur lasomme des enregistrements qui ont été tentés.

DeliveryToRedshift.Bytes Nombre d'octets copiés vers Amazon Redshift au cours de lapériode spécifiée.

Unités Octets

DeliveryToRedshift.Records Nombre d'enregistrements copiés vers Amazon Redshift aucours de la période spécifiée.

Unités Count

DeliveryToRedshift.Success Somme des commandes COPY Amazon Redshift réussiessur la somme de toutes les commandes COPY AmazonRedshift.

DeliveryToS3.Bytes Nombre d'octets fournis à Amazon S3 au cours de la périodespécifiée.

Unités Octets

DeliveryToS3.DataFreshness Âge (entre l'accès à Kinesis Data Firehose et maintenant) del'enregistrement le plus ancien dans Kinesis Data Firehose.Tous les enregistrements plus anciens ayant été remis aucompartiment S3.

Unités Seconds

DeliveryToS3.Records Nombre d'enregistrements fournis à Amazon S3 au cours dela période spécifiée.

Unités Count

DeliveryToS3.Success Somme des commandes put Amazon S3 réussies sur lasomme de toutes les commandes put Amazon S3.

DeliveryToSplunk.Bytes Nombre d'octets fournis à Splunk au cours de la périodespécifiée.

Unités Octets

80

Page 86: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Métriques d'ingestion de données

Métrique Description :

DeliveryToSplunk.DataAckLatency Durée approximative nécessaire pour recevoir un accuséde réception de la part de Splunk après l'envoi des donnéespar Kinesis Data Firehose. L'augmentation ou la réductionde la tendance de cette métrique est plus utile que la valeurapproximative absolue. L'augmentation de tendance peutindiquer une indexation et des taux d'accusé de réception desindexeurs Splunk plus lents.

Unités Seconds

DeliveryToSplunk.DataFreshness Âge (entre l'accès à Kinesis Data Firehose et maintenant) del'enregistrement le plus ancien dans Kinesis Data Firehose.Tous les enregistrements plus anciens ayant été remis àSplunk.

Unités Seconds

DeliveryToSplunk.Records Nombre d'enregistrements fournis à Splunk au cours de lapériode spécifiée.

Unités Count

DeliveryToSplunk.Success Somme des enregistrements indexés avec succès sur lasomme des enregistrements qui ont été tentés.

IncomingBytes Nombre d'octets ingérés avec succès dans le flux de diffusionau cours de la période spécifiée après la limitation.

Unités Octets

IncomingPutRequests Nombre de requêtes PutRecord et PutRecordBatch réussiessur la période spécifiée après la limitation.

Unités Count

IncomingRecords Nombre d'enregistrements ingérés avec succès dans leflux de diffusion au cours de la période spécifiée après lalimitation.

Unités Count

KinesisMillisBehindLatest Lorsque la source de données est un flux de données Kinesis,cette métrique indique le nombre de millisecondes séparantle dernier enregistrement lu de l'enregistrement le plus récentdans le flux de données Kinesis.

Unités Milliseconde

RecordsPerSecondLimit Nombre maximal actuel d'enregistrements par seconde qu'unflux de remise peut ingérer avant la limitation.

Unités Count

ThrottledRecords Nombre d'enregistrements qui ont été limités parce quel'ingestion de données dépassait l'une des limites du flux dediffusion.

Unités Count

81

Page 87: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Métriques CloudWatch de niveau API

Métriques CloudWatch de niveau APIL'espace de noms AWS/Firehose inclut les métriques suivantes au niveau des API.

Métrique Description :

DescribeDeliveryStream.Latency Délai nécessaire par opération DescribeDeliveryStream,mesurée pendant la période spécifiée.

Unités Millisecondes

DescribeDeliveryStream.Requests Nombre total de demandes DescribeDeliveryStream.

Unités Count

ListDeliveryStreams.Latency Délai nécessaire par opération ListDeliveryStream,mesurée pendant la période spécifiée.

Unités Millisecondes

ListDeliveryStreams.Requests Nombre total de demandes ListFirehose.

Unités Count

PutRecord.Bytes Nombre d'octets dédiés au flux de diffusion Kinesis DataFirehose à l'aide de PutRecord au cours de la périodespécifiée.

Unités Octets

PutRecord.Latency Délai nécessaire par opération PutRecord, mesurée pendantla période spécifiée.

Unités Millisecondes

PutRecord.Requests Nombre total de demandes PutRecord, correspondantau nombre total d'enregistrements issus des opérationsPutRecord.

Unités Count

PutRecordBatch.Bytes Nombre d'octets dédiés au flux de diffusion Kinesis DataFirehose à l'aide de PutRecordBatch au cours de la périodespécifiée.

Unités Octets

PutRecordBatch.Latency Délai nécessaire par opération PutRecordBatch, mesuréependant la période spécifiée.

Unités Millisecondes

PutRecordBatch.Records Nombre total d'enregistrements issus des opérationsPutRecordBatch.

Unités Count

PutRecordBatch.Requests Nombre total de demandes PutRecordBatch.

Unités Count

82

Page 88: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Data Transformation CloudWatch Metrics

Métrique Description :

PutRequestsPerSecondLimit Nombre maximal de requêtes put par seconde qu'un flux deremise peut gérer avant la limitation. Ce numéro inclut lesrequêtes PutRecord et PutRecordBatch.

Unités Count

ThrottledDescribeStream Nombre total de fois où l'opération DescribeStream estlimitée lorsque la source de données est un flux de donnéesKinesis.

Unités Count

ThrottledGetRecords Nombre total de fois où l'opération GetRecords est limitéelorsque la source de données est un flux de données Kinesis.

Unités Count

ThrottledGetShardIterator Nombre total de fois où l'opération GetShardIterator estlimitée lorsque la source de données est un flux de donnéesKinesis.

Unités Count

UpdateDeliveryStream.Latency Délai nécessaire par opération UpdateDeliveryStream,mesurée pendant la période spécifiée.

Unités Millisecondes

UpdateDeliveryStream.Requests Nombre total de demandes UpdateDeliveryStream.

Unités Count

Data Transformation CloudWatch MetricsIf data transformation with Lambda is enabled, the AWS/Firehose namespace includes the followingmetrics.

Metric Description

ExecuteProcessing.DurationThe time it takes for each Lambda function invocation performed by KinesisData Firehose.

Units: Milliseconds

ExecuteProcessing.SuccessThe sum of the successful Lambda function invocations over the sum of thetotal Lambda function invocations.

SucceedProcessing.RecordsThe number of successfully processed records over the specified time period.

Units: Count

SucceedProcessing.BytesThe number of successfully processed bytes over the specified time period.

Units: Bytes

83

Page 89: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Format Conversion CloudWatch Metrics

Format Conversion CloudWatch MetricsIf format conversion is enabled, the AWS/Firehose namespace includes the following metrics.

Metric Description

SucceedConversion.RecordsThe number of successfully converted records.

Units: Count

SucceedConversion.BytesThe size of the successfully converted records.

Units: Bytes

FailedConversion.RecordsThe number of records that could not be converted.

Units: Count

FailedConversion.BytesThe size of the records that could not be converted.

Units: Bytes

Métriques CloudWatch de chiffrement côté serveur(SSE)L'espace de noms AWS/Firehose inclut les métriques suivantes liées à SSE.

Métrique Description :

KMSKeyAccessDenied Nombre de fois où le service rencontre unKMSAccessDeniedException pour le flux de diffusion.

Unités Count

KMSKeyDisabled Nombre de fois où le service rencontre unKMSDisabledException pour le flux de diffusion.

Unités Count

KMSKeyInvalidState Nombre de fois où le service rencontre unKMSInvalidStateException pour le flux de diffusion.

Unités Count

KMSKeyNotFound Nombre de fois où le service rencontre unKMSNotFoundException pour le flux de diffusion.

Unités Count

Dimensions pour Kinesis Data FirehosePour filtrer les métriques par flux de diffusion, utilisez la dimension DeliveryStreamName.

84

Page 90: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Métriques d'utilisation Kinesis Data Firehose

Métriques d'utilisation Kinesis Data FirehoseVous pouvez utiliser les métriques d'utilisation CloudWatch pour fournir une visibilité sur l'utilisation desressources de votre compte. Utilisez ces métriques pour visualiser votre utilisation actuelle du service surdes graphiques et des tableaux de bord CloudWatch.

Les métriques d'utilisation des quotas de service se trouvent dans l'espace de noms AWS/Utilisation et sontcollectées chaque minute.

Actuellement, le seul nom de mesure dans ce namespace qui CloudWatch publie ResourceCount. Cettemesure est publiée avec les dimensions Service, Class, Type, et Resource.

Métrique Description :

ResourceCount Nombre des ressources spécifiées exécutées dans votrecompte. Les ressources sont définies par les dimensionsassociées à la métrique.

La statistique la plus utile pour cette métrique est MAXIMUM,qui représente le nombre maximal de ressources utiliséespendant la période d'une minute.

Les dimensions suivantes permettent d'affiner les métriques d'utilisation publiées par Kinesis DataFirehose.

Dimension : Description :

Service Nom du service AWS contenant la ressource. Pour lesmétriques d'utilisation Kinesis Data Firehose, la valeur decette dimension est Firehose.

Class Classe de ressource suivie. Kinesis Data Firehose Lesmesures d’utilisation API utilisent cette dimension avec unevaleur de None.

Type Type de ressource suivi. Actuellement, lorsque la dimensionService est Firehose, la seule valeur valide pour Type estResource.

Resource Nom de la ressource AWS. Actuellement, lorsque ladimension Service est Firehose, la seule valeur valide pourResource est DeliveryStreams.

Accès aux métriques CloudWatch pour Kinesis DataFirehoseVous pouvez surveiller les métriques pour Kinesis Data Firehose à l'aide de la console CloudWatch, de laligne de commande CloudWatch ou de l'API. Les procédures suivantes vous montrent comment accéderaux métriques à l'aide de ces différentes méthodes.

Pour accéder aux métriques grâce à la console CloudWatch

1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.

85

Page 91: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Bonnes pratiques avec les alarmes CloudWatch

2. Sélectionnez une région dans la barre de navigation.3. Dans le volet de navigation, sélectionnez Metrics (Métriques).4. Choisissez l'espace de nom Firehose.5. Choisissez Métriques de flux de livraison ou Métriques Firehose.6. Sélectionnez une métrique à ajouter au graphique.

Pour accéder aux métriques grâce à AWS CLI

Utilisez les commandes list-metrics et get-metric-statistics.

aws cloudwatch list-metrics --namespace "AWS/Firehose"

aws cloudwatch get-metric-statistics --namespace "AWS/Firehose" \--metric-name DescribeDeliveryStream.Latency --statistics Average --period 3600 \--start-time 2017-06-01T00:00:00Z --end-time 2017-06-30T00:00:00Z

Bonnes pratiques avec les alarmes CloudWatchAjouter des alarmes CloudWatch pour les cas où les métriques suivantes dépassent la limite de mise enmémoire tampon (maximum de 15 minutes) :

• DeliveryToS3.DataFreshness

• DeliveryToSplunk.DataFreshness

• DeliveryToElasticsearch.DataFreshness

Créez également des alarmes en fonction des expressions mathématiques de mesure suivantes.

• IncomingBytes (Sum per 5 Minutes) / 300 approche un pourcentage deBytesPerSecondLimit.

• IncomingRecords (Sum per 5 Minutes) / 300 approche un pourcentage deRecordsPerSecondLimit.

• IncomingPutRequests (Sum per 5 Minutes) / 300 approche un pourcentage dePutRequestsPerSecondLimit.

Une autre métrique pour laquelle nous recommandons une alarme est ThrottledRecords.

Pour plus d'informations sur la résolution des problèmes lorsque les alarmes passent à l’état ALARM,consultez Dépannage (p. 117).

Surveillance de Kinesis Data Firehose à l'aided'CloudWatch LogsKinesis Data Firehose s'intègre aux Amazon CloudWatch Logs afin que vous puissiez afficher les journauxd'erreurs spécifiques en cas d'échec de l'appel Lambda pour la transformation ou la diffusion de données.Vous pouvez activer la journalisation des erreurs Kinesis Data Firehose lorsque vous créez votre flux dediffusion.

Si vous activez la journalisation des erreurs Kinesis Data Firehose dans la console Kinesis Data Firehose,un groupe de journaux et des flux de journaux correspondants sont créés pour le flux de diffusion en votrenom. Le format du groupe de journaux est /aws/kinesisfirehose/delivery-stream-name, oùdelivery-stream-name est le nom du flux de diffusion correspondant. Le nom du flux de journaux est

86

Page 92: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Surveillance avec CloudWatch Logs

S3Delivery, RedshiftDelivery, ou ElasticsearchDelivery, en fonction de la destination de la diffusion. Leserreurs d'appel Lambda pour la transformation de données sont également journalisées dans le flux dejournaux utilisé pour les erreurs de livraison de données.

Par exemple, si vous créez un flux de diffusion « MyStream » avec Amazon Redshift comme destination etque vous activez la journalisation des erreurs Kinesis Data Firehose, les éléments suivants sont créés envotre nom : un groupe de journaux nommé aws/kinesisfirehose/MyStream et deux flux de journauxnommés S3Delivery et RedshiftDelivery. Dans cet exemple, le flux de journaux S3Delivery est utilisé pourla journalisation des erreurs liées aux échecs de diffusion dans le compartiment S3 intermédiaire. Le flux dejournaux RedshiftDelivery est utilisé pour la journalisation des erreurs liées aux échecs d'appels Lambda etde diffusion dans votre cluster Amazon Redshift.

Vous pouvez activer la journalisation des erreurs Kinesis Data Firehose via AWS CLI, l'API ou à AWSCloudFormation l'aide de la configuration CloudWatchLoggingOptions. Pour ce faire, créez un groupede journaux et un flux de journaux à l'avance. Nous vous recommandons de réserver ce groupe et ceflux de journaux exclusivement pour la journalisation des erreurs Kinesis Data Firehose. Assurez-vouségalement que la stratégie IAM associée dispose de l'autorisation "logs:putLogEvents". Pour plusd'informations, consultez Contrôle de l'accès avec Amazon Kinesis Data Firehose (p. 38),

Notez que Kinesis Data Firehose ne garantit pas la diffusion de tous les journaux d'erreurs aux CloudWatchLogs. Dans le cas où le taux d’échec de diffusion est élevé, Kinesis Data Firehose sonde les journauxd'erreurs avant de les envoyer aux CloudWatch Logs.

Il y a une charge nominale pour les journaux d'erreurs envoyés aux CloudWatch Logs. Pour plusd'informations, consultez Tarification Amazon CloudWatch,

Table des matières :• Erreurs de diffusion de données (p. 87)• Erreurs d'appel Lambda (p. 91)• Accès aux journaux CloudWatch pour Kinesis Data Firehose (p. 93)

Erreurs de diffusion de donnéesVoici une liste des codes et des messages d'erreur de diffusion de données pour chaque destinationKinesis Data Firehose. Chaque message d'erreur décrit également l'action appropriée à entreprendre afinde résoudre le problème.

Erreurs• Erreurs de diffusion de données Amazon S3 (p. 87)• Erreurs de diffusion de données Amazon Redshift (p. 88)• Erreurs de livraison de données Splunk (p. 90)• Erreurs de livraison des données de point de terminaison HTTPS (p. 91)• Erreurs de diffusion de données Amazon Elasticsearch Service (p. 91)

Erreurs de diffusion de données Amazon S3

Kinesis Data Firehose peut envoyer les erreurs liées à Amazon S3 suivantes aux CloudWatch Logs.

Code d'erreur Message et informations sur les erreurs

S3.KMS.NotFoundException« La clé AWS KMS fournie est introuvable. Si vous utilisez ce que vouspensez être une clé AWS KMS valable avec le rôle correct, vérifiez s'il y a unproblème avec le compte auquel la clé AWS KMS est attachée. »

87

Page 93: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Surveillance avec CloudWatch Logs

Code d'erreur Message et informations sur les erreurs

S3.KMS.RequestLimitExceeded« La limite par seconde appliquée aux demandes KMS a été dépassée lors dela tentative de chiffrement d'objets S3. Augmentez-la. »

Pour plus d'informations, consultez Limites dans le AWS Key ManagementService Developer Guide.

S3.AccessDenied « Accès refusé. Vérifiez que la stratégie d'approbation pour le rôle IAM fournipermet à Kinesis Data Firehose d'assumer le rôle et que la stratégie d'accèspermet d'accéder au compartiment S3. »

S3.AccountProblem « Il y a un problème avec votre compte AWS qui empêche l'opération de seterminer avec succès. Contactez AWS Support.

S3.AllAccessDisabled« L'accès au compte fourni a été désactivé. Contactez AWS Support.

S3.InvalidPayer « L'accès au compte fourni a été désactivé. Contactez AWS Support.

S3.NotSignedUp « Le compte n'est pas inscrit à Amazon S3. S'inscrire au compte ou utiliser unautre compte. »

S3.NoSuchBucket « Le compartiment spécifié n'existe pas. Créez le compartiment ou utilisez unautre compartiment existant. »

S3.MethodNotAllowed « La méthode spécifiée n'est pas autorisée sur cette ressource. Modifiezla stratégie du compartiment pour autoriser les opérations Amazon S3correctes. »

InternalError « Une erreur interne s'est produite lors de la tentative de diffusion desdonnées. Une nouvelle tentative de diffusion va avoir lieu ; si l'erreur persiste,elle sera alors reportée à AWS pour être résolue. »

Erreurs de diffusion de données Amazon Redshift

Kinesis Data Firehose peut envoyer les erreurs liées à Amazon Redshift suivantes aux CloudWatch Logs.

Code d'erreur Message et informations sur les erreurs

Redshift.TableNotFound« La table dans laquelle charger les données est introuvable. Vérifiez que latable spécifiée existe. »

La table de destination de Amazon Redshift dans laquelle les données doiventêtre copiées à partir de S3 n'a pas été trouvée. Notez que Kinesis DataFirehose ne crée pas de table Amazon Redshift si elle n'existe pas.

Redshift.SyntaxError« La commande COPY contient une erreur de syntaxe. Relancez lacommande. »

Redshift.AuthenticationFailed« Le nom d'utilisateur et le mot de passe d'authentification fournis ont échoué.Fournissez un nom d'utilisateur et un mot de passe valides. »

Redshift.AccessDenied« Accès refusé. Vérifiez que la stratégie d'approbation pour le rôle IAM fournipermet à Kinesis Data Firehose d'assumer le rôle. »

Redshift.S3BucketAccessDenied« La commande COPY n'a pas pu accéder au compartiment S3. Vérifiez quela stratégie d'accès pour le rôle IAM fourni permet d'accéder au compartimentS3. »

88

Page 94: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Surveillance avec CloudWatch Logs

Code d'erreur Message et informations sur les erreurs

Redshift.DataLoadFailed« Échec de chargement des données dans la table. Vérifiez le contenu de latable système STL_LOAD_ERRORS pour plus de détails. »

Redshift.ColumnNotFound« Une colonne de la commande COPY n'existe pas dans le tableau. Spécifiezun nom de colonne valide. »

Redshift.DatabaseNotFound« La base de données spécifiée dans la configuration de destination AmazonRedshift ou l'URL JDBC est introuvable. Spécifiez un nom de base dedonnées valide. »

Redshift.IncorrectCopyOptions« Des options de la commande COPY redondantes ou contradictoires ontété fournies. Certaines options ne sont pas compatibles dans certainescombinaisons. Vérifiez la référence de la commande COPY pour plusd'informations. »

Pour en savoir plus, consultez Commande COPY Amazon Redshift dans larubrique Amazon Redshift Database Developer Guide.

Redshift.MissingColumn« Il y a une colonne définie dans le schéma de table comme NOT NULL sansvaleur DEFAULT et pas incluse dans la liste de colonnes. Vous devez exclurecette colonne, vous assurer que les données chargées offre toujours unevaleur pour cette colonne ou ajouter une valeur par défaut pour le schémaAmazon Redshift de cette table ».

Redshift.ConnectionFailed« Échec de connexion au cluster Amazon Redshift spécifié. Assurez-vous queles paramètres de sécurité autorisent les connexions Kinesis Data Firehose,que le cluster ou la base de données spécifiée dans la configuration dedestination Amazon Redshift ou l'URL JDBC est correct, et que le cluster estdisponible. »

Redshift.ColumnMismatch« Le nombre de jsonpaths dans la commande COPY et le nombre decolonnes dans la table de destination doivent correspondre. Relancez lacommande. »

Redshift.IncorrectOrMissingRegion« Amazon Redshift a tenté d'utiliser le point de terminaison de région incorrectpour accéder au compartiment S3. Spécifiez une valeur de région correctedans les options de commande COPY ou assurez-vous que le compartimentS3 est dans la même région que la base de données Amazon Redshift. »

Redshift.IncorrectJsonPathsFile« Le fichier jsonpaths fourni n'est pas dans un format JSON pris en charge.Relancez la commande. »

Redshift.MissingS3File« Un ou plusieurs fichiers S3 requis par Amazon Redshift ont été supprimésdu compartiment S3. Vérifiez les stratégies de compartiment S3 pour retirertoute suppression automatique des fichiers S3. »

Redshift.InsufficientPrivilege« L'utilisateur ne dispose pas des autorisations pour charger les donnéesdans la table. Vérifiez les autorisations d'utilisateur Amazon Redshift pour leprivilège INSERT. »

Redshift.ReadOnlyCluster« La requête ne peut pas être exécutée, car le système est en mode deredimensionnement. Réessayez la requête plus tard. »

Redshift.DiskFull « Les données n'ont pas pu être chargées, car le disque est plein. Augmentezla capacité du cluster Amazon Redshift ou supprimez des données inutiliséespour libérer de l'espace sur le disque. »

89

Page 95: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Surveillance avec CloudWatch Logs

Code d'erreur Message et informations sur les erreurs

InternalError « Une erreur interne s'est produite lors de la tentative de diffusion desdonnées. Une nouvelle tentative de diffusion va avoir lieu ; si l'erreur persiste,elle sera alors reportée à AWS pour être résolue. »

Erreurs de livraison de données SplunkKinesis Data Firehose peut transmettre les erreurs suivantes liées à Splunk aux CloudWatch Logs.

Code d'erreur Message et informations sur les erreurs

Splunk.ProxyWithoutStickySessions« Si vous avez un proxy (ELB ou autre) entre Kinesis Data Firehose et lenœud HEC, vous devez activer les sessions permanentes pour prendre encharge les messages ACK HEC. »

Splunk.DisabledToken« Le jeton HEC est désactivé. Activez le jeton pour autoriser la livraison dedonnées à Splunk. »

Splunk.InvalidToken « Le jeton HEC n'est pas valide. Mettez à jour Kinesis Data Firehose à l'aided'un jeton HEC valide. »

Splunk.InvalidDataFormat« Les données ne sont pas formatées correctement. Pour savoir commentformater correctement les données pour les points de terminaison Raw oud'événement HEC, reportez-vous à la section Données d'événement Splunk. »

Splunk.InvalidIndex « Le jeton ou l'entrée HEC est configuré avec un index non valide. Vérifiez laconfiguration de l'index et réessayez. »

Splunk.ServerError « La livraison de données à Splunk a échoué en raison d'une erreur deserveur provenant du nœud HEC. Kinesis Data Firehose tentera à nouveaud'envoyer les données si la durée de la nouvelle tentative dans votre KinesisData Firehose est supérieure à 0. Si toutes les tentatives échouent, KinesisData Firehose sauvegarde les données sur Amazon S3. »

Splunk.DisabledAck « L'accusé de réception indexeur est désactivé pour le jeton HEC. Activezl'accusé de réception indexeur et réessayez. Pour plus d'informations,consultez la section Activer l'accusé de réception indexeur. »

Splunk.AckTimeout « Vous n'avez pas reçu d'accusé de réception HEC avant que le délai desaccusés de réception HEC arrive à expiration. Malgré l'expiration de l'accuséde réception, il est possible que les données aient été indexées avec succèsdans Splunk. Kinesis Data Firehose sauvegarde dans Amazon S3 lesdonnées pour lesquelles le délai des accusés de réception a expiré. »

Splunk.MaxRetriesFailed« Échec de livraison des données à Splunk ou absence d'accusé deréception. Vérifiez l'état de votre HEC et réessayez. »

Splunk.ConnectionTimeout« Expiration de la connexion à Splunk. Il s'agit peut être d'une erreurtemporaire et la requête sera renvoyée. Kinesis Data Firehose sauvegarde lesdonnées dans Amazon S3, si toutes les tentatives échouent. »

Splunk.InvalidEndpoint« Impossible de se connecter au point de terminaison HEC. Assurez-vous quel'URL du point de terminaison HEC est valide et accessible depuis KinesisData Firehose. »

Splunk.ConnectionClosed« Impossible d'envoyer des données à Splunk en raison d'un échec deconnexion. Il s'agit peut être d'une erreur temporaire. Augmentez la durée

90

Page 96: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Surveillance avec CloudWatch Logs

Code d'erreur Message et informations sur les erreursrelative aux nouvelles tentatives dans votre configuration Kinesis DataFirehose pour éviter de tels échecs momentanés. »

Splunk.SSLUnverified« Impossible de se connecter au point de terminaison HEC. L'hôte necorrespond pas au certificat fourni par l'homologue. Vérifiez que le certificat etl'hôte sont valides . »

Splunk.SSLHandshake « Impossible de se connecter au point de terminaison HEC. Vérifiez que lecertificat et l'hôte sont valides . »

Erreurs de livraison des données de point de terminaison HTTPS

Kinesis Data Firehose peut envoyer les erreurs HTTP Endpoint suivantes à CloudWatch Logs. Si aucunede ces erreurs ne correspond au problème que vous rencontrez, l’erreur par défaut est ce qui suit : « Uneerreur interne s'est produite lors de la tentative de diffusion des données. Une nouvelle tentative dediffusion va avoir lieu ; si l'erreur persiste, elle sera alors reportée à AWS pour être résolue. »

Code d'erreur Message et informations sur les erreurs

HttpEndpoint.RequestTimeoutLa livraison a expiré avant qu’une réponse n’ait été reçue et qu’elle soitrenvoyée. Si cette erreur persiste, contactez l’équipe de maintenance AWSFirehose.

HttpEndpoint.ResponseTooLarge« La réponse reçue du point de terminaison est trop grande. Contactez lepropriétaire du point de terminaison pour résoudre ce problème. »

HttpEndpoint.InvalidResponseFromDestination« La réponse reçue du point de terminaison spécifié n’est pas valide.Contactez le propriétaire du point de terminaison pour résoudre le problème. »

HttpEndpoint.DestinationException"La réponse suivante a été reçue de la destination du terminal."

HttpEndpoint.ConnectionFailed"Impossible de se connecter au point terminal de destination. Contactez lepropriétaire du point de terminaison pour résoudre ce problème. »

HttpEndpoint.ConnectionReset"Impossible de maintenir la connexion avec le terminal. Contactez lepropriétaire du point de terminaison pour résoudre ce problème. »

HttpEndpoint.ConnectionReset"Difficulté à maintenir la connexion avec le terminal. Veuillez contacter lepropriétaire du terminal. »

Erreurs de diffusion de données Amazon Elasticsearch Service

Pour la destination Amazon ES, Kinesis Data Firehose transmet les erreurs à CloudWatch Logs quandelles sont retournées par Elasticsearch.

Erreurs d'appel LambdaKinesis Data Firehose peut envoyer les erreurs d'appel Lambda suivantes aux CloudWatch Logs.

Code d'erreur Message et informations sur les erreurs

Lambda.AssumeRoleAccessDenied« Accès refusé. Vérifiez que la stratégie d'approbation pour le rôle IAM fournipermet à Kinesis Data Firehose d'assumer le rôle. »

91

Page 97: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Surveillance avec CloudWatch Logs

Code d'erreur Message et informations sur les erreurs

Lambda.InvokeAccessDenied« Accès refusé. Vérifiez que la stratégie d'accès permet d'accéder à lafonction Lambda. »

Lambda.JsonProcessingException« Une erreur s'est produite lors de l'analyse des enregistrements retournéspar la fonction Lambda. Vérifiez que les enregistrements retournés suivent lemodèle d'état requis par Kinesis Data Firehose. »

Pour plus d'informations, consultez Transformation de données et modèled'état (p. 58),

Lambda.InvokeLimitExceeded« La limite appliquées aux exécutions simultanées Lambda est dépassée.Augmentez-la. »

Pour en savoir plus, consultez les Limites Lambda AWS dans AWS LambdaDeveloper Guide.

Lambda.DuplicatedRecordId« Plusieurs enregistrements ont été retournés avec le même IDd'enregistrement. Vérifiez que la fonction Lambda retourne des IDd'enregistrements uniques pour chaque enregistrement. »

Pour plus d'informations, consultez Transformation de données et modèled'état (p. 58),

Lambda.MissingRecordId« Un ou plusieurs ID d'enregistrements n'ont pas été retournés. Vérifiez que lafonction Lambda retourne tous les ID d'enregistrements reçus. »

Pour plus d'informations, consultez Transformation de données et modèled'état (p. 58),

Lambda.ResourceNotFound« La fonction Lambda spécifiée n'existe pas. Utilisez une autre fonctionexistante. »

Lambda.InvalidSubnetIDException« L'ID de sous-réseau spécifiée dans la configuration VPC de la fonctionLambda n'est pas valide. Vérifiez que l'ID de sous-réseau est valide. »

Lambda.InvalidSecurityGroupIDException« L'ID de groupe de sécurité spécifié dans la configuration VPC de la fonctionLambda n'est pas valide. Vérifiez que l'ID de groupe de sécurité est valide. »

Lambda.SubnetIPAddressLimitReachedException« AWS Lambda n'est pas parvenu à configurer l'accès VPC de la fonctionLambda, car un ou plusieurs sous-réseaux configurés ne disposent pasd'adresse IP disponible. Augmentez la limite appliquée aux adresses IP. »

Pour en savoir plus, consultez Limites Amazon VPC - VPC et sous-réseauxdans Amazon VPC Guide de l'utilisateur.

Lambda.ENILimitReachedException« AWS Lambda n'est pas parvenu à créer une interface réseau Elastic (ENI)dans le VPC, spécifiée comme faisant partie de la configuration de la fonctionLambda, car la limite des interfaces réseau a été atteinte. Augmentez la limiteappliquée à l'interface réseau. »

Pour en savoir plus, consultez Limites Amazon VPC - Interfaces réseau dansAmazon VPC Guide de l'utilisateur.

92

Page 98: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Surveillance de l'état de l'agent

Accès aux journaux CloudWatch pour Kinesis Data FirehoseVous pouvez afficher les journaux d'erreurs liés aux échecs de diffusion de données Kinesis Data Firehoseà l'aide de la console Kinesis Data Firehose ou de la console CloudWatch. Les procédures suivantes vousmontrent comment accéder aux journaux d'erreurs à l'aide de ces deux méthodes.

Pour accéder aux journaux d'erreurs à l'aide de la console Kinesis Data Firehose

1. Connectez-vous à AWS Management Console et ouvrez la console Kinesis à l'adresse https://console.aws.amazon.com/kinesis/.

2. Dans le volet de navigation, choisissez Data Firehose.3. Sélectionnez une région AWS dans la barre de navigation.4. Choisissez un nom de flux de diffusion pour accéder à la page des détails correspondante.5. Choisissez Error Log pour afficher la liste des journaux d'erreurs liés aux défaillances de diffusion de

données.

Pour accéder aux journaux d'erreurs à l'aide de la console CloudWatch

1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.2. Sélectionnez une région dans la barre de navigation.3. Dans le panneau de navigation, sélectionnez Journaux.4. Choisissez un groupe et un flux de journaux pour afficher la liste des journaux d'erreurs liés aux

défaillances de diffusion de données.

Surveillance de l'état de l'agent KinesisL'agent Kinesis publie des métriques CloudWatch personnalisées avec un espace de nomsAWSKinesisAgent. Cela permet d'évaluer si l'agent est sain, s'il envoie des données à Kinesis DataFirehose comme spécifié et s'il utilise la quantité appropriée de ressources d'UC et de mémoire pourl'application producteur.

Les métriques comme le nombre d'enregistrements et d'octets envoyés sont très utiles pour comprendrela vitesse à laquelle l'agent soumet des données au Flux de transmission Kinesis Data Firehose. Lorsqueces métriques deviennent inférieurs d'un certain pourcentage aux seuils attendus ou nulles, elles peuventtraduire des problèmes de configuration, des erreurs réseau ou des problèmes d'état de l'agent. Lesmétriques comme l'utilisation de l'UC ou de la mémoire sur l'hôte et les compteurs d'erreurs de l'agentindiquent l'utilisation des ressources de l'application productrice de données et donnent des informationssur la configuration potentielle ou les erreurs de l'hôte. Enfin, l'agent consigne également les exceptions auniveau du service pour mieux examiner les problèmes de l'agent.

Les mesures de l’agent sont signalées dans la région spécifiée dans le paramètre de configurationde l’agent cloudwatch.endpoint. Pour plus d’informations, voir Paramètres de configuration del'agent (p. 27).

Il y a une charge nominale pour les métriques émises par l'agent Kinesis qui sont activées par défaut. Pourplus d'informations, consultez Tarification Amazon CloudWatch,

Surveillance avec CloudWatchL'agent Kinesis envoie les métriques suivantes à CloudWatch.

93

Page 99: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Journalisation des appels de l'API Kinesis

Data Firehose avec AWS CloudTrail

Métrique Description :

BytesSent Nombre d'octets envoyés au flux de diffusion Kinesis Data Firehose au coursde la période spécifiée.

Unités Octets

RecordSendAttempts Nombre d'enregistrements tentés (une première fois ou lors d'une nouvelletentative) dans un appel de PutRecordBatch au cours de la périodespécifiée.

Unités Count

RecordSendErrors Nombre d'enregistrements qui ont renvoyé un état d'échec dans un appel dePutRecordBatch, y compris les nouvelle tentatives, au cours de la périodespécifiée.

Unités Count

ServiceErrors Nombre d'appels de PutRecordBatch qui ont provoqué une erreur deservice (autre qu'une erreur de limitation) au cours de la période spécifiée.

Unités Count

Journalisation des appels de l'API Kinesis DataFirehose avec AWS CloudTrailAmazon Kinesis Data Firehose est intégré à AWS CloudTrail, service qui fournit un enregistrement desactions réalisées par un utilisateur, un rôle ou un service AWS dans Kinesis Data Firehose. CloudTrailcapture tous les appels d'API pour Kinesis Data Firehose en tant qu'événements. Les appels capturésincluent des appels de la console Kinesis Data Firehose et les appels de code vers les opérations d'APIKinesis Data Firehose. Si vous créez un journal de suivi, vous pouvez diffuser en continu les événementsCloudTrail sur un compartiment Amazon S3, y compris les événements pour Kinesis Data Firehose. Sivous ne configurez pas de journal de suivi, vous pouvez toujours afficher les événements les plus récentsdans la console CloudTrail dans Event history (Historique des événements). À l'aide des informationscollectées par CloudTrail, vous pouvez déterminer la demande qui a été envoyée à Kinesis Data Firehose,l'adresse IP source à partir de laquelle la demande a été effectuée, l'auteur de la demande et la date de lademande, ainsi que d'autres informations.

Pour en savoir plus sur CloudTrail, y compris la façon de le configurer et de l'activer, consultez le AWSCloudTrail User Guide.

Informations de Kinesis Data Firehose dans CloudTrailCloudTrail est activé sur votre compte AWS lorsque vous créez le compte. Quand une activité d'événementprise en charge a lieu dans Kinesis Data Firehose, elle est enregistrée dans un événement CloudTrailavec d'autres événements de services AWS dans Event history (Historique des événements). Vouspouvez afficher, rechercher et télécharger les événements récents dans votre compte AWS. Pour plusd'informations, consultez Affichage des événements avec l'historique des événements CloudTrail.

Pour un enregistrement continu des événements dans votre compte AWS, y compris les événementspour Kinesis Data Firehose, créez un journal de suivi. Un journal de suivi permet à CloudTrail de livrerles fichiers journaux dans un compartiment Amazon S3. Par défaut, lorsque vous créez un journal desuivi dans la console, il s'applique à toutes les régions AWS. Le journal de suivi consigne les événementsde toutes les régions dans la partition AWS et livre les fichiers journaux dans le compartiment Amazon

94

Page 100: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Journalisation des appels de l'API Kinesis

Data Firehose avec AWS CloudTrail

S3 de votre choix. En outre, vous pouvez configurer d'autres services AWS pour analyser plus enprofondeur les données d'événements collectées dans les journaux CloudTrail et agir sur celles-ci. Pourplus d'informations, consultez ce qui suit :

• Présentation de la création d'un journal de suivi• CloudTrail Services et intégrations pris en charge• Configuration des notifications SNS Amazon pour CloudTrail• Recevoir les fichiers journaux de CloudTrail de plusieurs régions et Recevoir les fichiers journaux de

CloudTrail de plusieurs comptes

Kinesis Data Firehose prend en charge la journalisation des actions suivantes en tant qu'événements dansles fichiers journaux CloudTrail :

• CreateDeliveryStream• DeleteDeliveryStream• DescribeDeliveryStream• ListDeliveryStreams• ListTagsForDeliveryStream• TagDeliveryStream• StartDeliveryStreamEncryption• StopDeliveryStreamEncryption• UntagDeliveryStream• UpdateDestination

Chaque événement ou entrée du journal contient des informations sur la personne qui a généré lademande. Les informations relatives à l'identité permettent de déterminer les éléments suivants :

• Si la demande a été effectuée avec les informations d'identification racine ou utilisateur AWS Identity andAccess Management (IAM)

• Si la demande a été effectuée avec des informations d'identification de sécurité temporaires pour un rôleou un utilisateur fédéré

• Si la demande a été effectuée par un autre service AWS.

Pour plus d'informations, consultez la section Élément userIdentity CloudTrail.

Exemple: Kinesis Data Firehose Entrées de fichier journalUn journal de suivi est une configuration qui active la livraison d'événements en tant que fichiers journauxà un compartiment Amazon S3 que vous spécifiez. Les fichiers journaux CloudTrail contiennent une ouplusieurs entrées de journal. Un événement représente une demande individuelle à partir d'une sourcequelconque et comprend des informations sur l'action demandée, sur tous les paramètres, les paramètresde la demande, etc. Les fichiers journaux CloudTrail ne sont pas des séries ordonnées retraçant les appelsd'API publics. Ils ne suivent aucun ordre précis.

L'exemple suivant montre une entrée de journal CloudTrail qui illustre les actionsCreateDeliveryStream, DescribeDeliveryStream, ListDeliveryStreams,UpdateDestination et DeleteDeliveryStream.

{ "Records":[ { "eventVersion":"1.02",

95

Page 101: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Journalisation des appels de l'API Kinesis

Data Firehose avec AWS CloudTrail

"userIdentity":{ "type":"IAMUser", "principalId":"AKIAIOSFODNN7EXAMPLE", "arn":"arn:aws:iam::111122223333:user/CloudTrail_Test_User", "accountId":"111122223333", "accessKeyId":"AKIAI44QH8DHBEXAMPLE", "userName":"CloudTrail_Test_User" }, "eventTime":"2016-02-24T18:08:22Z", "eventSource":"firehose.amazonaws.com", "eventName":"CreateDeliveryStream", "awsRegion":"us-east-1", "sourceIPAddress":"127.0.0.1", "userAgent":"aws-internal/3", "requestParameters":{ "deliveryStreamName":"TestRedshiftStream", "redshiftDestinationConfiguration":{ "s3Configuration":{ "compressionFormat":"GZIP", "prefix":"prefix", "bucketARN":"arn:aws:s3:::firehose-cloudtrail-test-bucket", "roleARN":"arn:aws:iam::111122223333:role/Firehose", "bufferingHints":{ "sizeInMBs":3, "intervalInSeconds":900 }, "encryptionConfiguration":{ "kMSEncryptionConfig":{ "aWSKMSKeyARN":"arn:aws:kms:us-east-1:key" } } }, "clusterJDBCURL":"jdbc:redshift://example.abc123.us-west-2.redshift.amazonaws.com:5439/dev", "copyCommand":{ "copyOptions":"copyOptions", "dataTableName":"dataTable" }, "password":"", "username":"", "roleARN":"arn:aws:iam::111122223333:role/Firehose" } }, "responseElements":{ "deliveryStreamARN":"arn:aws:firehose:us-east-1:111122223333:deliverystream/TestRedshiftStream" }, "requestID":"958abf6a-db21-11e5-bb88-91ae9617edf5", "eventID":"875d2d68-476c-4ad5-bbc6-d02872cfc884", "eventType":"AwsApiCall", "recipientAccountId":"111122223333" }, { "eventVersion":"1.02", "userIdentity":{ "type":"IAMUser", "principalId":"AKIAIOSFODNN7EXAMPLE", "arn":"arn:aws:iam::111122223333:user/CloudTrail_Test_User", "accountId":"111122223333", "accessKeyId":"AKIAI44QH8DHBEXAMPLE", "userName":"CloudTrail_Test_User" }, "eventTime":"2016-02-24T18:08:54Z", "eventSource":"firehose.amazonaws.com", "eventName":"DescribeDeliveryStream", "awsRegion":"us-east-1",

96

Page 102: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Journalisation des appels de l'API Kinesis

Data Firehose avec AWS CloudTrail

"sourceIPAddress":"127.0.0.1", "userAgent":"aws-internal/3", "requestParameters":{ "deliveryStreamName":"TestRedshiftStream" }, "responseElements":null, "requestID":"aa6ea5ed-db21-11e5-bb88-91ae9617edf5", "eventID":"d9b285d8-d690-4d5c-b9fe-d1ad5ab03f14", "eventType":"AwsApiCall", "recipientAccountId":"111122223333" }, { "eventVersion":"1.02", "userIdentity":{ "type":"IAMUser", "principalId":"AKIAIOSFODNN7EXAMPLE", "arn":"arn:aws:iam::111122223333:user/CloudTrail_Test_User", "accountId":"111122223333", "accessKeyId":"AKIAI44QH8DHBEXAMPLE", "userName":"CloudTrail_Test_User" }, "eventTime":"2016-02-24T18:10:00Z", "eventSource":"firehose.amazonaws.com", "eventName":"ListDeliveryStreams", "awsRegion":"us-east-1", "sourceIPAddress":"127.0.0.1", "userAgent":"aws-internal/3", "requestParameters":{ "limit":10 }, "responseElements":null, "requestID":"d1bf7f86-db21-11e5-bb88-91ae9617edf5", "eventID":"67f63c74-4335-48c0-9004-4ba35ce00128", "eventType":"AwsApiCall", "recipientAccountId":"111122223333" }, { "eventVersion":"1.02", "userIdentity":{ "type":"IAMUser", "principalId":"AKIAIOSFODNN7EXAMPLE", "arn":"arn:aws:iam::111122223333:user/CloudTrail_Test_User", "accountId":"111122223333", "accessKeyId":"AKIAI44QH8DHBEXAMPLE", "userName":"CloudTrail_Test_User" }, "eventTime":"2016-02-24T18:10:09Z", "eventSource":"firehose.amazonaws.com", "eventName":"UpdateDestination", "awsRegion":"us-east-1", "sourceIPAddress":"127.0.0.1", "userAgent":"aws-internal/3", "requestParameters":{ "destinationId":"destinationId-000000000001", "deliveryStreamName":"TestRedshiftStream", "currentDeliveryStreamVersionId":"1", "redshiftDestinationUpdate":{ "roleARN":"arn:aws:iam::111122223333:role/Firehose", "clusterJDBCURL":"jdbc:redshift://example.abc123.us-west-2.redshift.amazonaws.com:5439/dev", "password":"", "username":"", "copyCommand":{ "copyOptions":"copyOptions", "dataTableName":"dataTable" },

97

Page 103: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Journalisation des appels de l'API Kinesis

Data Firehose avec AWS CloudTrail

"s3Update":{ "bucketARN":"arn:aws:s3:::firehose-cloudtrail-test-bucket-update", "roleARN":"arn:aws:iam::111122223333:role/Firehose", "compressionFormat":"GZIP", "bufferingHints":{ "sizeInMBs":3, "intervalInSeconds":900 }, "encryptionConfiguration":{ "kMSEncryptionConfig":{ "aWSKMSKeyARN":"arn:aws:kms:us-east-1:key" } }, "prefix":"arn:aws:s3:::firehose-cloudtrail-test-bucket" } } }, "responseElements":null, "requestID":"d549428d-db21-11e5-bb88-91ae9617edf5", "eventID":"1cb21e0b-416a-415d-bbf9-769b152a6585", "eventType":"AwsApiCall", "recipientAccountId":"111122223333" }, { "eventVersion":"1.02", "userIdentity":{ "type":"IAMUser", "principalId":"AKIAIOSFODNN7EXAMPLE", "arn":"arn:aws:iam::111122223333:user/CloudTrail_Test_User", "accountId":"111122223333", "accessKeyId":"AKIAI44QH8DHBEXAMPLE", "userName":"CloudTrail_Test_User" }, "eventTime":"2016-02-24T18:10:12Z", "eventSource":"firehose.amazonaws.com", "eventName":"DeleteDeliveryStream", "awsRegion":"us-east-1", "sourceIPAddress":"127.0.0.1", "userAgent":"aws-internal/3", "requestParameters":{ "deliveryStreamName":"TestRedshiftStream" }, "responseElements":null, "requestID":"d85968c1-db21-11e5-bb88-91ae9617edf5", "eventID":"dd46bb98-b4e9-42ff-a6af-32d57e636ad1", "eventType":"AwsApiCall", "recipientAccountId":"111122223333" } ]}

98

Page 104: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:L'espace de noms timestamp

Préfixes personnalisés pour lesobjets Amazon S3

Si votre destination est Amazon S3, Amazon Elasticsearch Service ou Splunk, vous pouvez configurer lesclés d'objet Amazon S3 utiliséées pour fournir des données à partir d'Kinesis Data Firehose. Pour ce faire,vous spécifiez des expressions évaluées par Kinesis Data Firehose à l'heure de la diffusion. Les touchesd’objet finales ont le format <evaluated prefix><suffix>, où le suffixe a le format <deliverystream name>-<delivery stream version>-<year>-<month>-<day>-<hour>-<minute>-<second>-<uuid><file extension>. Vous ne pouvez pas modifier le champ Suffixe.

Vous pouvez utiliser les expressions des formulaires suivants dans votre préfixe personnalisé : !{namespace:value}, où namespace peut être soit firehose ou timestamp, comme expliqué dans lessections suivantes.

Si un préfixe se termine par une barre oblique, il apparaît comme dossier dans le compartiment AmazonS3. Pour plus d'informations, consultez Format de nom d'objet Amazon S3 dans le Manuel du développeurAmazon Kinesis Data Firehose.

L'espace de noms timestampLes valeurs valides pour cet espace de noms sont des chaînes valides Java DateTimeFormatter. Parexemple, au cours de l'année 2018, l'expression !{timestamp:yyyy} est évaluée sur 2018.

Lors de l'évaluation des horodatages, Kinesis Data Firehose utilise l'horodatage d'arrivée approximatif duplus ancien enregistrement qui est contenu dans l'objet Amazon S3 qui est écrit.

L'horodatage est toujours exprimé en UTC.

Si vous utilisez l'espace de noms timestamp plusieurs fois dans la même expression de préfixe, chaqueinstance est évaluée sur le même instantané dans le temps.

L'espace de noms firehoseIl existe deux valeurs que vous pouvez utiliser avec cet espace de nommage : error-output-type etrandom-string. Le tableau suivant explique comment les utiliser.

Les valeurs de l'espace de noms firehose

Conversion Description : Exemple d'entrée Exemple de sortie. Remarques:

error-output-type

Évalue l’une deschaînes suivantes,en fonction dela configurationde votre fluxde livraison, etde la raison del’échec : {échec de

myPrefix/result=!{firehose:error-output-type}/!{timestamp:yyyy/MM/dd}

myPrefix/result=processing-failed/2018/08/03

La valeur error-output-type peutuniquementêtre utiliséedans le champErrorOutputPrefix.

99

Page 105: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Règles sémantiques

Conversion Description : Exemple d'entrée Exemple de sortie. Remarques:traitement, échecde la rechercheélastique, échecsplunk, formatconversion-échec, échec del’échec du point determinaison http}.

Si vous utilisezl'espace de nomsplusieurs foisdans la mêmeexpression,chaque instanceest évaluée surla même chaîned'erreur.

random-string Évaluation sur unechaîne aléatoirede 11 caractères.Si vous utilisezl'espace de nomsplusieurs foisdans la mêmeexpression,chaque instanceest évaluée surune nouvellechaîne aléatoire.

myPrefix/!{firehose:random-string}/

myPrefix/046b6c7f-0b/Vous pouvezl'utiliser avec lesdeux types depréfixe.

Vous pouvez leplacer au début dela chaîne de formatpour obtenir unpréfixe aléatoire,ce qui est parfoisnécessaire pouratteindre un débitextrêmement élevéavec Amazon S3.

Règles sémantiquesLes règles suivantes s'appliquent aux expressions Prefix et ErrorOutputPrefix.

• Pour l'espace de noms timestamp, n'importe quel caractère autre que des guillemets simples estévalué. En d'autres termes, n'importe quelle chaîne dans une séquence d'échappement avec desguillemets simples dans le champ value est prise littéralement.

• Si vous spécifiez un préfixe qui ne contient pas une expression d'espace de noms d'horodatage, KinesisData Firehose ajoute l'expression !{timestamp:yyyy/MM/dd/HH/} à la valeur dans le champPrefix.

• La séquence !{ peut uniquement apparaître dans les expressions !{namespace:value}.• ErrorOutputPrefix peut être null uniquement si Prefix ne contient pas d'expressions. Dans ce cas,Prefix correspond à <specified-prefix>YYYY/MM/DDD/HH/ et ErrorOutputPrefix correspondà <specified-prefix><error-output-type>YYYY/MM/DDD/HH/. DDD représente le jour del'année.

• Si vous spécifiez une expression pour ErrorOutputPrefix, vous devez inclure au moins une instancede !{firehose:error-output-type}.

100

Page 106: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Exemples de préfixe

• Prefix ne peut pas contenir !{firehose:error-output-type}.• Ni Prefix ni ErrorOutputPrefix ne peuvent être supérieurs à 512 caractères après leur évaluation.• Si la destination est Amazon Redshift, Prefix ne doit pas contenir d'expressions etErrorOutputPrefix doit être null.

• Lorsque la destination est Amazon Elasticsearch Service ou Splunk, et si aucun ErrorOutputPrefixn'est spécifié, Kinesis Data Firehose utilise le champ Prefix pour les enregistrements ayant échoué.

• Lorsque la destination est Amazon S3, les préfixes Prefix et ErrorOutputPrefix dans laconfiguration de destination Amazon S3 sont utilisés pour les enregistrements ayant réussi et lesenregistrements ayant échoué, respectivement. Si vous utilisez AWS CLI ou l’API, vous pouvez utiliserExtendedS3DestinationConfiguration pour spécifier une configuration de sauvegarde deAmazon S3 avec ses Prefix et ErrorOutputPrefix.

• Lorsque vous utilisez la AWS Management Console et que vous définissez la destination sur AmazonS3, Kinesis Data Firehose utilise les préfixes Prefix et ErrorOutputPrefix dans la configuration dedestination pour les enregistrements ayant réussi et les enregistrements ayant échoué, respectivement.Si vous spécifiez un préfixe mais aucun préfixe d'erreur, Kinesis Data Firehose définit automatiquementle préfixe d'erreur sur !{firehose:error-output-type}/.

• Lorsque vous utilisez ExtendedS3DestinationConfiguration avec l’AWS CLI, l'API ou AWSCloudFormation, si vous spécifiez un S3BackupConfiguration, Kinesis Data Firehose ne fournit pasde préfixe ErrorOutputPrefix par défaut.

Exemples de préfixePrefix et ErrorOutputPrefix exemples

Entrée : Préfixe évalué (à 10:30 AM UTC le 27août2018)

Prefix:  : non spécifié

ErrorOutputPrefix: myFirehoseFailures/!{firehose:error-output-type}/

Prefix: 2018/08/27/10

ErrorOutputPrefix: myFirehoseFailures/processing-failed/

Prefix: !{timestamp:yyyy/MM/dd}

ErrorOutputPrefix:  : non spécifié

Entrée non valide : ErrorOutputPrefix nepeut pas être nul lorsque Préfixe contient desexpressions

Prefix: myFirehose/DeliveredYear=!{timestamp:yyyy}/anyMonth/rand=!{firehose:random-string}

ErrorOutputPrefix: myFirehoseFailures/!{firehose:error-output-type}/!{timestamp:yyyy}/anyMonth/!{timestamp:dd}

Prefix: myFirehose/DeliveredYear=2018/anyMonth/rand=5abf82daaa5

ErrorOutputPrefix: myFirehoseFailures/processing-failed/2018/anyMonth/10

Prefix: myPrefix/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/

ErrorOutputPrefix: myErrorPrefix/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}

Prefix: myPrefix/year=2018/month=07/day=06/hour=23/

ErrorOutputPrefix: myErrorPrefix/year=2018/month=07/day=06/hour=23/processing-failed

101

Page 107: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Exemples de préfixe

Entrée : Préfixe évalué (à 10:30 AM UTC le 27août2018)

Prefix: myFirehosePrefix

ErrorOutputPrefix:  : non spécifié

Prefix: myFirehosePrefix/2018/08/27/

ErrorOutputPrefix: myFirehosePrefix/processing-failed/2018/08/27/

102

Page 108: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Points de terminaison de VPC d'interface

(AWS PrivateLink) pour Kinesis Data Firehose

Utilisation de Amazon Kinesis DataFirehose avec AWS PrivateLinkPoints de terminaison de VPC d'interface (AWSPrivateLink) pour Kinesis Data Firehose

Vous pouvez utiliser un point de terminaison d'un VPC d'interface pour empêcher le trafic entre votreAmazon VPC et Kinesis Data Firehose de quitter le réseau Amazon. Les points de terminaison de VPCd'interface n'ont pas besoin d'une passerelle Internet, d'un périphérique NAT, d'une connexion VPN oud'une connexion AWS Direct Connect. Les points de terminaison d'un VPC d'interface reposent sur AWSPrivateLink, une technologie AWS qui active une communication privée entre les services AWS à l'aided'une interface réseau Elastic avec des adresses IP privées dans votre Amazon VPC. Pour de plus amplesinformations, veuillez consulter Amazon Virtual Private Cloud.

Utilisation de points de terminaison de VPCd'interface (AWS PrivateLink) pour Kinesis DataFirehose

Pour démarrer, créez un point de terminaison d'un VPC d'interface pour que votre trafic Kinesis DataFirehose depuis vos ressources Amazon VPC commence à circuler via le point de terminaison de VPCd'interface. Lorsque vous créez un point de terminaison, vous pouvez lui attacher une stratégie de pointde terminaison qui contrôle l'accès à Kinesis Data Firehose. Pour plus d'informations sur l'utilisation desstratégies afin de contrôler l'accès depuis un point de terminaison de VPC Kinesis Data Firehose, consultezContrôle de l'accès aux services avec des points de terminaison d'un VPC.

L’exemple de procédure suivant montre comment configurer une fonction AWS Lambda dans un VPC etcréer un point de terminaison de VPC pour permettre à la fonction de communiquer de manière sécuriséeavec le service Kinesis Data Firehose. Dans cet exemple, vous utilisez une stratégie qui autorise la fonctionLambda à répertorier les flux de diffusion dans la région actuelle, mais pas à décrire les flux de diffusion.

Création d'un point de terminaison de VPC

1. Connectez-vous au AWS Management Console et ouvrez la console Amazon VPC à l'adresse https://console.aws.amazon.com/vpc/.

2. Dans le tableau de bord VPC, choisissez Endpoints (Points de terminaison).3. Choisissez Create Endpoint.4. Dans la liste des noms de service, choisissez com.amazonaws.your_region.kinesis-

firehose.5. Choisissez le VPC et un ou plusieurs sous-réseaux dans lesquels créer le point de terminaison.6. Choisissez un ou plusieurs groupes de sécurité à associer au point de terminaison.7. Pour Policy (Stratégie), choisissez Custom (Personnalisée) et collez la stratégie suivante :

{

103

Page 109: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Utilisation de points de terminaison de VPC d'interface

(AWS PrivateLink) pour Kinesis Data Firehose

"Statement": [ { "Sid": "Allow-only-specific-PrivateAPIs", "Principal": "*", "Action": [ "firehose:ListDeliveryStreams" ], "Effect": "Allow", "Resource": [ "*" ] }, { "Sid": "Allow-only-specific-PrivateAPIs", "Principal": "*", "Action": [ "firehose:DescribeDeliveryStream" ], "Effect": "Deny", "Resource": [ "*" ] } ]}

8. Choisissez Create endpoint.

Création d'un rôle IAM à utiliser avec la fonction Lambda

1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.2. Dans le volet gauche, choisissez Roles (Rôles) puis choisissez Create role.3. Sous Select type of trusted entity (Sélectionner le type d'entité de confiance), conservez la sélection

par défaut AWS service (Service AWS).4. Sous Choisir le service qui utilisera ce rôle, choisissez Lambda.5. Choisissez Next: Permissions.6. Dans la liste des stratégies, recherchez et ajoutez les deux stratégies nommées

AWSLambdaVPCAccessExecutionRole et AmazonKinesisFirehoseReadOnlyAccess.

Important

Il s’agit d’un exemple. Il se peut que vous ayez besoin de stratégies plus strictes pour votreenvironnement de production.

7. Choisissez Next: Tags. Vous n'avez pas besoin d'ajouter des balises dans le cadre de cet exercice.Choisissez Next: Review.

8. Entrez un nom pour le rôle, puis choisissez Create role.

Création d'une fonction Lambda au sein du VPC

1. Ouvrez la console AWS Lambda à l'adresse https://console.aws.amazon.com/lambda/.2. Choisissez Create function.3. Choisissez Author from scratch.4. Saisissez le nom de la fonction, puis définissez Runtime (Exécution) sur Python 3.6.5. Sous Permissions (Autorisations), développez Choose or create an execution role (Choisir ou créer un

rôle d'exécution).6. Dans la liste Execution role (Rôle d'exécution), choisissez Use an existing role (Utiliser un rôle

existant).

104

Page 110: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Disponibilité

7. Dans la liste Existing role (Rôle existant), choisissez le rôle que vous avez créé ci-dessus.8. Choisissez Create function.9. Sous Function code (Code de fonction), Collez le code suivant.

import json import boto3 import os from botocore.exceptions import ClientError def lambda_handler(event, context): REGION = os.environ['AWS_REGION'] client = boto3.client( 'firehose', REGION ) print("Calling list_delivery_streams with ListDeliveryStreams allowed policy.") delivery_stream_request = client.list_delivery_streams() print("Successfully returned list_delivery_streams request %s." % ( delivery_stream_request )) describe_access_denied = False try: print("Calling describe_delivery_stream with DescribeDeliveryStream denied policy.") delivery_stream_info = client.describe_delivery_stream(DeliveryStreamName='test-describe-denied') except ClientError as e: error_code = e.response['Error']['Code'] print ("Caught %s." % (error_code)) if error_code == 'AccessDeniedException': describe_access_denied = True if not describe_access_denied: raise else: print("Access denied test succeeded.")

10. Sous Basic settings (Paramètres de base), définissez le délai d'expiration sur 1 minute.11. Sous Network (Réseau), sélectionnez le VPC dans lequel vous avez créé le point de terminaison ci-

dessus, puis choisissez les sous-réseaux et le groupe de sécurité que vous avez associés au point determinaison lorsque vous l'avez créé.

12. Vers le haut de la page, cliquez sur Save.13. Choisissez Test.14. Entrez un nom d'événement, puis choisissez Create.15. Choisissez à nouveau Test. La fonction est alors exécutée. Une fois que le résultat d'exécution

s'affiche, développez Details (Détails) et comparez la sortie de journal au code de la fonction. Desrésultats réussis affichent une liste des flux de diffusion dans la région, ainsi que la sortie suivante :

Calling describe_delivery_stream.

AccessDeniedException

Access denied test succeeded.

DisponibilitéLes points de terminaison de VPC d'interface sont actuellement pris en charge dans les régions suivantes :

105

Page 111: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Disponibilité

• USA Est (Ohio)• USA Est (Virginie du Nord)• USA Ouest (Californie du Nord)• USA Ouest (Oregon)• Asie-Pacifique (Mumbai)• Asie-Pacifique (Séoul)• Asie-Pacifique (Singapour)• Asie-Pacifique (Sydney)• Asie-Pacifique (Tokyo)• Canada (Centre)• Chine (Pékin)• Chine (Ningxia)• Europe (Francfort)• Europe (Irlande)• Europe (Londres)• Europe (Paris)• Amérique du Sud (São Paulo)• AWS GovCloud (US-East)• AWS GovCloud (US-West)

106

Page 112: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Principes de base des balises

Balisage de vos flux de diffusion dansAmazon Kinesis Data Firehose

Vous pouvez attribuer vos propres métadonnées aux flux de diffusion que vous créez dans Amazon KinesisData Firehose sous forme de balises. Une balise est une paire clé-valeur que vous définissez pour un flux.Les balises constituent une méthode simple et puissante de gestion des ressources AWS et d'organisationdes données, y compris les données de facturation.

Rubriques• Principes de base des balises (p. 107)• Suivi des coûts à l'aide du balisage (p. 107)• Restrictions liées aux balises (p. 108)• Balisage des flux de diffusion à l'aide de l'API Amazon Kinesis Data Firehose (p. 108)

Principes de base des balisesVous pouvez utiliser l'API Amazon Kinesis Data Firehose pour effectuer les tâches suivantes :

• Ajouter des balises à un flux de diffusion.• Répertorier les balises de vos flux de diffusion.• Supprimer les balises d'un flux de diffusion.

Vous pouvez utiliser les balises pour classer vos flux de diffusion Kinesis Data Firehose. Par exemple, vouspouvez classer les flux de diffusion par objectif, propriétaire ou environnement. Dans la mesure où vousavez défini la clé et la valeur de chaque balise, vous pouvez créer un ensemble personnalisé de catégoriesrépondant à vos besoins spécifiques. Par exemple, vous pouvez définir un ensemble de balises vouspermettant de suivre les flux de diffusion par propriétaire et application associée.

Voici plusieurs exemples de balises :

• Project: Project name

• Owner: Name

• Purpose: Load testing

• Application: Application name

• Environment: Production

Suivi des coûts à l'aide du balisageVous pouvez utiliser les balises pour classer et suivre vos coûts AWS. Lorsque vous appliquez des balisesà vos ressources AWS, notamment aux flux de diffusion Kinesis Data Firehose, votre rapport de ventilationdes coûts AWS comprend l'utilisation et les coûts regroupés par balises. Vous pouvez organiser voscoûts entre plusieurs services en appliquant des balises qui représentent des catégories métier (tellesque les centres de coûts, les noms d'applications ou les propriétaires). Pour plus d'informations, consultezUtilisation des balises de répartition des coûts pour les rapports de facturation personnalisés dans le AWSBilling and Cost Management Guide de l'utilisateur.

107

Page 113: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Restrictions liées aux balises

Restrictions liées aux balisesLes restrictions suivantes s'appliquent aux balises dans Kinesis Data Firehose.

Restrictions de base

• Le nombre maximum de balises par ressource (flux) est de 50.• Les clés et valeurs de balise sont sensibles à la casse.• Vous ne pouvez pas changer ou modifier les balises d'un flux supprimé.

Restrictions relatives aux clés de balise

• Chaque clé de balise doit être unique. Si vous ajoutez une balise avec une clé qui est déjà en coursd'utilisation, la nouvelle balise remplacera la paire clé-valeur existante.

• Vous ne pouvez pas démarrer une clé de balise avec, aws: car ce préfixe est réservé à une utilisationpar AWS. AWS crée des balises qui commencent par ce préfixe en votre nom, mais vous ne pouvez pasles modifier ou les supprimer.

• Les clés de balise doivent comporter entre 1 et 128 caractères Unicode.• Les clés de balise doivent comporter les caractères suivants : lettres Unicode, chiffres, espaces et les

caractères spéciaux suivants :_ . / = + - @.

Restrictions relatives à la valeur de balise

• Les valeurs de balise doivent comporter entre 0 et 255 caractères Unicode.• Les valeurs de balise peuvent être vides. Si tel n'est pas le cas, elles doivent être composées des

caractères suivants : lettres Unicode, chiffres, espaces et les caractères spéciaux suivants :_ . / = +- @.

Balisage des flux de diffusion à l'aide de l'APIAmazon Kinesis Data Firehose

Vous pouvez indiquer des balises lorsque vous appelez CreateDeliveryStream pour créer un nouveau fluxde diffusion. Pour les flux de diffusion existants, vous pouvez ajouter, répertorier et supprimer des balisesen utilisant les trois opérations suivantes :

• TagDeliveryStream• ListTagsForDeliveryStream• UntagDeliveryStream

108

Page 114: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:

Didacticiel : envoi de journaux de fluxVPC à Splunk avec Amazon KinesisData Firehose

Dans ce didacticiel, vous apprendrez à capturer des informations sur le trafic IP allant de et vers lesinterfaces réseau dans un Amazon Virtual Private Cloud (Amazon VPC). Vous utilisez ensuite AmazonKinesis Data Firehose pour envoyer ces informations à Splunk. Pour de plus amples informations sur letrafic réseau VPC, veuillez consulter Journaux de flux VPC dans le Amazon VPC Guide de l'utilisateur.

Le schéma suivant illustre le flux de données illustré dans le didacticiel.

Comme illustré par le schéma, commencez par envoyer les journaux de flux Amazon VPC vers AmazonCloudWatch. Ensuite, depuis CloudWatch, les données vont vers un Flux de transmission Kinesis DataFirehose. Kinesis Data Firehose appelle ensuite une fonction AWS Lambda pour décompresser lesdonnées, puis envoie les données de journal décompressées à Splunk.

Prérequis

Avant de commencer, veillez à disposer des prérequis suivants :

• Compte AWS — Si vous n'avez pas de compte AWS, créez-en un sur http://aws.amazon.com. Pour plusd'informations, consultez Configuration pour Amazon Kinesis Data Firehose (p. 4).

• AWS CLI — Certaines parties du didacticiel requièrent l'utilisation de l'AWS Command Line Interface(AWS CLI). Pour installer l'AWS CLI, consultez Installation de l'interface de ligne de commande AWSdans le AWS Command Line Interface Guide de l'utilisateur.

• Jeton HEC — Dans votre déploiement Splunk, vous devez configurer un jeton decollecte des événements HTTP (HTTP Event Collector, HEC) avec le type de sourceaws:cloudwatchlogs:vpcflow. Pour plus d'informations, consultez Présentation de l'installation

109

Page 115: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Étape 1 : Envoi de données de journal vers CloudWatch

et de la configuration du module complémentaire Splunk pour Amazon Kinesis Firehose dans ladocumentation de Splunk.

Rubriques• Étape 1 :Envoi de données de journal du Amazon VPC vers Amazon CloudWatch (p. 110)• Étape 2 : Créer un flux de diffusion Kinesis Data Firehose avec Splunk comme destination (p. 112)• Étape 3 : Envoyer les données du Amazon CloudWatch vers Kinesis Data Firehose (p. 115)• Étape 4 : Vérifier les résultats dans Splunk et dans Kinesis Data Firehose (p. 116)

Étape 1 :Envoi de données de journal du AmazonVPC vers Amazon CloudWatch

Au cours de la première partie de ce didacticiel Kinesis Data Firehose (p. 109), vous créez un groupe dejournaux Amazon CloudWatch pour recevoir vos journaux de flux Amazon VPC. Ensuite, vous créez desjournaux de flux pour vos Amazon VPC et les envoyer vers le groupe de journaux CloudWatch que vousavez créé.

Pour créer un groupe de journaux CloudWatch afin de stocker vos journaux de flux Amazon VPC

1. Connectez-vous à la AWS Management Console et ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.

2. Dans le volet de navigation, sélectionnez Groupes de journaux.3. Choisissez Actions, puis Create Bucket (Créer un compartiment).4. Entrez le nom VPCtoSplunkLogGroup et choisissez Create log group (Créer un groupe de journaux).

Pour créer un journal de flux VPC

1. Ouvrez la console Amazon VPC à l'adresse https://console.aws.amazon.com/vpc/.2. Dans le volet de navigation, sélectionnez Your VPCs. Sélectionnez ensuite votre VPC dans la liste en

cochant la case en regard de celui-ci.

110

Page 116: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Étape 1 : Envoi de données de journal vers CloudWatch

3. Choisissez Actions, puis Create flow log (Créer un journal de flux).4. Dans la liste Filter* (Filtre), choisissez All (Tous).5. Laissez la destination définie sur Send to CloudWatch Logs (Envoyer aux journaux CloudWatch).6. Dans Destination log group* (Groupe de journaux de destination), choisissez VPCtoSplunkLogGroup,

qui est le groupe de journaux créé lors de la procédure précédente.7. Pour configurer un rôle IAM, cliquez sur le lien Set Up Permissions (Configurer les autorisations).

8. Dans la nouvelle fenêtre qui apparaît, laissez IAM Role (Rôle IAM) défini sur Create a newIAM Role (Créer un nouveau rôle IAM). Dans la zone Role Name (Nom du rôle), entrezVPCtoSplunkWritetoCWRole. Choisissez ensuite Allow (Autoriser).

111

Page 117: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Étape 2 : Créer un flux de diffusion

9. Revenez à l'onglet de navigateur Create flow log (Créer un journal de flux) et actualisez la zone IAMrole* (Rôle IAM). Ensuite, choisissez VPCtoSplunkWritetoCWRole dans la liste.

10. Choisissez Create (Créer), puis choisissez Fermer.11. De retour dans le tableau de bord du Amazon VPC, choisissez Your VPCs (Vos VPC) dans le volet de

navigation. Ensuite, activez la case à cocher en regard de votre VPC.12. Faites défiler l'écran vers le bas, cliquez sur l'onglet Flow Logs (Journaux de flux) et recherchez le

journal de flux que vous avez créé dans les étapes précédentes. Assurez-vous que son état est Actif.Si tel n'est pas le cas, vérifiez les étapes précédentes.

Passez à l'Étape 2 : Créer un flux de diffusion Kinesis Data Firehose avec Splunk commedestination (p. 112).

Étape 2 : Créer un flux de diffusion Kinesis DataFirehose avec Splunk comme destination

Dans cette partie du didacticiel Kinesis Data Firehose (p. 109), vous créez un flux de diffusion AmazonKinesis Data Firehose pour recevoir les données de journal de Amazon CloudWatch et les diffuser àSplunk.

Les journaux que CloudWatch envoie au flux de diffusion sont dans un format compressé. Cependant,Kinesis Data Firehose ne peut pas envoyer de journaux compressés à Splunk. Par conséquent, lorsquevous créez le flux de diffusion dans la procédure suivante, vous activez la transformation de données etconfigurez une fonction AWS Lambda pour décompresser les données de journalisation. Kinesis DataFirehose envoie ensuite les données non compressées à Splunk.

Pour créer un Flux de transmission Kinesis Data Firehose avec Splunk comme destination

1. Ouvrez la console Kinesis Data Firehose à l'adresse https://console.aws.amazon.com/firehose/.2. Sélectionnez Create delivery Stream (Créer un flux de diffusion).

112

Page 118: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Étape 2 : Créer un flux de diffusion

3. Pour le nom du flux de diffusion, entrez VPCtoSplunkStream. Faites défiler la page vers le bas, puischoisissez Next (Suivant).

4. Pour Data transforation* (Transformation des données*), choisissez Enabled (Activé).5. Pour Lambda function* (Fonction Lambda*), choisissezCreate new (Créer).6. Dans la fenêtre Choose Lambda blueprint (Choisir le plan Lambda), faites défiler vers le bas et

choisissez Kinesis Firehose CloudWatch Logs Processor (Processeur Kinesis Firehose CloudWatchLogs). Ceci ouvre la console AWS Lambda.

7. Sur la console AWS Lambda, comme nom de fonction, saisissez VPCtoSplunkLambda.8. Dans le texte de description sous Rôle d'exécution, choisissez le lien de la console IAM pour créer un

rôle personnalisé. Ceci ouvre la console AWS Identity and Access Management (IAM).9. Dans la console IAM, choisissez Lambda.10. Choisissez Next: Permissions.11. Choisissez Create policy.12. Choisissez l'onglet JSON et remplacez le fichier JSON existant par ce qui suit. Veillez à remplacer les

espaces réservés your-region et your-aws-account-id par votre code de région AWS et votre

113

Page 119: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Étape 2 : Créer un flux de diffusion

ID de compte. N'incluez pas de traits d'union ou de tirets dans les ID de compte. Pour connaître la listedes codes des régions AWS, consultez Régions et points de terminaison AWS.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:GetLogEvents" ], "Resource": "arn:aws:logs:*:*:*" }, { "Effect": "Allow", "Action": [ "firehose:PutRecordBatch" ], "Resource": [ "arn:aws:firehose:your-region:your-aws-account-id:deliverystream/VPCtoSplunkStream" ] } ]}

Cette stratégie permet à la fonction Lambda de replacer les données dans le flux de diffusion enappelant l'opération PutRecordBatch. Cette étape est nécessaire car une fonction Lambda peutuniquement renvoyer jusqu'à 6 Mio de données chaque fois que Kinesis Data Firehose l'appelle. Sila taille des données non compressées dépasse 6 Mio, la fonction appelle PutRecordBatch pourreplacer les données dans le flux de diffusion en vue de leur traitement ultérieur.

13. Dans la fenêtre Create role (Créer un rôle) actualisez la liste des stratégies, puis choisissezVPCToSplunklambdaPolicy en sélectionnant la case sur sa gauche.

14. Choisissez Next: Tags.15. Choisissez Next: Review.16. Dans Role Name (Nom de rôle), entrez VPCtoSplunkLambdaRole, puis choisissez Create role.17. Dans la console Lambda, actualisez la liste des rôles existants, puis sélectionnez

VPCtoSplunkLambdaRole.18. Faites défiler l'écran vers le bas et choisissez Create function (Créer une fonction).19. Dans le volet de la fonction Lambda, faites défilter jusqu'à la section Basic settings (Paramètres de

base), puis augmentez le délai d'attente et faites-le passer à 3 minutes.20. Faites défiler vers le haut et choisissez Save (Enregistrer).21. De retour dans la boîte de dialogue Choose Lambda blueprint (Choisir le plan Lambda), choisissez

Close (Fermer).22. Sur la page de création de flux de diffusion, sous la section Transform source records with AWS

Lambda (Transformer les enregistrements source avec AWS Lambda), choisissez le bouton refresh(actualiser). Choisissez ensuite VPCtoSplunkLambda dans la liste de fonctions.

23. Faites défiler l'écran vers le bas et choisissez Next.24. Pour Destination*, choisissez Splunk.25. Pour le le point de terminaison de cluster Splunk, consultez les informations de la section Configurer

Amazon Kinesis Firehose pour envoyer des données à la plateforme Splunk dans la documentationSplunk.

26. Laissez Splunk endpoint type (Type de point de terminaison Splunk) défini sur Raw endpoint (Point determinaison brut).

27. Entrez la valeur (et non pas le nom) de votre jeton HTTP Event Collector (HEC) Splunk.

114

Page 120: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Étape 3 : Envoyer les données au flux de diffusion

28. Pour S3 backup mode (Mode de sauvegarde S3), choisissez Backup all events (Sauvegarder tous lesévénements).

29. Sélectionnez un compartiment Amazon S3 existant (ou créez-en un nouveau si vous le souhaitez),puis choisissez Next (Suivant).

30. Dans la page Configure settings (Configurer les paramètres), faites défiler vers le bas jusqu'à lasection IAM role (Rôle IAM), puis choisissez le bouton Create new or choose (Créer un nouveau ouchoisir).

31. Dans la liste IAM role (Rôle IAM), choisissez Create a new IAM role (Créer un nouveau rôle IAM).Pour Role Name (Nom du rôle), entrez VPCtoSplunkLambdaFirehoseRole, puis choisissez Allow(Autoriser).

32. Choisissez Next (Suivant), et passez en revue la configuration que vous avez choisie pour le flux dediffusion. Ensuite, choisissez Create delivery Stream (Créer un flux de diffusion).

Passez à l'Étape 3 : Envoyer les données du Amazon CloudWatch vers Kinesis Data Firehose (p. 115).

Étape 3 : Envoyer les données du AmazonCloudWatch vers Kinesis Data Firehose

Au cours de cette étape du didacticiel Kinesis Data Firehose (p. 109), vous abonnez le flux de diffusionau groupe de journaux Amazon CloudWatch. Ainsi, les données du journal circulent depuis le groupe dejournaux vers le flux de diffusion.

Pour envoyer les données des journaux depuis CloudWatch Logs vers votre flux de diffusion

Au cours de cette procédure, vous utilisez le AWS Command Line Interface (AWS CLI) pour créer unabonnement CloudWatch Logs qui envoie les événements des journaux à votre flux de diffusion.

1. Enregistrez la stratégie d'approbation suivante dans un fichier local et nommez le fichierVPCtoSplunkCWtoFHTrustPolicy.json. Veillez à remplacer l'espace réservé your-region parvotre code de région AWS.

{ "Statement": { "Effect": "Allow", "Principal": { "Service": "logs.your-region.amazonaws.com" }, "Action": "sts:AssumeRole" }}

2. Dans une fenêtre de ligne de commande, accédez au répertoire dans lequel vous avez enregistréVPCtoSplunkCWtoFHPolicy.json et exécutez la commande AWS CLI suivante.

aws iam create-role --role-name VPCtoSplunkCWtoFHRole --assume-role-policy-document file://VPCtoSplunkCWtoFHTrustPolicy.json

3. Enregistrez la stratégie d'accès suivante dans un fichier local et nommez le fichierVPCtoSplunkCWtoFHAccessPolicy.json. Veillez à remplacer les espaces réservés your-region et your-aws-account-id par votre code de région et votre ID de compte AWS.

{ "Statement":[ { "Effect":"Allow", "Action":["firehose:*"],

115

Page 121: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Étape 4 : Vérifier les résultats

"Resource":["arn:aws:firehose:your-region:your-aws-account-id:deliverystream/VPCtoSplunkStream"] }, { "Effect":"Allow", "Action":["iam:PassRole"], "Resource":["arn:aws:iam::your-aws-account-id:role/VPCtoSplunkCWtoFHRole"] } ]}

4. Dans une fenêtre de ligne de commande, accédez au répertoire dans lequel vous avez enregistréVPCtoSplunkCWtoFHAccessPolicy.json et exécutez la commande AWS CLI suivante.

aws iam put-role-policy --role-name VPCtoSplunkCWtoFHRole --policy-name VPCtoSplunkCWtoFHAccessPolicy --policy-document file://VPCtoSplunkCWtoFHAccessPolicy.json

5. Remplacez les espaces réservés your-region et your-aws-account-id dans la commande AWSCLI suivante par votre code de région et votre ID de compte AWS, puis exécutez la commande.

aws logs put-subscription-filter --log-group-name "VPCtoSplunkLogGroup" --filter-name "Destination" --filter-pattern "" --destination-arn "arn:aws:firehose:your-region:your-aws-account-id:deliverystream/VPCtoSplunkStream" --role-arn "arn:aws:iam::your-aws-account-id:role/VPCtoSplunkCWtoFHRole"

Passez à l'Étape 4 : Vérifier les résultats dans Splunk et dans Kinesis Data Firehose (p. 116).

Étape 4 : Vérifier les résultats dans Splunk et dansKinesis Data Firehose

Vous pouvez surveiller le flux de données à plusieurs points de cet exemple. Au cours de cette étape dudidacticiel Kinesis Data Firehose (p. 109), vous consultez les données dans Splunk, la destination finale,et vous pouvez également surveiller son débit Kinesis Data Firehose.

Pour vérifier les résultats dans Splunk et dans AWS

1. Ouvrez la console Kinesis Data Firehose à l'adresse https://console.aws.amazon.com/firehose/.2. Dans la liste des flux de diffusion, choisissez VPCtoSplunkStream.3. Choisissez l'onglet Monitoring (Surveillance) et affichez les graphiques. Assurez-vous d'ajuster la plage

de temps et d'utiliser le bouton refresh (actualiser) régulièrement.4. Si vous ne voyez pas vos données dans Splunk, consultez Data Not Delivered to Splunk (Données

non transmises à Splunk).

Important

Une fois que vous avez vérifié vos résultats, supprimez les ressources AWS que vous n'avez pasbesoin de conserver, afin de ne pas encourir de frais continus.

116

Page 122: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Données non diffusées à Amazon S3

Dépannage de Amazon Kinesis DataFirehose

Si Kinesis Data Firehose rencontre des erreurs lors de la livraison ou du traitement des données, il effectueune nouvelle tentative jusqu'à ce que la durée configurée pour les nouvelles tentatives expire. Si la duréede la nouvelle tentative se termine avant que les données ne soient remises correctement, Kinesis DataFirehose les sauvegarde dans le compartiment S3 configuré à cet effet. Si la destination est AmazonS3 et que la remise échoue ou si la remise au compartiment S3 de sauvegarde échoue, Kinesis DataFirehose effectue de nouvelles tentatives jusqu'à la fin de la période de rétention. Pour les flux de diffusionDirectPut, Kinesis Data Firehose conserve les enregistrements pendant 24 heures. Pour un flux dediffusion dont la source de données est un flux de données Kinesis, vous pouvez modifier la période deconservation comme décrit dans la section Modification de la période de conservation des données.

Si la source de données correspond à un flux de données Kinesis, Kinesis Data Firehose réessaieindéfiniment les opérations suivantes : DescribeStream, GetRecords et GetShardIterator.

Si le flux de transmission utilise DirectPut, vérifiez les métriques IncomingBytes etIncomingRecords pour déterminer s'il existe du trafic entrant. Si vous utilisez PutRecord ouPutRecordBatch, assurez-vous de tenir compte des exceptions et de réessayer. Nous recommandonsune stratégie incluant une interruption exponentielle avec instabilité et plusieurs tentatives. En outre, sivous utilisez l'API PutRecordBatch, assurez-vous que le code vérifie la valeur FailedPutCount dans laréponse même lorsque l'appel d'API réussit.

Si le flux de transmission utilise un flux de données Kinesis comme source, vérifiez les métriquesIncomingBytes et IncomingRecords pour le flux de données source. En outre, assurez-vous que lesmétriques DataReadFromKinesisStream.Bytes et DataReadFromKinesisStream.Records sontémises pour le flux de transmission.

Pour plus d'informations sur le suivi des erreurs de livraison via CloudWatch, consultez the section called“Surveillance avec CloudWatch Logs” (p. 86).

Problèmes• Données non diffusées à Amazon S3 (p. 117)• Données non diffusées à Amazon Redshift (p. 118)• Données non diffusées à Amazon Elasticsearch Service (p. 119)• Données non transmises à Splunk (p. 119)• Flux de diffusion non disponible en tant que cible d'une action CloudWatch Logs, CloudWatch Events

ou AWS IoT (p. 120)• Augmentation ou non-émission de la métrique d'actualité des données (p. 121)• Échec de la conversion du format d'enregistrement vers Apache Parquet (p. 122)• Les données n'arrivent pas à destination malgré de bonnes métriques (p. 122)

Données non diffusées à Amazon S3Vérifiez ce qui suit si les données ne sont pas diffusées à votre compartiment Amazon Simple StorageService (Amazon S3).

• Vérifiez les métriques Kinesis Data Firehose IncomingBytes et IncomingRecords pour vousassurer que les données sont correctement diffusées dans votre Flux de transmission Kinesis DataFirehose. Pour plus d'informations, consultez Surveillance d'Kinesis Data Firehose à l'aide de métriquesCloudWatch (p. 72).

117

Page 123: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Données non diffusées à Amazon Redshift

• Si la transformation de données avec Lambda est activée, vérifiez la métrique Kinesis Data FirehoseExecuteProcessingSuccess pour vous assurer qu'Kinesis Data Firehose a tenté d'appeler votrefonction Lambda. Pour plus d'informations, consultez Surveillance d'Kinesis Data Firehose à l'aide demétriques CloudWatch (p. 72).

• Vérifiez la métrique Kinesis Data Firehose DeliveryToS3.Success pour vous assurer qu'KinesisData Firehose a bien tenté de placer les données dans votre compartiment Amazon S3. Pour plusd'informations, consultez Surveillance d'Kinesis Data Firehose à l'aide de métriques CloudWatch (p. 72).

• Activez la journalisation des erreurs si elle n'est pas déjà activée et vérifiez les échecs de diffusion dansles journaux d'erreur. Pour plus d'informations, consultez Surveillance de Kinesis Data Firehose à l'aided'CloudWatch Logs (p. 86).

• Assurez-vous que le compartiment Amazon S3 spécifié dans votre Flux de transmission Kinesis DataFirehose existe toujours.

• Si la transformation de données avec Lambda est activée, vérifiez que la fonction Lambda spécifiée dansvotre flux de diffusion existe toujours.

• Assurez-vous que le rôle IAM spécifié dans votre Flux de transmission Kinesis Data Firehose a accèsà votre compartiment S3 et à votre fonction Lambda (si la transformation de données est activée). Pourplus d'informations, consultez Attribution de l'accès à une destination Kinesis Data Firehose à AmazonS3 (p. 40).

• Si vous utilisez la transformation de données, assurez-vous que votre fonction Lambda ne renvoiejamais les réponses dont la taille de charge utile dépasse 6 Mo. Pour plus d'informations, consultezTransformation de données Amazon Kinesis Data Firehose.

Données non diffusées à Amazon RedshiftVérifiez ce qui suit si les données ne sont pas diffusées à votre cluster Amazon Redshift.

Les données sont diffusées dans votre compartiment S3 avant leur chargement dans Amazon Redshift. Siles données n'ont pas été diffusées à votre compartiment S3, consultez la rubrique Données non diffuséesà Amazon S3 (p. 117).

• Vérifiez la métrique Kinesis Data Firehose DeliveryToRedshift.Success pour vous assurerqu'Kinesis Data Firehose a tenté de copier les données de votre compartiment S3 vers le cluster AmazonRedshift. Pour plus d'informations, consultez Surveillance d'Kinesis Data Firehose à l'aide de métriquesCloudWatch (p. 72).

• Activez la journalisation des erreurs si elle n'est pas déjà activée et vérifiez les échecs de diffusion dansles journaux d'erreur. Pour plus d'informations, consultez Surveillance de Kinesis Data Firehose à l'aided'CloudWatch Logs (p. 86).

• Vérifiez la table Amazon Redshift STL_CONNECTION_LOG pour voir si Kinesis Data Firehose peuteffectuer des connexions réussies. Dans cette table, vous devriez pouvoir afficher les connexions et leurstatut en fonction d'un nom d'utilisateur. Pour plus d'informations, consultez STL_CONNECTION_LOGdans le Amazon Redshift Database Developer Guide.

• Si le contrôle précédent révèle que les connexions sont établies, vérifiez la table Amazon RedshiftSTL_LOAD_ERRORS pour connaître la raison de l’échec de l'opération COPY. Pour plus d'informations,consultez STL_LOAD_ERRORS dans le Amazon Redshift Database Developer Guide.

• Assurez-vous que la configuration de Amazon Redshift dans votre Flux de transmission Kinesis DataFirehose est exacte et valable.

• Assurez-vous que le rôle IAM spécifié dans votre Flux de transmission Kinesis Data Firehose peutaccéder au compartiment S3 depuis lequel Amazon Redshift copie les données et à votre fonctionLambda pour la transformation de données (si celle-ci est activée). Pour plus d'informations, consultezAttribution de l'accès à une destination Kinesis Data Firehose à Amazon S3 (p. 40).

• Si votre cluster Amazon Redshift se trouve dans un VPC (virtual private cloud), assurez-vous quele cluster autorise l'accès à partir des adresses IP Kinesis Data Firehose. Pour plus d'informations,consultez Attribution de l'accès à une destination Kinesis Data Firehose à Amazon Redshift (p. 42).

118

Page 124: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Données non diffusées à Amazon Elasticsearch Service

• Assurez-vous que le cluster Amazon Redshift est disponible publiquement.• Si vous utilisez la transformation de données, assurez-vous que votre fonction Lambda ne renvoie

jamais les réponses dont la taille de charge utile dépasse 6 Mo. Pour plus d'informations, consultezTransformation de données Amazon Kinesis Data Firehose.

Données non diffusées à Amazon ElasticsearchService

Vérifiez ce qui suit si les données ne sont pas diffusées à votre domaine Elasticsearch.

Les données peuvent être sauvegardées dans votre compartiment Amazon S3 simultanément. Si lesdonnées n'ont pas été diffusées à votre compartiment S3, consultez la rubrique Données non diffusées àAmazon S3 (p. 117).

• Vérifiez les métriques Kinesis Data Firehose IncomingBytes et IncomingRecords pour vousassurer que les données sont correctement diffusées dans votre Flux de transmission Kinesis DataFirehose. Pour plus d'informations, consultez Surveillance d'Kinesis Data Firehose à l'aide de métriquesCloudWatch (p. 72).

• Si la transformation de données avec Lambda est activée, vérifiez la métrique Kinesis Data FirehoseExecuteProcessingSuccess pour vous assurer qu'Kinesis Data Firehose a tenté d'appeler votrefonction Lambda. Pour plus d'informations, consultez Surveillance d'Kinesis Data Firehose à l'aide demétriques CloudWatch (p. 72).

• Vérifiez la métrique Kinesis Data Firehose DeliveryToElasticsearch.Success pour vous assurerqu'Kinesis Data Firehose a bien tenté d'indexer les données dans le cluster Amazon ES. Pour plusd'informations, consultez Surveillance d'Kinesis Data Firehose à l'aide de métriques CloudWatch (p. 72).

• Activez la journalisation des erreurs si elle n'est pas déjà activée et vérifiez les échecs de diffusion dansles journaux d'erreur. Pour plus d'informations, consultez Surveillance de Kinesis Data Firehose à l'aided'CloudWatch Logs (p. 86).

• Assurez-vous que la configuration Amazon ES dans votre flux de diffusion est exacte et valide.• Si la transformation de données avec Lambda est activée, vérifiez que la fonction Lambda spécifiée dans

votre flux de diffusion existe toujours.• Assurez-vous que le rôle IAM spécifié dans votre flux de diffusion peut accéder à votre cluster Amazon

ES et à votre fonction Lambda (si la transformation de données est activée). Pour plus d'informations,consultez Accorder à Kinesis Data Firehose l'accès à une destination Amazon ES publique (p. 44).

• Si vous utilisez la transformation de données, assurez-vous que votre fonction Lambda ne renvoiejamais les réponses dont la taille de charge utile dépasse 6 Mo. Pour plus d'informations, consultezTransformation de données Amazon Kinesis Data Firehose.

Données non transmises à SplunkLisez les explications suivantes si les données ne sont pas transmises à votre point de terminaison Splunk.

• Si votre plateforme Splunk se trouve dans un VPC, assurez-vous que Kinesis Data Firehose puisse yaccéder. Pour plus d'informations, consultez Accès à Splunk dans un VPC.

• Si vous utilisez un équilibreur de charge AWS, assurez-vous qu'il s'agit d'un Equilibreur de chargeclassique. Kinesis Data Firehose ne prend en charge ni Application Load Balancers ni Équilibreurs decharge du réseau. En outre, activez les sessions permanentes basées sur la durée avec l'expiration ducookie désactivée. Pour en savoir plus sur la façon de procéder, consultez le document Permanence desession basée sur la durée.

119

Page 125: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Flux de diffusion non disponible en tant que cible d'une

action CloudWatch Logs, CloudWatch Events ou AWS IoT

• Passez en revue les exigences de la plate-forme Splunk. Le module complémentaire Splunk pour KinesisData Firehose nécessite la version 6.6.X ou ultérieure de la plate-forme Splunk. Pour plus d'informations,consultez Module complémentaire Splunk pour Amazon Kinesis Firehose.

• Si vous avez un proxy (Elastic Load Balancing ou autre) entre Kinesis Data Firehose et le nœud HEC,(HTTP Event Collector), vous devez activer les sessions permantentes pour prendre en charge lesaccusés de réception HEC.

• Vérifiez que vous utilisez bien un jeton HEC valide.• Assurez-vous que le jeton HEC est activé. Voir Activer et désactiver les jetons Event Collector.• Vérifiez si les données que vous envoyez à Splunk sont correctement formatées. Pour plus

d'informations, consultez Format des événements pour HTTP Event Collector.• Assurez-vous que le jeton HEC et l'événement d'entrée sont configurés avec un index valide.• Si un chargement sur Splunk échoue en raison d'une erreur de serveur sur le nœud HEC, la demande

fait automatiquement l'objet d'une nouvelle tentative. Si toutes les tentatives échouent, les données sontsauvegardées dans Amazon S3. Vérifiez si vos données figurent dans Amazon S3, ce qui indiquerait unéchec de ce type.

• Vérifiez que vous avez bien activé l'accusé de réception indexeur sur votre jeton HEC. Pour plusd'informations, consultez Activer l'accusé de réception indexeur.

• Augmentez la valeur HECAcknowledgmentTimeoutInSeconds dans la configuration de votredestination Splunk sur votre flux de diffusion Kinesis Data Firehose.

• Augmentez la valeur de DurationInSeconds sous RetryOptions dans la configuration de votredestination Splunk sur votre flux de diffusion Kinesis Data Firehose.

• Vérifiez l'état de votre HEC.• Si vous utilisez la transformation de données, assurez-vous que votre fonction Lambda ne renvoie

jamais les réponses dont la taille de charge utile dépasse 6 Mo. Pour plus d'informations, consultezTransformation de données Amazon Kinesis Data Firehose.

• Assurez-vous que le paramètre Splunk nommé ackIdleCleanup est défini sur true. Il est défini surfalse par défaut. Pour définir ce paramètre sur true, procédez comme suit :• Pour un déploiement Splunk Cloud géré, soumettez une demande à l'aide du portail de support

Splunk. Dans ce cas, demandez au support de Splunk d'activer le collecteur d'événements HTTP,définissez ackIdleCleanup sur true dans inputs.conf, et créez ou modifiez un équilibreur decharge à utiliser avec ce module complémentaire.

• Pour un déploiement Splunk Enterprise distribué, définissez le paramètre ackIdleCleanup sur truedans le fichier inputs.conf. Pour les utilisateurs *nix, ce fichier se trouve sous $SPLUNK_HOME/etc/apps/splunk_httpinput/local/. Pour les utilisateurs Windows, il est sous %SPLUNK_HOME%\etc\apps\splunk_httpinput\local\.

• Pour un déploiement Splunk Enterprise à instance unique, définissez le paramètre ackIdleCleanupsur true dans le fichier inputs.conf. Pour les utilisateurs *nix, ce fichier se trouve sous$SPLUNK_HOME/etc/apps/splunk_httpinput/local/. Pour les utilisateurs Windows, il est sous%SPLUNK_HOME%\etc\apps\splunk_httpinput\local\.

• Consultez Troubleshoot the Splunk Add-on for Amazon Kinesis Firehose.

Flux de diffusion non disponible en tant que cibled'une action CloudWatch Logs, CloudWatch Eventsou AWS IoT

Certains services AWS peuvent uniquement envoyer des messages et événements à un flux de diffusionKinesis Data Firehose se trouvant dans la même région AWS. Vérifiez que votre flux de diffusion KinesisData Firehose est situé dans la même région que vos autres services.

120

Page 126: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Augmentation ou non-émission dela métrique d'actualité des données

Augmentation ou non-émission de la métriqued'actualité des données

L'actualité des données évalue la « fraîcheur » de vos données dans le flux de transmission. Il s'agitde l'âge de l'enregistrement de données le plus ancien dans le flux de transmission, mesuré à partir dumoment où les données Kinesis Data Firehose ont été ingérées jusqu'au moment présent. Kinesis DataFirehose fournit des métriques que vous pouvez utiliser pour surveiller l'actualité des données. Pouridentifier la métrique d'actualité des données pour une destination spécifique, consultez the section called“Surveillance avec les métriques de CloudWatch” (p. 72).

Si vous activez la sauvegarde pour tous les événements ou tous les documents, surveillez deux métriquesd'actualité des données distinctes : l'une pour la destination principale et l'autre pour la sauvegarde.

Si la métrique d'actualité des données n'est pas émise, cela signifie qu'aucune remise active n'a lieu pourle flux de transmission. Ce cas de figure se présente lorsque la livraison des données est complètementbloquée ou lorsqu'il n'y a pas de données entrantes.

Si la métrique d'actualité des données augmente constamment, cela signifie que la livraison des donnéesprend du retard. Plusieurs raisons sont possibles.

• La destination ne parvient pas à gérer le taux de livraison. Si Kinesis Data Firehose rencontre deserreurs transitoires dues à un trafic élevé, la livraison peut prendre du retard. Cela peut se produirepour des destinations autres qu'Amazon S3 (comme Amazon Elasticsearch Service, Amazon Redshiftou Splunk). Assurez-vous que la destination dispose de suffisamment de capacité pour gérer le traficentrant.

• La destination est lente. La livraison des données peut prendre du retard si Kinesis Data Firehose faitl'objet d'une latence élevée. Surveillez la métrique de latence de la destination.

• La fonction Lambda est lente. Dans ce cas, le débit de diffusion des données peut être inférieur audébit d'ingestion pour le flux de diffusion. Si possible, améliorez l'efficacité de la fonction Lambda. Parexemple, si la fonction effectue des E/S réseau, utilisez plusieurs threads ou des E/S asynchrones pouraccroître le parallélisme. Envisagez également d'augmenter la taille de la mémoire de la fonction Lambdaafin que l'allocation d'UC puisse croître en conséquence. Ces modifications peuvent entraîner des appelsLambda plus rapides. Pour plus d'informations sur la configuration des fonctions Lambda, consultezConfiguration des fonctions AWS Lambda.

• Des échecs affectent la livraison des données. Pour plus d'informations sur le suivi des erreurs viaAmazon CloudWatch Logs, consultez the section called “Surveillance avec CloudWatch Logs” (p. 86).

• Si la source de données du flux de transmission est un flux de données Kinesis, des limitations peuventse produire. Vérifiez les métriques ThrottledGetRecords, ThrottledGetShardIterator etThrottledDescribeStream. Si plusieurs consommateurs sont associés au flux de données Kinesis,tenez compte des points suivants :• Si les métriques ThrottledGetRecords et ThrottledGetShardIterator sont élevées, nous

vous recommandons d'augmenter le nombre de partitions provisionnées pour le flux de données.• Si la métrique ThrottledDescribeStream est élevée, nous vous recommandons d'ajouter

l'autorisation kinesis:listshards au rôle configuré dans KinesisStreamSourceConfiguration.• La mise en mémoire tampon est insuffisante pour la destination. Dans ce cas, le nombre d'aller-retour

effectués par Kinesis Data Firehose vers la destination peut augmenter et entraîner ainsi un retardde livraison. Pensez à augmenter la valeur des indicateurs de mise en mémoire tampon. Pour plusd'informations, consultez BufferingHints.

• Une durée élevée configurée pour les nouvelles tentatives peut entraîner un retard de livraison lorsqueles erreurs sont fréquentes. Envisagez de réduire cette durée. En outre, surveillez les erreurs et essayezde les corriger. Pour plus d'informations sur le suivi des erreurs via Amazon CloudWatch Logs, consultezthe section called “Surveillance avec CloudWatch Logs” (p. 86).

• Si la destination est Splunk et que la métrique DeliveryToSplunk.DataFreshness est élevée,mais que DeliveryToSplunk.Success semble correct, le cluster Splunk est peut-être occupé.

121

Page 127: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Échec de la conversion du format

d'enregistrement vers Apache Parquet

Libérez le cluster Splunk si possible. Vous pouvez également contacter AWS Support et demander uneaugmentation du nombre de canaux utilisés par Kinesis Data Firehose pour communiquer avec le clusterSplunk.

Échec de la conversion du format d'enregistrementvers Apache Parquet

Cela se produit si vous prenez des données DynamoDB qui incluent le type Set, que vous les diffusez viaLambda vers un flux de diffusion et que vous utilisez un Catalogue de données AWS Glue pour convertir leformat d'enregistrement en Apache Parquet.

Lorsque l’analyseur AWS Glue indexe les types de données DynamoDBdéfinis (StringSet,NumberSet et BinarySet), il les stocke dans le catalogue de données respectivement en tant queSET<STRING>, SET<BIGINT> et SET<BINARY>. Cependant, pour qu'Kinesis Data Firehose convertisseles enregistrements de données au format Apache Parquet, il nécessite des types de données ApacheHive. Les types définis n’étant pas des types de données Apache Hive valides, la conversion échoue. Pourque la conversion fonctionne, mettez à jour le catalogue de données avec les types de données ApacheHive. Pour cela, remplacez set par array dans le catalogue de données.

Pour modifier un ou plusieurs types de données de set en array dans un catalogue de donnéesAWS Glue

1. Connectez-vous à la AWS Management Console et ouvrez la console AWS Glue à l'adresse https://console.aws.amazon.com/glue/.

2. Dans le volet de gauche, sous l'en-tête Data catalog (Catalogue de données) choisissez Tables.3. Dans la liste des tables, choisissez le nom de la table dans laquelle vous devez modifier un ou

plusieurs types de données. Vous accédez alors à la page des détails de la table.4. Choisissez le bouton Edit schema dans le coin supérieur droit de la page des détails.5. Dans la colonne Data type (Type de données), choisissez le premier type de données set.6. Dans la liste déroulante Column type (Type de colonne) remplacez le type set par array.7. Dans le champ ArraySchema entrez array<string>, array<int> ou array<binary>, selon le

type de données approprié pour votre scénario.8. Choisissez Update.9. Répétez les étapes précédentes pour convertir d'autres types set en types array.10. Choisissez Save.

Les données n'arrivent pas à destination malgré debonnes métriques

S'il n'existe aucun problème d'ingestion de données et que les métriques émises pour le flux detransmission semblent appropriées, mais que vous ne voyez pas les données à la destination, vérifiez lalogique du lecteur. Assurez-vous que le lecteur analyse correctement toutes les données.

122

Page 128: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:

Quota Amazon Kinesis Data FirehoseAmazon Kinesis Data Firehose présente les quotas suivants :

• Par défaut, chaque compte peut avoir jusqu'à 50 Flux de transmission Kinesis Data Firehose parrégion. Si vous dépassez ce nombre, un appel de CreateDeliveryStream entraîne une exceptionLimitExceededException. Pour augmenter ce quota, utilisez les Quotas de service, s'ils sontdisponibles dans votre région. Pour plus d'informations sur l'utilisation de Quotas de service, consultez lasection relative à la demande d'augmentation de quota. Si les Quotas de service ne sont pas disponiblesdans votre région, utilisez le Formulaire de limites d'Amazon Kinesis Data Firehose pour demander uneaugmentation de limite.

• Lorsque Direct PUT est configuré comme source de données, chaque Flux de transmission Kinesis DataFirehose fournit les quotas associés suivants pour les demandes PutRecord et PutRecordBatch :• Pour USA Est (Virginie du Nord), USA Ouest (Oregon), Europe (Irlande) : 5 000 enregistrements/

seconde, 2 000 requêtes/seconde et 5 MiO/seconde.• Pour USA Est (Ohio), USA Ouest (Californie du Nord), AWS GovCloud (US-East), AWS GovCloud

(US-West), Asie-Pacifique (Hong Kong), Asie-Pacifique (Mumbai), Asie-Pacifique (Séoul), Asie-Pacifique (Singapour), Asie-Pacifique (Sydney), Asie-Pacifique (Tokyo), Canada (Centre), Europe(Francfort), Europe (Londres), Europe (Paris), Europe (Stockholm), Moyen-Orient (Bahreïn),Amérique du Sud (São Paulo), Afrique (Le Cap), et UE (Milan): 1 000 enregistrements/seconde, 1000 demandes/seconde et 1 mib/seconde.

Pour demander une augmentation du quota, remplissez le Formulaire de limites d'Amazon Kinesis DataFirehose. Les trois quotas évoluent proportionnellement. Par exemple, si vous augmentez le quotade débit de USA Est (Virginie du Nord), USA Ouest (Oregon) ou Europe (Irlande) de 10 Mio/seconde,les deux autres quotas vont augmenter de 4 000 transactions/seconde et de 10 000 enregistrements/seconde.

Important

Si le quota augmenté est bien supérieur au trafic en cours d'exécution, cela entraîne la diffusionde petits lots aux destinations. Ce processus est inefficace et peut s'avérer coûteux pour lesservices de destination. Assurez-vous d'augmenter le quota appliqué de manière à le fairecorrespondre au trafic en cours d'exécution et de l'augmenter en fonction du trafic.

Note

Si Kinesis Data Streams est configuré en tant que source de données, cette quota ne s'appliquepas et Kinesis Data Firehose réalise des mises à l'échelle ascendantes et descendantes sanslimite.

• Chaque Flux de transmission Kinesis Data Firehose stocke les enregistrements de données pendant24 heures maximum au cas où la destination de livraison n'est pas disponible.

• La taille maximale d'un enregistrement envoyé à Kinesis Data Firehose, avant l'encodage base64, est de1 000 Kio.

• L'opération PutRecordBatch peut traiter jusqu'à 500 enregistrements ou 4 Mio par appel, la plus petite deces valeurs s'appliquant. Ce quota ne peut pas être modifié.

• Les opérations suivantes peuvent fournir jusqu'à cinq appels par seconde : , , , , , , , , , .CreateDeliveryStream, DeleteDeliveryStream, DescribeDeliveryStream,ListDeliveryStreams, UpdateDestination, TagDeliveryStream, UntagDeliveryStream,ListTagsForDeliveryStream, StartDeliveryStreamEncryption,StopDeliveryStreamEncryption.

• La taille des tampons va de 1Mio à 128 Mio pour la Amazon S3 livraison. Pour Amazon ElasticsearchService (Amazon ES), ils vont de 1 Mio à 100 Mio. Pour le traitement de AWS Lambda vous pouvez

123

Page 129: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:

définir un conseil de mise en mémoire tampon entre 1 Mio et 3 Mio à l'aide du paramètre de processeurBufferSizeInMBs. Le seuil de taille est appliqué à la mémoire tampon avant la compression. Cesoptions sont traitées comme des conseils. Kinesis Data Firehose peut choisir d'utiliser d'autres valeursquand elles sont optimales.

• Les intervalles de temps tampon vont de 60 à 900 secondes.• Pour une diffusion de Kinesis Data Firehose vers Amazon Redshift, seuls les clusters Amazon Redshift

accessibles publiquement sont pris en charge.• La plage de durée de nouvelle tentative va de 0 à 7 200 secondes pour une diffusion Amazon Redshift et

Amazon ES.• Kinesis Data Firehose prend en charge les versions Elasticsearch 1.5, 2.3, 5.1, 5.3, 5.5, 5.6, ainsi que

toutes les versions 6.* et 7.*.• Lorsque la destination est Amazon S3, Amazon Redshift ou Amazon ES, Kinesis Data Firehose autorise

jusqu’à 5 appels Lambda exceptionnels par partition. Pour Splunk, le quota est de 10 appels Lambdaexceptionnels par partition.

• Vous pouvez utiliser une clé CMK de type CUSTOMER_MANAGED_CMK pour chiffrer jusqu'à 500 fluxde transmission.

124

Page 130: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Format des demandes

Annexe -Spécifications de demandeet de réponse HTTP EndpointDelivery

Pour que Kinesis Data Firehose puisse livrer des données aux points de terminaison HTTP personnalisés,ces points de terminaison doivent accepter les demandes et envoyer des réponses à l’aide de certainsformats de demande et de réponse Kinesis Data Firehose. Cette section décrit les spécifications deformat des demandes HTTP que le service Kinesis Data Firehose envoie aux points de terminaison HTTPpersonnalisés, ainsi que les spécifications de format des réponses HTTP attendues par le service KinesisData Firehose. Les points de terminaison HTTP disposent de 3 minutes pour répondre à une demandeavant que Kinesis Data Firehose n’expire cette demande. Kinesis Data Firehose traite les réponses qui nerespectent pas le format approprié comme des échecs de livraison.

Rubriques• Format des demandes (p. 125)• Format de la réponse (p. 128)• Examples (p. 129)

Format des demandesParamètres du chemin et de l’URL

Ceux-ci sont configurés directement par vous dans le cadre d’un champ d’URL unique. Kinesis DataFirehose les envoie comme configuré sans modification. Seules les destinations https sont prises encharge. Les restrictions d’URL sont appliquées lors de la configuration du flux de diffusion.

En-têtes HTTP -Version du protocole X-Amz-Firehose

Cet en-tête est utilisé pour indiquer la version des formats de demande/réponse. Actuellement, la seuleversion est 1.0.

En-têtes HTTP -ID de demande X-Amz-Firehose

La valeur de cet en-tête est un GUID opaque qui peut être utilisé à des fins de débogage et dedéduplication. Les implémentations de point de terminaison doivent consigner la valeur de cet en-têtesi possible, pour les demandes réussies et celles qui ont échoué. L’ID de demande est conservé entreplusieurs tentatives de la même demande.

En-têtes HTTP -Type de contenu

La valeur de l’en-tête Content-Type est toujours application/json.En-têtes HTTP -Encodage de contenu

Un flux de diffusion Kinesis Data Firehose peut être configuré pour utiliser GZIP pour compresserle corps lors de l’envoi de demandes. Lorsque cette compression est activée, la valeur de l’en-tête

125

Page 131: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Format des demandes

Content-Encoding est définie sur gzip, conformément à la pratique standard. Si la compression n’estpas activée, l’en-tête Content-Encoding est complètement absent.

En-têtes HTTP -Contenu-Longueur

Ceci est utilisé de la manière standard.En-têtes HTTP -X-Amz-Firehose-Source-Arn :

L’ARN du flux de diffusion Kinesis Data Firehose représenté au format de chaîne ASCII. L’ARNcode la région , l’ID de compte AWS et le nom du flux. Par exemple : arn:aws:firehose:us-east-1:123456789:deliverystream/testStream.

En-têtes HTTP -Clé d’accès X-Amz-Firehose

Cet en-tête contient une clé d’API ou d’autres informations d’identification. Vous avez la possibilité decréer ou de mettre à jour la clé API (ou jeton d’autorisation) lors de la création ou de la mise à jour devotre flux de diffusion. Kinesis Data Firehose limite la taille de la clé d’accès à 4 096 octets. KinesisData Firehose ne tente pas d’interpréter cette clé de quelque manière que ce soit. La clé configuréeest copiée mot pour mot dans la valeur de cet en-tête.

Le contenu peut être arbitraire et peut potentiellement représenter un jeton JWT ou une cléACCESS_KEY. Si un point de terminaison nécessite des informations d’identification à champsmultiples (par exemple, nom d’utilisateur et mot de passe), les valeurs de tous les champs doivent êtrestockées ensemble dans une seule clé d’accès dans un format que le point de terminaison comprend(JSON ou CSV). Ce champ peut être encodé en base 64 si le contenu d’origine est binaire. KinesisData Firehose ne modifie pas et/ou n’encode pas la valeur configurée et utilise le contenu tel qu’il est.

En-têtes HTTP -X-Amz-Firehose-Common-Attributes

Cet en-tête contient les attributs communs (métadonnées) qui se rapportent à la demande entière et/ou à tous les enregistrements de la demande. Ceux-ci sont configurés directement par vous lors dela création d’un flux de diffusion. La valeur de cet attribut est codée en tant qu’objet JSON avec leschéma suivant :

"$schema": http://json-schema.org/draft-07/schema#

properties: commonAttributes: type: object minProperties: 0 maxProperties: 50 patternProperties: "^.{1,256}$": type: string minLength: 0 maxLength: 1024

Voici un exemple :

"commonAttributes": { "deployment -context": "pre-prod-gamma", "device-types": "" }

Carrosserie -Taille max.

La taille maximale du corps est configurée par vous et peut atteindre un maximum de 64 Mio, avant lacompression.

126

Page 132: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Format des demandes

Corps -Schéma

Le corps contient un seul document JSON avec le schéma JSON suivant (écrit en YAML) :

"$schema": http://json-schema.org/draft-07/schema#

title: FirehoseCustomHttpsEndpointRequestdescription: > The request body that the Firehose service sends to custom HTTPS endpoints.type: objectproperties: requestId: description: > Same as the value in the X-Amz-Firehose-Request-Id header, duplicated here for convenience. type: string timestamp: description: > The timestamp (milliseconds since epoch) at which the Firehose server generated this request. type: integer records: description: > The actual records of the Delivery Stream, carrying the customer data. type: array minItems: 1 maxItems: 10000 items: type: object properties: data: description: > The data of this record, in Base64. Note that empty records are permitted in Firehose. The maximum allowed size of the data, before Base64 encoding, is 1024000 bytes; the maximum length of this field is therefore 1365336 chars. type: string minLength: 0 maxLength: 1365336

required: - requestId - records

Voici un exemple :

{ "requestId": "ed4acda5-034f-9f42-bba1-f29aea6d7d8f", "timestamp": 1578090901599 "records": [ { "data": "aGVsbG8=" }, { "data": "aGVsbG8gd29ybGQ=" } ]}

127

Page 133: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Format de la réponse

Format de la réponseComportement par défaut sur l’erreur

Si une réponse ne répond pas aux exigences ci-dessous, le serveur Kinesis Firehose la traite commesi elle avait un code d’état 500 sans corps.

Code d'état

Le code de statut HTTP DOIT être dans la plage 2XX, 4XX ou 5XX.

Le serveur Kinesis Data Firehose ne suit PAS les redirections (codes d’état 3XX). Seul le code deréponse 200 est considéré comme une livraison réussie des enregistrements au HTTP/EP. Le code deréponse 413 (taille dépassée) est considéré comme un échec permanent et le lot d’enregistrementsn’est pas envoyé au compartiment d’erreurs s’il est configuré. Tous les autres codes de réponse sontconsidérés comme des erreurs récupérables et sont soumis à un algorithme de nouvelle tentative deback-off expliqué plus loin.

En-têtes -Type de contenu

Le seul type de contenu acceptable est application/json.En-têtes HTTP -Encodage de contenu

Le codage de contenu NE DOIT PAS être utilisé. Le corps DOIT être décompressé.En-têtes HTTP -Contenu-Longueur

L’en-tête Content-Length DOIT être présent si la réponse a un corps.Carrosserie -Taille max.

Le corps de la réponse doit avoir une taille inférieure ou égale à 1 Mio.

"$schema": http://json-schema.org/draft-07/schema#

title: FirehoseCustomHttpsEndpointResponse

description: > The response body that the Firehose service sends to custom HTTPS endpoints.type: objectproperties: requestId: description: > Must match the requestId in the request. type: string timestamp: description: > The timestamp (milliseconds since epoch) at which the server processed this request. type: integer errorMessage: description: > For failed requests, a message explaining the failure. If a request fails after exhausting all retries, the last Instance of the error message is copied to error output S3 bucket if configured.

128

Page 134: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Examples

type: string minLength: 0 maxLength: 8192required: - requestId - timestamp

Voici un exemple :

Failure Case (HTTP Response Code 4xx or 5xx){ "requestId": "ed4acda5-034f-9f42-bba1-f29aea6d7d8f", "timestamp": "1578090903599", "errorMessage": "Unable to deliver records due to unknown error."}Success case (HTTP Response Code 200){ "requestId": "ed4acda5-034f-9f42-bba1-f29aea6d7d8f", "timestamp": 1578090903599}

Gestion des réponses d’erreur

Dans tous les cas d’erreur, le serveur Kinesis Data Firehose tente à nouveau de livrer le même lotd’enregistrements à l’aide d’un algorithme d’interruption exponentielle. Les nouvelles tentatives sontannulées à l’aide d’un temps d’interruption initial (1 seconde) avec un facteur de gigue de (15 %) etchaque nouvelle tentative ultérieure est annulée à l’aide de la formule (temps d’interruption initial *(multiplicateur(2) ^ retry_count)) avec une gigue ajoutée. Le temps d’interruption est plafonné par unintervalle maximum de 2 minutes. Par exemple, sur la « n »-e nouvelle tentative, le temps de retour est= MAX(120 sec, (1 * (2^n)) * aléatoire(0,85, 1,15).

Les paramètres spécifiés dans l’équation précédente sont sujets à modification. Reportez-vousà la documentation AWS Firehose pour connaître le temps d’interruption initial exact, le tempsd’interruption maximal, le multiplicateur et les pourcentages de gigue utilisés dans l’algorithmed’interruption exponentielle.

À chaque nouvelle tentative suivante, la clé d’accès et/ou la destination à laquelle les enregistrementssont remis peut changer en fonction de la configuration mise à jour du flux de diffusion. Le serviceKinesis Data Firehose utilise le même request-id lors des nouvelles tentatives de la manière la plusefficace possible. Cette dernière fonctionnalité peut être utilisée à des fins de déduplication par leserveur de points de terminaison HTTP. Si la demande n’est toujours pas remise après le délaimaximal autorisé (en fonction de la configuration du flux de diffusion), le lot d’enregistrements peutéventuellement être remis à un compartiment d’erreurs en fonction de la configuration du flux.

ExamplesExemple de demande provenant de CWLog :

{ "requestId": "ed4acda5-034f-9f42-bba1-f29aea6d7d8f", "timestamp": 1578090901599, "records": [ { "data": {

129

Page 135: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:Examples

"messageType": "DATA_MESSAGE", "owner": "123456789012", "logGroup": "log_group_name", "logStream": "log_stream_name", "subscriptionFilters": [ "subscription_filter_name" ], "logEvents": [ { "id": "0123456789012345678901234567890123456789012345", "timestamp": 1510109208016, "message": "log message 1" }, { "id": "0123456789012345678901234567890123456789012345", "timestamp": 1510109208017, "message": "log message 2" } ] } } ]}

130

Page 136: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:

Historique du documentLe tableau suivant décrit les modifications importantes apportées à la documentation Amazon Kinesis DataFirehose.

Modifier Description Date de modification

Ajout d'une rubriquesur les préfixespersonnalisés.

Ajout d'une rubrique sur les expressions que vous pouvezutiliser lors de la création d'un préfixe personnalisépour les données livrées à Amazon S3. Voir Préfixespersonnalisés Amazon S3 (p. 99).

20 décembre 2018

Ajout d'un nouveaudidacticiel KinesisData Firehose

Ajout d'un didacticiel qui montre comment envoyer desjournaux de flux Amazon VPC à Splunk via Kinesis DataFirehose. Voir Didacticiel : envoi de journaux de flux VPCà Splunk avec Amazon Kinesis Data Firehose (p. 109).

30 octobre 2018

Ajout de quatrenouvelles régionsKinesis DataFirehose

Ajout de Paris, Mumbai, Sao Paulo et Londres. Pour plusd'informations, consultez Quota Amazon Kinesis DataFirehose (p. 123).

27 juin 2018

Ajout de deuxnouvelles régionsKinesis DataFirehose

Ajout de Séoul et Montréal. Pour plus d'informations,consultez Quota Amazon Kinesis Data Firehose (p. 123).

13 juin 2018

Nouvellefonctionnalité : fluxKinesis en tant quesource

Ajout des flux Kinesis en tant que source potentielled'enregistrements pour un flux de diffusion Firehose. Pourplus d'informations, consultez Nom et source (p. 5).

18 août 2017

Mise à jour de ladocumentation de laconsole

L'assistant de création de flux de diffusion a été mis àjour. Pour en savoir plus, consultez Création d'un flux dediffusion Amazon Kinesis Data Firehose (p. 5).

19 juillet 2017

Transformation denouvelles données

Vous pouvez configurer Kinesis Data Firehose pourtransformer vos données avant de les diffuser. Pour plusd'informations, consultez Transformation de donnéesAmazon Kinesis Data Firehose (p. 58).

19 décembre 2016

Nouvelle tentativeCOPY AmazonRedshift

Vous pouvez configurer Kinesis Data Firehose pourrelancer une commande COPY dans votre clusterAmazon Redshift en cas d'échec. Pour de plus amplesinformations, veuillez consulter Création d'un flux dediffusion Amazon Kinesis Data Firehose (p. 5), Diffusiondes données Amazon Kinesis Data Firehose (p. 66) etQuota Amazon Kinesis Data Firehose (p. 123).

18 mai 2016

Nouvelle destinationKinesis DataFirehose, AmazonElasticsearch Service

Vous pouvez créer un flux de diffusion avec AmazonElasticsearch Service comme destination. Pourde plus amples informations, veuillez consulterCréation d'un flux de diffusion Amazon Kinesis DataFirehose (p. 5), Diffusion des données Amazon KinesisData Firehose (p. 66) et Accorder à Kinesis Data Firehosel'accès à une destination Amazon ES publique (p. 44).

19 avril 2016

131

Page 137: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:

Modifier Description Date de modification

Nouvelles métriquesCloudWatchet fonctionsde dépannageaméliorées

Surveillance des Amazon Kinesis Data Firehose (p. 72)mis à jour et Dépannage de Amazon Kinesis DataFirehose (p. 117).

19 avril 2016

Nouvel agent Kinesisamélioré

Mis à jour Écriture dans Kinesis Data Firehose à l'aide del'agent Kinesis (p. 23).

11 avril 2016

Nouveaux agentsKinesis

Ajouté Écriture dans Kinesis Data Firehose à l'aide del'agent Kinesis (p. 23).

2 octobre 2015

Première version Version initiale du Amazon Kinesis Data Firehose Guidedu développeur.

4 octobre 2015

132

Page 138: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:

Glossaire AWSPour la terminologie AWS la plus récente, consultez le Glossaire AWS dans le document AWS GeneralReference.

133

Page 139: Amazon Kinesis Data Firehose - AWS Documentation · Lorsque vous vous inscrivez à Amazon Web Services (AWS), votre compte AWS est automatiquement inscrit à tous les services d'AWS,

Amazon Kinesis Data Firehose Manuel du développeur:

Si nous fournissons une traduction de la version anglaise du guide, la version anglaise du guide aurapréséance en cas de contradiction. La traduction sera une traduction automatique.

cxxxiv