

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

# Exemples de création et d'utilisation d'un service géré pour les applications Apache Flink
<a name="examples-collapsibles"></a>

Cette section fournit des exemples de création et d’utilisation d’applications dans le service géré pour Apache Flink. Ils incluent des exemples de code et des step-by-step instructions pour vous aider à créer un service géré pour les applications Apache Flink et à tester vos résultats.

Avant d’explorer ces exemples, nous vous recommandons de consulter les éléments suivants : 
+ [Comment ça marche](how-it-works.md)
+ [Tutoriel : Commencez à utiliser l' DataStream API dans Managed Service pour Apache Flink](getting-started.md)

**Note**  
Ces exemples supposent que vous utilisez la région USA Est (Virginie du Nord) (us-east-1). Si vous utilisez une autre région, mettez à jour le code de votre application, les commandes et les rôles IAM de manière appropriée.

**Topics**
+ [Exemples de Java pour le service géré pour Apache Flink](examples-new-java.md)
+ [Exemples de Python pour le service géré pour Apache Flink](examples-new-python.md)
+ [Exemples Scala pour le service géré pour Apache Flink](examples-new-scala.md)

# Exemples de Java pour le service géré pour Apache Flink
<a name="examples-new-java"></a>

Les exemples suivants montrent comment créer des applications écrites en Java.



**Note**  
La plupart des exemples sont conçus pour s'exécuter à la fois localement, sur votre machine de développement et sur l'IDE de votre choix, et sur Amazon Managed Service pour Apache Flink. Ils montrent les mécanismes que vous pouvez utiliser pour transmettre les paramètres de l'application et comment définir correctement la dépendance pour exécuter l'application dans les deux environnements sans modification.

## Améliorez les performances de sérialisation en définissant des paramètres personnalisés TypeInfo
<a name="improving-serialization-performance-java"></a>

Cet exemple montre comment définir la personnalisation TypeInfo dans votre enregistrement ou votre objet d'état afin d'éviter que la sérialisation ne revienne à la sérialisation Kryo, moins efficace. Cela est nécessaire, par exemple, lorsque vos objets contiennent un `List` ou`Map`. Pour plus d'informations, consultez la section [Types de données et sérialisation dans la](https://nightlies.apache.org/flink/flink-docs-release-1.20/docs/dev/datastream/fault-tolerance/serialization/types_serialization/#data-types--serialization) documentation d'Apache Flink. L'exemple montre également comment tester si la sérialisation de votre objet revient à la sérialisation Kryo, moins efficace.

Exemple de code : [CustomTypeInfo](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/Serialization/CustomTypeInfo)

## Commencez avec l' DataStream API
<a name="getting-started-datastream-java"></a>

Cet exemple montre une application simple qui lit à partir d'un flux de données Kinesis et écrit dans un autre flux de données Kinesis à l'aide de l'API. `DataStream` L'exemple montre comment configurer le fichier avec les dépendances correctes, créer l'Uber-JAR, puis analyser les paramètres de configuration afin de pouvoir exécuter l'application à la fois localement, dans votre IDE et sur Amazon Managed Service pour Apache Flink.

Exemple de code : [GettingStarted](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/GettingStarted)

## Commencez avec l'API Table et SQL
<a name="getting-started-table-java"></a>

Cet exemple montre une application simple utilisant l'`Table`API et le SQL. Il montre comment intégrer l'`DataStream`API à l'`Table`API ou au SQL dans la même application Java. Il montre également comment utiliser le `DataGen` connecteur pour générer des données de test aléatoires à partir de l'application Flink elle-même, sans nécessiter de générateur de données externe.

Exemple complet : [GettingStartedTable](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/GettingStartedTable)

## Utiliser S3Sink (API) DataStream
<a name="s3-sink-java"></a>

Cet exemple montre comment utiliser les `DataStream` API `FileSink` pour écrire des fichiers JSON dans un compartiment S3.

Exemple de code : [S3Sink](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/S3Sink)

## Utiliser une source Kinesis, des consommateurs standard ou EFO, et un récepteur (API) DataStream
<a name="kinesis-EFO-sink-java"></a>

Cet exemple montre comment configurer une source consommant un flux de données Kinesis, en utilisant le consommateur standard ou EFO, et comment configurer un récepteur pour le flux de données Kinesis.

Exemple de code : [KinesisConnectors](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/KinesisConnectors)

## Utiliser un récepteur Amazon Data Firehose (API) DataStream
<a name="firehose-sink-java"></a>

Cet exemple montre comment envoyer des données à Amazon Data Firehose (anciennement connu sous le nom de Kinesis Data Firehose).

Exemple de code : [KinesisFirehoseSink](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/KinesisFirehoseSink)

## Utilisez le connecteur d'évier Prometheus
<a name="prometheus-sink-java"></a>

Cet exemple illustre l'utilisation du connecteur [récepteur Prometheus](https://nightlies.apache.org/flink/flink-docs-release-1.20/docs/connectors/datastream/prometheus/) pour écrire des données de séries chronologiques dans Prometheus.

Exemple de code : [PrometheusSink](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/PrometheusSink)

## Utiliser des agrégations de fenêtrage (API) DataStream
<a name="windowing-aggregations-java"></a>

Cet exemple illustre quatre types d'agrégation de fenêtrage dans l'`DataStream`API.

1. Fenêtre coulissante basée sur le temps de traitement

1. Fenêtre coulissante basée sur l'heure de l'événement

1. Fenêtre de défilement basée sur le temps de traitement

1. Fenêtre tumbling basée sur l'heure de l'événement

Exemple de code : [Fenêtrage](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/Windowing) 

## Utilisation de métriques personnalisées
<a name="custom-metrics-java"></a>

Cet exemple montre comment ajouter des métriques personnalisées à votre application Flink et les envoyer vers CloudWatch des métriques.

Exemple de code : [CustomMetrics](https://github.com/dzikosc/amazon-managed-service-for-apache-flink-examples/tree/main/java/CustomMetrics)

## Utilisez les fournisseurs de configuration Kafka pour récupérer un keystore et un truststore personnalisés pour les MTL lors de l'exécution
<a name="kafka-keystore-mTLS"></a>

Cet exemple montre comment vous pouvez utiliser les fournisseurs de configuration Kafka pour configurer un keystore et un truststore personnalisés avec des certificats d'authentification mTLS pour le connecteur Kafka. Cette technique vous permet de charger les certificats personnalisés requis depuis Amazon S3 et les secrets à partir du AWS Secrets Manager démarrage de l'application.

Exemple de code : [Kafka-MTLS-KeyStore](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/KafkaConfigProviders/Kafka-mTLS-Keystore-ConfigProviders) - ConfigProviders

## Utilisez les fournisseurs de configuration Kafka pour récupérer les secrets SASL/SCRAM d'authentification lors de l'exécution
<a name="kafka-secrets"></a>

Cet exemple montre comment vous pouvez utiliser les fournisseurs de configuration Kafka pour récupérer les informations d'identification AWS Secrets Manager et télécharger le truststore depuis Amazon S3 afin de configurer l' SASL/SCRAM authentification sur un connecteur Kafka. Cette technique vous permet de charger les certificats personnalisés requis depuis Amazon S3 et les secrets à partir du AWS Secrets Manager démarrage de l'application.

Exemple de code : [Kafka- - SASL\$1SSL ConfigProviders](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/KafkaConfigProviders/Kafka-SASL_SSL-ConfigProviders)

## Utilisez les fournisseurs de configuration Kafka pour récupérer un keystore et un truststore personnalisés pour les MTL lors de l'exécution avec Table API/SQL
<a name="kafka-custom-keystore"></a>

Cet exemple montre comment vous pouvez utiliser les fournisseurs de configuration Kafka dans Table API /SQL pour configurer un keystore et un truststore personnalisés avec des certificats d'authentification mTLS pour le connecteur Kafka. Cette technique vous permet de charger les certificats personnalisés requis depuis Amazon S3 et les secrets à partir du AWS Secrets Manager démarrage de l'application.

Exemple de code : [Kafka-MTLS-KeyStore-SQL](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/KafkaConfigProviders/Kafka-mTLS-Keystore-Sql-ConfigProviders) - ConfigProviders

## Utiliser les sorties latérales pour diviser un flux
<a name="side-output"></a>

Cet exemple montre comment tirer parti des [sorties secondaires](https://nightlies.apache.org/flink/flink-docs-master/docs/dev/datastream/side_output/) dans Apache Flink pour diviser un flux selon des attributs spécifiés. Ce modèle est particulièrement utile lorsque vous essayez d'implémenter le concept de Dead Letter Queues (DLQ) dans des applications de streaming.

Exemple de code : [SideOutputs](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/SideOutputs)

## Utiliser Async I/O pour appeler un point de terminaison externe
<a name="async-i-o"></a>

Cet exemple montre comment utiliser les [E/S asynchrones d'Apache Flink pour appeler un point de](https://nightlies.apache.org/flink/flink-docs-release-1.20/docs/dev/datastream/operators/asyncio/) terminaison externe de manière non bloquante, avec de nouvelles tentatives en cas d'erreur récupérable.

Exemple de code : [AsyncIO](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/java/AsyncIO)

# Exemples de Python pour le service géré pour Apache Flink
<a name="examples-new-python"></a>

Les exemples suivants montrent comment créer des applications écrites en Python.

**Note**  
La plupart des exemples sont conçus pour s'exécuter à la fois localement, sur votre machine de développement et sur l'IDE de votre choix, et sur Amazon Managed Service pour Apache Flink. Ils montrent le mécanisme simple que vous pouvez utiliser pour transmettre les paramètres de l'application et comment définir correctement la dépendance pour exécuter l'application dans les deux environnements sans modification.

**Dépendances du projet**

La plupart PyFlink des exemples nécessitent une ou plusieurs dépendances sous forme de fichiers JAR, par exemple pour les connecteurs Flink. Ces dépendances doivent ensuite être intégrées à l'application lors du déploiement sur Amazon Managed Service pour Apache Flink. 

Les exemples suivants incluent déjà les outils qui vous permettent d'exécuter l'application localement à des fins de développement et de test, et d'empaqueter correctement les dépendances requises. Cet outillage nécessite l'utilisation de Java JDK11 et d'Apache Maven. Reportez-vous au fichier README contenu dans chaque exemple pour les instructions spécifiques.

**Exemples**

## Commencez avec PyFlink
<a name="getting-started-pyflink"></a>

Cet exemple illustre la structure de base d'une PyFlink application utilisant le code SQL intégré au code Python. Ce projet fournit également un squelette pour toute PyFlink application qui inclut des dépendances JAR telles que des connecteurs. La section README fournit des instructions détaillées sur la façon d'exécuter votre application Python localement pour le développement. L'exemple montre également comment inclure une seule dépendance JAR, le connecteur Kinesis SQL dans cet exemple, dans votre PyFlink application.

Exemple de code : [GettingStarted](https://github.com/dzikosc/amazon-managed-service-for-apache-flink-examples/tree/main/python/GettingStarted)

## Ajouter des dépendances Python
<a name="add-python-dependencies"></a>

Cet exemple montre comment ajouter des dépendances Python à votre PyFlink application de la manière la plus générale. Cette méthode fonctionne pour les dépendances simples, comme Boto3, ou pour les dépendances complexes contenant des bibliothèques C telles que. PyArrow

Exemple de code : [PythonDependencies](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/python/PythonDependencies)

## Utiliser des agrégations de fenêtrage (API) DataStream
<a name="windowing-aggregations-python"></a>

Cet exemple illustre quatre types d'agrégation de fenêtrage en SQL intégré dans une application Python.

1. Fenêtre coulissante basée sur le temps de traitement

1. Fenêtre coulissante basée sur l'heure de l'événement

1. Fenêtre de défilement basée sur le temps de traitement

1. Fenêtre tumbling basée sur l'heure de l'événement

Exemple de code : [Fenêtrage](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/python/Windowing)

## Utiliser un évier S3
<a name="s3-sink-python"></a>

Cet exemple montre comment écrire votre sortie sur Amazon S3 sous forme de fichiers JSON, en utilisant le SQL intégré dans une application Python. Vous devez activer le point de contrôle pour que le récepteur S3 puisse écrire et faire pivoter des fichiers vers Amazon S3. 

Exemple de code : [S3Sink](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/python/S3Sink)

## Utiliser une fonction définie par l'utilisateur (UDF)
<a name="UDF-python"></a>

Cet exemple montre comment définir une fonction définie par l'utilisateur, l'implémenter en Python et l'utiliser dans du code SQL exécuté dans une application Python. 

Exemple de code : [UDF](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/python/UDF)

## Utiliser un évier Amazon Data Firehose
<a name="Firehose-sink-python"></a>

Cet exemple montre comment envoyer des données à Amazon Data Firehose à l'aide de SQL. 

Exemple de code : [FirehoseSink](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/python/FirehoseSink)

# Exemples Scala pour le service géré pour Apache Flink
<a name="examples-new-scala"></a>

Les exemples suivants montrent comment créer des applications à l’aide de Scala avec Apache Flink.



## Configuration d'une application en plusieurs étapes
<a name="getting-started-scala"></a>

Cet exemple montre comment configurer une application Flink dans Scala. Il montre comment configurer le projet SBT pour inclure les dépendances et créer l'Uber-JAR. 

Exemple de code : [GettingStarted](https://github.com/aws-samples/amazon-managed-service-for-apache-flink-examples/tree/main/scala/GettingStarted)