

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.

# Résolution des problèmes de développement
<a name="troubleshooting-development"></a>

Cette section contient des informations sur le diagnostic et la résolution des problèmes de développement liés à votre application Managed Service for Apache Flink.

**Topics**
+ [Meilleures pratiques en matière de restauration du système](troubleshooting-system-rollback.md)
+ [Bonnes pratiques de configuration Hudi](troubleshooting-hudi.md)
+ [Graphiques en flamme pour Apache Flink](troubleshooting-update-flamegraphs.md)
+ [Problème lié au fournisseur d'informations d'identification avec le connecteur EFO 1.15.2](troubleshooting-credential-provider.md)
+ [Applications dotées de connecteurs Kinesis non pris en charge](troubleshooting-unsupported-kinesis-connectors.md)
+ [Erreur de compilation : « Impossible de résoudre les dépendances du projet »](troubleshooting-compile.md)
+ [Choix non valide : « kinesisanalyticsv2"](troubleshooting-cli-update.md)
+ [UpdateApplication l'action ne recharge pas le code de l'application](troubleshooting-update.md)
+ [S3 StreamingFileSink FileNotFoundExceptions](troubleshooting-s3sink.md)
+ [FlinkKafkaConsumer problème avec stop with savepoint](troubleshooting-FlinkKafkaConsumer.md)
+ [Flink 1.15 Async Sink Deadlock](troubleshooting-async-deadlock.md)
+ [Le traitement des sources de données Amazon Kinesis est désordonné lors du repartitionnement](troubleshooting-kinesis-data-streams-processing-out-of-order.md)
+ [FAQ et résolution des problèmes liés à l'intégration de modèles vectoriels en temps réel](troubleshooting-blueprints.md)

# Meilleures pratiques en matière de restauration du système
<a name="troubleshooting-system-rollback"></a>

Grâce aux fonctionnalités de restauration automatique du système et de visibilité des opérations d'Amazon Managed Service pour Apache Flink, vous pouvez identifier et résoudre les problèmes liés à vos applications.

## Annulations du système
<a name="troubleshooting-unsupported-kinesis-connectors-error"></a>

Si l'opération de mise à jour ou de dimensionnement de votre application échoue en raison d'une erreur du client, telle qu'un bogue de code ou un problème d'autorisation, Amazon Managed Service pour Apache Flink tente automatiquement de revenir à la version en cours d'exécution précédente si vous avez opté pour cette fonctionnalité. Pour de plus amples informations, veuillez consulter [Activez les annulations du système pour votre application Managed Service for Apache Flink](how-system-rollbacks.md). Si ce retour automatique échoue ou si vous ne vous êtes pas inscrit ou désabonné, votre demande sera enregistrée dans l'`READY`État. Pour mettre à jour votre application, procédez comme suit :   Consultez la console Amazon Managed Service pour Apache Flink ou utilisez l'`DescribeApplicationOperation`API pour voir la description de l'erreur expliquant pourquoi l'opération a échoué.    Pour consulter la pile d'erreurs complète, utilisez les [journaux Cloudwatch](https://docs.aws.amazon.com/managed-flink/latest/java/logging.html).   Les problèmes courants sont les autorisations insuffisantes, les modifications de code incompatibles ou les mauvaises configurations de l'infrastructure. Résolvez le problème sous-jacent.    Utilisez l'`UpdateApplicaton`API pour redéployer la nouvelle version de votre application.    

## Annulation manuelle
<a name="troubleshooting-unsupported-kinesis-connectors-error"></a>

Si l'application ne progresse pas et reste dans un état transitoire pendant une longue période, ou si elle est passée avec succès, mais que vous rencontrez des problèmes en aval`Running`, tels que des erreurs de traitement dans une application Flink mise à jour avec succès, vous pouvez la restaurer manuellement à l'aide de l'API. `RollbackApplication`

1. Appel `RollbackApplication` : cela permettra de revenir à la version en cours d'exécution précédente et de restaurer l'état précédent. 

1. Surveillez l'opération de restauration à l'aide de l'`DescribeApplicationOperation`API.

1. Si la restauration échoue, utilisez les étapes précédentes de restauration du système.

## Visibilité des opérations
<a name="troubleshooting-unsupported-kinesis-connectors-error"></a>

L'`ListApplicationOperations`API affiche l'historique de toutes les opérations du client et du système sur votre application.

1. Obtenez l'*OperationID* de l'opération ayant échoué dans la liste.

1. Appelez `DescribeApplicationOperation` et vérifiez le statut et le *statusDescription*.

1. En cas d'échec d'une opération, la description indique une erreur potentielle à examiner. 

**Bogues courants liés aux codes d'erreur :** utilisez les fonctionnalités de restauration pour revenir à la dernière version fonctionnelle. Corrigez les bogues et réessayez la mise à jour. 

**Problèmes d'autorisation :** utilisez le `DescribeApplicationOperation` pour voir les autorisations requises. Mettez à jour les autorisations de l'application et réessayez. 

**Problèmes liés au service Amazon Managed Service for Apache Flink :** consultez le dossier de support Tableau de bord AWS Health ou ouvrez-le.

# Bonnes pratiques de configuration Hudi
<a name="troubleshooting-hudi"></a>

Pour exécuter les connecteurs Hudi sur le service géré pour Apache Flink, nous recommandons les modifications de configuration suivantes.

Désactiver `hoodie.embed.timeline.server`

Le connecteur Hudi sur Flink configure un serveur de chronologie (TM) intégré au gestionnaire de tâches Flink (JM) pour mettre en cache les métadonnées afin d'améliorer les performances lorsque le parallélisme des tâches est élevé. Nous vous recommandons de désactiver ce serveur intégré sur le service géré pour Apache Flink, car nous désactivons les communications non-Flink entre JM et TM.

Si ce serveur est activé, Hudi Writes essaiera d'abord de se connecter au serveur intégré sur JM, puis recommencera à lire les métadonnées d'Amazon S3. Cela signifie que Hudi subit un délai d'expiration de connexion qui retarde les écritures de Hudi et a un impact sur les performances du service géré pour Apache Flink.

# Graphiques en flamme pour Apache Flink
<a name="troubleshooting-update-flamegraphs"></a>

Les graphiques en flamme sont activés par défaut sur les applications de service géré pour Apache Flink pour les versions qui les prennent en charge. Les graphiques en flamme peuvent affecter les performances de l’application si vous maintenez le graphique ouvert, comme indiqué dans la [documentation de Flink](https://nightlies.apache.org/flink/flink-docs-release-1.15//docs/ops/debugging/flame_graphs/). 

 Si vous souhaitez désactiver les graphiques en flamme pour votre application, créez une demande pour demander qu’il soit désactivé pour l’ARN de votre application. Pour plus d’informations, consultez le [AWS Centre de support](https://console.aws.amazon.com/support/home#/).

# Problème lié au fournisseur d'informations d'identification avec le connecteur EFO 1.15.2
<a name="troubleshooting-credential-provider"></a>

Il existe un [problème connu](https://issues.apache.org/jira/browse/FLINK-29205) lié aux versions du connecteur EFO de Kinesis Data Streams antérieures à la version 1.15.2, dans lesquelles le `FlinkKinesisConsumer` ne respecte pas la configuration du `Credential Provider`. Les configurations valides ne sont pas prises en compte en raison de ce problème, ce qui entraîne l’utilisation du fournisseur d’informations d’identification `AUTO`. Cela peut entraîner un problème lors de l’accès intercompte à Kinesis à l’aide du connecteur EFO.

Pour résoudre cette erreur, utilisez la version 1.15.3 ou ultérieure du connecteur EFO. 

# Applications dotées de connecteurs Kinesis non pris en charge
<a name="troubleshooting-unsupported-kinesis-connectors"></a>

Managed Service for Apache Flink pour Apache Flink version 1.15 ou ultérieure empêchera [automatiquement le démarrage ou la mise à jour des applications si elles utilisent des versions non prises en charge du](https://docs.aws.amazon.com/managed-flink/latest/java/flink-1-15-2.html) connecteur Kinesis (version antérieure à 1.15.2) regroupées dans une application ou des archives (ZIP). JARs 

## Erreur de rejet
<a name="troubleshooting-unsupported-kinesis-connectors-error"></a>

L’erreur suivante s’affichera lorsque vous soumettrez des appels de création/mise à jour d’application via :

```
An error occurred (InvalidArgumentException) when calling the CreateApplication operation: An unsupported Kinesis connector version has been detected in the application. Please update flink-connector-kinesis to any version equal to or newer than 1.15.2.
For more information refer to connector fix: https://issues.apache.org/jira/browse/FLINK-23528
```

## Étapes de correction
<a name="troubleshooting-unsupported-kinesis-connectors-steps-to-remediate"></a>
+ Mettez à jour la dépendance de l’application sur `flink-connector-kinesis`. Si vous utilisez Maven comme outil de création de projet, suivez [Mettre à jour une dépendance Maven](#troubleshooting-unsupported-kinesis-connectors-update-maven-dependency). Si vous utilisez Gradle, suivez [Mettre à jour une dépendance Gradle](#troubleshooting-unsupported-kinesis-connectors-update-gradle-dependency).
+ Ré-empaquetez l’application.
+ Chargez-la sur un compartiment Amazon S3.
+ Soumettez à nouveau la demande de création/mise à jour d’application avec l’application révisée qui vient d’être chargée sur le compartiment Amazon S3.
+ Si le même message d’erreur persiste, vérifiez à nouveau les dépendances de votre application. Si le problème persiste, veuillez créer un ticket d’assistance. 

### Mettre à jour une dépendance Maven
<a name="troubleshooting-unsupported-kinesis-connectors-update-maven-dependency"></a>

1. Ouvrez le fichier `pom.xml` du projet.

1. Cherchez les dépendances du projet. Elles se présentent comme suit :

   ```
   <project>
   
       ...
   
       <dependencies>
   
           ...
   
           <dependency>
               <groupId>org.apache.flink</groupId>
               <artifactId>flink-connector-kinesis</artifactId>
           </dependency>
   
           ...
   
       </dependencies>
   
       ...
   
   </project>
   ```

1. Effectuez une mise à jour de `flink-connector-kinesis` vers la version 1.15.2 ou une version ultérieure. Par exemple :

   ```
   <project>
   
       ...
   
       <dependencies>
   
           ...
   
           <dependency>
               <groupId>org.apache.flink</groupId>
               <artifactId>flink-connector-kinesis</artifactId>
               <version>1.15.2</version>
           </dependency>
   
           ...
   
       </dependencies>
   
       ...
   
   </project>
   ```

### Mettre à jour une dépendance Gradle
<a name="troubleshooting-unsupported-kinesis-connectors-update-gradle-dependency"></a>

1. Ouvrez le fichier `build.gradle` (ou `build.gradle.kts` pour les applications Kotlin) du projet. 

1. Cherchez les dépendances du projet. Elles se présentent comme suit :

   ```
   ...
   
   dependencies {
   
       ...
   
       implementation("org.apache.flink:flink-connector-kinesis")
   
       ...
   
   }
   
   ...
   ```

1. Effectuez une mise à jour de `flink-connector-kinesis` vers la version 1.15.2 ou une version ultérieure. Par exemple :

   ```
   ...
   
   dependencies {
   
       ...
   
       implementation("org.apache.flink:flink-connector-kinesis:1.15.2")
   
       ...
   
   }
   
   ...
   ```

# Erreur de compilation : « Impossible de résoudre les dépendances du projet »
<a name="troubleshooting-compile"></a>

Pour compiler les exemples d’applications de service géré pour Apache Flink, vous devez d’abord télécharger et compiler le connecteur Apache Flink Kinesis et l’ajouter à votre référentiel Maven local. Si le connecteur n’a pas été ajouté à votre référentiel, une erreur de compilation similaire à la suivante apparaît :

```
Could not resolve dependencies for project your project name: Failure to find org.apache.flink:flink-connector-kinesis_2.11:jar:1.8.2 in https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced
```

Pour résoudre cette erreur, vous devez télécharger le code source Apache Flink (version 1.8.2 depuis [https://flink.apache.org/downloads.html](https://flink.apache.org/downloads.html)) pour le connecteur. Pour obtenir des instructions sur le téléchargement, la compilation et l’installation du code source d’Apache Flink, consultez [Utilisation du connecteur Apache Flink Kinesis Streams avec les versions précédentes d'Apache Flink](earlier.md#how-creating-apps-building-kinesis).

# Choix non valide : « kinesisanalyticsv2"
<a name="troubleshooting-cli-update"></a>

Pour utiliser la version 2 de l’API Managed Service for Apache Flink, vous avez besoin de la dernière version de AWS Command Line Interface (AWS CLI).

Pour plus d'informations sur la mise à niveau du AWS CLI, consultez [la section Installation du AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) dans le *guide de AWS Command Line Interface l'utilisateur*.

# UpdateApplication l'action ne recharge pas le code de l'application
<a name="troubleshooting-update"></a>

L'[UpdateApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_UpdateApplication.html)action ne rechargera pas le code de l'application avec le même nom de fichier si aucune version d'objet S3 n'est spécifiée. Pour recharger le code d’application avec le même nom de fichier, activez la gestion des versions sur votre compartiment S3 et spécifiez la nouvelle version de l’objet à l’aide du paramètre `ObjectVersionUpdate`. Pour de plus amples informations sur l’activation de la gestion des versions sur un compartiment S3, consultez [Activation et désactivation de la gestion des versions](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/enable-versioning.html).

# S3 StreamingFileSink FileNotFoundExceptions
<a name="troubleshooting-s3sink"></a>

Les applications de service géré pour Apache Flink peuvent rencontrer une erreur `FileNotFoundException` de fichier partiels En cours lors du démarrage à partir d’instantanés si un fichier partiel En cours référencé par son point de sauvegarde est manquant. Lorsque ce mode d’échec se produit, l’état d’opérateur de l’application de service géré pour Apache Flink est généralement irrécupérable et doit être redémarré sans instantané, en utilisant `SKIP_RESTORE_FROM_SNAPSHOT`. Consultez l’exemple de trace de pile suivant :

```
java.io.FileNotFoundException: No such file or directory: s3://amzn-s3-demo-bucket/pathj/INSERT/2023/4/19/7/_part-2-1234_tmp_12345678-1234-1234-1234-123456789012
        at org.apache.hadoop.fs.s3a.S3AFileSystem.s3GetFileStatus(S3AFileSystem.java:2231)
        at org.apache.hadoop.fs.s3a.S3AFileSystem.innerGetFileStatus(S3AFileSystem.java:2149)
        at org.apache.hadoop.fs.s3a.S3AFileSystem.getFileStatus(S3AFileSystem.java:2088)
        at org.apache.hadoop.fs.s3a.S3AFileSystem.open(S3AFileSystem.java:699)
        at org.apache.hadoop.fs.FileSystem.open(FileSystem.java:950)
        at org.apache.flink.fs.s3hadoop.HadoopS3AccessHelper.getObject(HadoopS3AccessHelper.java:98)
        at org.apache.flink.fs.s3.common.writer.S3RecoverableMultipartUploadFactory.recoverInProgressPart(S3RecoverableMultipartUploadFactory.java:97)
...
```

[Flink `StreamingFileSink` écrit des enregistrements dans les systèmes de fichiers pris en charge par les systèmes de fichiers.](https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/deployment/filesystems/overview/) Étant donné que les flux entrants peuvent être illimités, les données sont organisées en fichiers partiels de taille limitée et de nouveaux fichiers sont ajoutés au fur et à mesure de l’écriture des données. Le cycle de vie des fichiers partiels et la politique de substitution déterminent le calendrier, la taille et le nom des fichiers partiels. 

Lors de la création de points de contrôle et de points de sauvegarde (création d’instantané), tous les fichiers en attente sont renommés et validés. Cependant, les fichiers partiels En cours ne sont pas validés, mais sont renommés, et leur référence est conservée dans les métadonnées du point de contrôle ou du point de sauvegarde à utiliser lors de la restauration des tâches. Ces fichiers partiels En cours finiront par passer à l’état En suspens, puis seront renommés et validés à un point de contrôle ou de sauvegarde ultérieur.

Voici les causes premières et les mesures à prendre pour les fichiers partiels En cours manquants :
+ Instantané obsolète utilisé pour démarrer l'application Managed Service for Apache Flink : seul le dernier instantané du système pris lors de l'arrêt ou de la mise à jour d'une application peut être utilisé pour démarrer une application Managed Service for Apache Flink avec Amazon S3. StreamingFileSink Pour éviter ce type d’échec, utilisez le dernier instantané du système.
  + Cela se produit par exemple lorsque vous choisissez un instantané créé à l’aide de `CreateSnapshot` au lieu d’un instantané déclenché par le système lors d’un arrêt ou d’une mise à jour. Le point de sauvegarde de l'ancien instantané conserve une out-of-date référence au fichier de pièce en cours qui a été renommé et validé par le point de contrôle ou le point de sauvegarde suivant.
  + Cela peut également se produire lorsqu'un instantané déclenché par le système à partir d'un Stop/Update événement non récent est sélectionné. Par exemple, une application dont la capture d’instantané par le système est désactivée, mais où l’option `RESTORE_FROM_LATEST_SNAPSHOT` est configurée. En règle générale, le service géré pour les applications Apache Flink avec Amazon S3 StreamingFileSink doit toujours avoir la capture instantanée du système activée et `RESTORE_FROM_LATEST_SNAPSHOT` configurée.
+ Fichier partiel En cours supprimé : comme le fichier partiel En cours se trouve dans un compartiment S3, il peut être supprimé par d’autres composants ou acteurs ayant accès au compartiment. 
  + Cela peut se produire lorsque vous avez arrêté votre application trop longtemps et que le fichier de partie en cours référencé par le point de sauvegarde de votre application a été supprimé conformément à la politique de MultiPartUpload cycle de vie des [compartiments S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpu-abort-incomplete-mpu-lifecycle-config.html). Pour éviter ce type de panne, assurez-vous que la politique de cycle de vie MPU du compartiment S3 couvre une période suffisamment longue pour votre cas d’utilisation.
  + Cela peut également se produire lorsque le fichier partiel En cours a été supprimé manuellement ou par un autre composant de votre système. Pour éviter ce type d’échec, assurez-vous que les fichiers partiels En cours ne sont pas supprimés par d’autres acteurs ou composants.
+ Condition de course dans laquelle un point de contrôle automatique est déclenché après le point de sauvegarde : cela affecte les versions du service géré pour Apache Flink jusqu’à la version 1.13 incluse. Ce problème est résolu dans le service géré pour Apache Flink version 1.15. Migrez votre application vers la dernière version de Managed Service for Apache Flink afin d'éviter que cela ne se reproduise. Nous vous suggérons également de migrer de StreamingFileSink vers. [FileSink](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/connectors/datastream/filesystem/#file-sink)
  + Lorsque des applications sont arrêtées ou mises à jour, le service géré pour Apache Flink déclenche un point de sauvegarde et arrête l’application en deux étapes. Si un point de contrôle automatique se déclenche entre les deux étapes, le point de sauvegarde sera inutilisable, car son fichier partiel En cours sera renommé et potentiellement validé.

# FlinkKafkaConsumer problème avec stop with savepoint
<a name="troubleshooting-FlinkKafkaConsumer"></a>

Lorsque vous utilisez l'ancienne version, FlinkKafkaConsumer il est possible que votre application soit bloquée dans UPDATING, STOPPING ou SCALING, si les instantanés du système sont activés. Aucun correctif publié n'est disponible pour ce [problème](https://issues.apache.org/jira/browse/FLINK-28758). Nous vous recommandons donc de passer au nouveau [KafkaSource](https://nightlies.apache.org/flink/flink-docs-master/docs/connectors/datastream/kafka/#kafka-source)pour atténuer ce problème. 

Si vous utilisez `FlinkKafkaConsumer` avec les instantanés activés, il est possible que lorsque la tâche Flink traite une demande d’API d’arrêt avec point de sauvegarde, `FlinkKafkaConsumer`échoue avec une erreur d’exécution signalant `ClosedException`. Dans ces conditions, l’application Flink se bloque, indiquant des points de contrôle défaillants. 

# Flink 1.15 Async Sink Deadlock
<a name="troubleshooting-async-deadlock"></a>

Il existe un [problème connu lié](https://issues.apache.org/jira/browse/FLINK-32230) aux AWS connecteurs de l' AsyncSink interface d'implémentation d'Apache Flink. Cela concerne les applications utilisant Flink 1.15 avec les connecteurs suivants : 
+ Pour les applications Java :
  + KinesisStreamsSink – `org.apache.flink:flink-connector-kinesis`
  + KinesisStreamsSink – `org.apache.flink:flink-connector-aws-kinesis-streams`
  + KinesisFirehoseSink – `org.apache.flink:flink-connector-aws-kinesis-firehose`
  + DynamoDbSink – `org.apache.flink:flink-connector-dynamodb`
+ SQL/TableAPI/PythonApplications Flink :
  + kinesis – `org.apache.flink:flink-sql-connector-kinesis`
  + kinesis – `org.apache.flink:flink-sql-connector-aws-kinesis-streams`
  + firehose – `org.apache.flink:flink-sql-connector-aws-kinesis-firehose`
  + dynamodb – `org.apache.flink:flink-sql-connector-dynamodb`

Les applications concernées présenteront les symptômes suivants :
+ la tâche Flink est à l’état `RUNNING`, mais ne traite pas les données ;
+ il n’y a aucun redémarrage de tâche ;
+ les points de contrôle arrivent à expiration.

Le problème est dû à un [bogue](https://github.com/aws/aws-sdk-java-v2/issues/4354) dans le AWS SDK qui empêche l'appelant de signaler certaines erreurs lors de l'utilisation du client HTTP asynchrone. Le puits attend donc indéfiniment qu’une « demande en cours » soit traitée pendant une opération de vidage au point de contrôle.

Ce problème a été résolu dans le AWS SDK à partir de la version **2.20.144**. 

Vous trouverez ci-dessous des instructions sur la façon de mettre à jour les connecteurs concernés afin d'utiliser la nouvelle version du AWS SDK dans vos applications :

**Topics**
+ [Mettre à jour les applications Java](troubleshooting-async-deadlock-update-java-apps.md)
+ [Mise à jour des applications Python](troubleshooting-async-deadlock-update-python-apps.md)

# Mettre à jour les applications Java
<a name="troubleshooting-async-deadlock-update-java-apps"></a>

Suivez les procédures ci-dessous pour mettre à jour les applications Java :

## flink-connector-kinesis
<a name="troubleshooting-async-deadlock-update-java-apps-flink-connector-kinesis"></a>

Si l’application utilise `flink-connector-kinesis` :

Le connecteur Kinesis utilise le shading pour intégrer certaines dépendances, notamment le AWS SDK, dans le fichier jar du connecteur. Pour mettre à jour la version du AWS SDK, utilisez la procédure suivante pour remplacer ces classes ombrées :

------
#### [ Maven ]

1. Ajoutez le connecteur Kinesis et les modules AWS SDK requis en tant que dépendances du projet.

1. Configuration de `maven-shade-plugin` :

   1. Ajoutez un filtre pour exclure les classes du AWS SDK ombrées lors de la copie du contenu du fichier jar du connecteur Kinesis.

   1. Ajoutez une règle de relocalisation pour déplacer les classes du AWS SDK mises à jour vers le package, comme prévu par le connecteur Kinesis.

   **pom.xml** 

   ```
   <project>
       ...    
       <dependencies>
           ...
           <dependency>
               <groupId>org.apache.flink</groupId>
               <artifactId>flink-connector-kinesis</artifactId>
               <version>1.15.4</version>
           </dependency>
           
           <dependency>
               <groupId>software.amazon.awssdk</groupId>
               <artifactId>kinesis</artifactId>
               <version>2.20.144</version>
           </dependency>
           <dependency>
               <groupId>software.amazon.awssdk</groupId>
               <artifactId>netty-nio-client</artifactId>
               <version>2.20.144</version>
           </dependency>
           <dependency>
               <groupId>software.amazon.awssdk</groupId>
               <artifactId>sts</artifactId>
               <version>2.20.144</version>
           </dependency>
           ...
       </dependencies>
       ...
       <build>
           ...
           <plugins>
               ...
               <plugin>
                   <groupId>org.apache.maven.plugins</groupId>
                   <artifactId>maven-shade-plugin</artifactId>
                   <version>3.1.1</version>
                   <executions>
                       <execution>
                           <phase>package</phase>
                           <goals>
                               <goal>shade</goal>
                           </goals>
                           <configuration>
                               ...
                               <filters>
                                   ...
                                   <filter>
                                       <artifact>org.apache.flink:flink-connector-kinesis</artifact>
                                       <excludes>
                                           <exclude>org/apache/flink/kinesis/shaded/software/amazon/awssdk/**</exclude>
                                           <exclude>org/apache/flink/kinesis/shaded/org/reactivestreams/**</exclude>
                                           <exclude>org/apache/flink/kinesis/shaded/io/netty/**</exclude>
                                           <exclude>org/apache/flink/kinesis/shaded/com/typesafe/netty/**</exclude>
                                       </excludes>
                                   </filter>
                                   ...
                               </filters>
                               <relocations>
                                   ...
                                   <relocation>
                                       <pattern>software.amazon.awssdk</pattern>
                                       <shadedPattern>org.apache.flink.kinesis.shaded.software.amazon.awssdk</shadedPattern>
                                   </relocation>
                                   <relocation>
                                       <pattern>org.reactivestreams</pattern>
                                       <shadedPattern>org.apache.flink.kinesis.shaded.org.reactivestreams</shadedPattern>
                                   </relocation>
                                   <relocation>
                                       <pattern>io.netty</pattern>
                                       <shadedPattern>org.apache.flink.kinesis.shaded.io.netty</shadedPattern>
                                   </relocation>
                                   <relocation>
                                       <pattern>com.typesafe.netty</pattern>
                                       <shadedPattern>org.apache.flink.kinesis.shaded.com.typesafe.netty</shadedPattern>
                                   </relocation>
                                   ...
                               </relocations>
                              ...
                           </configuration>
                       </execution>
                   </executions>
               </plugin>
               ...
           </plugins>
           ... 
       </build>
   </project>
   ```

------
#### [ Gradle ]

1. Ajoutez le connecteur Kinesis et les modules AWS SDK requis en tant que dépendances du projet.

1. Ajustez la configuration de shadowJar :

   1. Excluez les classes du AWS SDK ombrées lors de la copie du contenu du fichier jar du connecteur Kinesis.

   1. Déplacez les classes du AWS SDK mises à jour vers un package attendu par le connecteur Kinesis.

   **build.gradle**

   ```
   ...
   dependencies {
       ...
       flinkShadowJar("org.apache.flink:flink-connector-kinesis:1.15.4")
       
       flinkShadowJar("software.amazon.awssdk:kinesis:2.20.144")
       flinkShadowJar("software.amazon.awssdk:sts:2.20.144")
       flinkShadowJar("software.amazon.awssdk:netty-nio-client:2.20.144")
       ...
   }
   ...
   shadowJar {
       configurations = [project.configurations.flinkShadowJar]
   
       exclude("software/amazon/kinesis/shaded/software/amazon/awssdk/**/*")
       exclude("org/apache/flink/kinesis/shaded/org/reactivestreams/**/*.class")
       exclude("org/apache/flink/kinesis/shaded/io/netty/**/*.class")
       exclude("org/apache/flink/kinesis/shaded/com/typesafe/netty/**/*.class")
       
       relocate("software.amazon.awssdk", "org.apache.flink.kinesis.shaded.software.amazon.awssdk")
       relocate("org.reactivestreams", "org.apache.flink.kinesis.shaded.org.reactivestreams")
       relocate("io.netty", "org.apache.flink.kinesis.shaded.io.netty")
       relocate("com.typesafe.netty", "org.apache.flink.kinesis.shaded.com.typesafe.netty")
   }
   ...
   ```

------

## Autres connecteurs concernés
<a name="troubleshooting-async-deadlock-update-java-apps-flink-another-connector"></a>

Si l’application utilise un autre connecteur concerné :

Afin de mettre à jour la version du AWS SDK, la version du SDK doit être appliquée dans la configuration de construction du projet.

------
#### [ Maven ]

Ajoutez la nomenclature du AWS SDK (BOM) à la section de gestion des dépendances du `pom.xml` fichier pour appliquer la version du SDK au projet.

**pom.xml**

```
<project>
    ...    
    <dependencyManagement>
        <dependencies>
            ...
            <dependency>
                <groupId>software.amazon.awssdk</groupId>
                <artifactId>bom</artifactId>
                <version>2.20.144</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
            ...
        </dependencies>
    </dependencyManagement>
    ...
</project>
```

------
#### [ Gradle ]

Ajoutez la dépendance de la plate-forme à la nomenclature du AWS SDK pour appliquer la version du SDK au projet. Cela nécessite Gradle 5.0 ou une version ultérieure :

**build.gradle**

```
...
dependencies {
    ...
    flinkShadowJar(platform("software.amazon.awssdk:bom:2.20.144"))
    ...
}
...
```

------

# Mise à jour des applications Python
<a name="troubleshooting-async-deadlock-update-python-apps"></a>

Les applications Python peuvent utiliser les connecteurs de deux manières différentes : empaqueter des connecteurs et autres dépendances Java dans le cadre d’un fichier Uber JAR unique ou utiliser directement le connecteur JAR. Pour corriger les applications affectées par le blocage d’Async Sink :
+ Si l’application utilise un fichier Uber JAR, suivez les instructions de [Mettre à jour les applications Java](troubleshooting-async-deadlock-update-java-apps.md).
+ Pour reconstruire les connecteurs JAR à partir de la source, procédez comme suit :

**Création de connecteurs à partir de la source :**

Prérequis, similaires aux [exigences de compilation](https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/flinkdev/building/#build-flink) Flink :
+ Java 11
+ Maven 3.2.5

## flink-sql-connector-kinesis
<a name="troubleshooting-async-deadlock-update-python-apps-flink-sql-connector-kinesis"></a>

1. Téléchargez le code source pour Flink 1.15.4 :

   ```
   wget https://archive.apache.org/dist/flink/flink-1.15.4/flink-1.15.4-src.tgz
   ```

1. Décompressez le code source :

   ```
   tar -xvf flink-1.15.4-src.tgz
   ```

1. Accédez au répertoire du connecteur Kinesis

   ```
   cd flink-1.15.4/flink-connectors/flink-connector-kinesis/
   ```

1. Compilez et installez le fichier jar du connecteur, en spécifiant la version du AWS SDK requise. Pour accélérer la compilation, utilisez `-DskipTests` pour ignorer l’exécution des tests et `-Dfast` pour ignorer les vérifications supplémentaires du code source :

   ```
   mvn clean install -DskipTests -Dfast -Daws.sdkv2.version=2.20.144
   ```

1. Accédez au répertoire du connecteur Kinesis

   ```
   cd ../flink-sql-connector-kinesis
   ```

1. Compilez et installez le JAR du connecteur SQL :

   ```
   mvn clean install -DskipTests -Dfast
   ```

1. Le fichier JAR obtenu sera disponible à l’adresse suivante :

   ```
   target/flink-sql-connector-kinesis-1.15.4.jar
   ```

## flink-sql-connector-aws-kinesis-streams
<a name="troubleshooting-async-deadlock-update-python-apps-flink-sql-connector-aws-kinesis-streams"></a>

1. Téléchargez le code source pour Flink 1.15.4 :

   ```
   wget https://archive.apache.org/dist/flink/flink-1.15.4/flink-1.15.4-src.tgz
   ```

1. Décompressez le code source :

   ```
   tar -xvf flink-1.15.4-src.tgz
   ```

1. Accédez au répertoire du connecteur Kinesis

   ```
   cd flink-1.15.4/flink-connectors/flink-connector-aws-kinesis-streams/
   ```

1. Compilez et installez le fichier jar du connecteur, en spécifiant la version du AWS SDK requise. Pour accélérer la compilation, utilisez `-DskipTests` pour ignorer l’exécution des tests et `-Dfast` pour ignorer les vérifications supplémentaires du code source :

   ```
   mvn clean install -DskipTests -Dfast -Daws.sdk.version=2.20.144
   ```

1. Accédez au répertoire du connecteur Kinesis

   ```
   cd ../flink-sql-connector-aws-kinesis-streams
   ```

1. Compilez et installez le JAR du connecteur SQL :

   ```
   mvn clean install -DskipTests -Dfast
   ```

1. Le fichier JAR obtenu sera disponible à l’adresse suivante :

   ```
   target/flink-sql-connector-aws-kinesis-streams-1.15.4.jar
   ```

## flink-sql-connector-aws-kinesis-firehose
<a name="troubleshooting-async-deadlock-update-python-apps-flink-sql-connector-kinesis-firehose"></a>

1. Téléchargez le code source pour Flink 1.15.4 :

   ```
   wget https://archive.apache.org/dist/flink/flink-1.15.4/flink-1.15.4-src.tgz
   ```

1. Décompressez le code source :

   ```
   tar -xvf flink-1.15.4-src.tgz
   ```

1. Accédez au répertoire du connecteur

   ```
   cd flink-1.15.4/flink-connectors/flink-connector-aws-kinesis-firehose/
   ```

1. Compilez et installez le fichier jar du connecteur, en spécifiant la version du AWS SDK requise. Pour accélérer la compilation, utilisez `-DskipTests` pour ignorer l’exécution des tests et `-Dfast` pour ignorer les vérifications supplémentaires du code source :

   ```
   mvn clean install -DskipTests -Dfast -Daws.sdk.version=2.20.144
   ```

1. Accédez au répertoire du connecteur SQL

   ```
   cd ../flink-sql-connector-aws-kinesis-firehose
   ```

1. Compilez et installez le JAR du connecteur SQL :

   ```
   mvn clean install -DskipTests -Dfast
   ```

1. Le fichier JAR obtenu sera disponible à l’adresse suivante :

   ```
   target/flink-sql-connector-aws-kinesis-firehose-1.15.4.jar
   ```

## flink-sql-connector-dynamodb
<a name="troubleshooting-async-deadlock-update-python-apps-flink-sql-connector-dynamodb"></a>

1. Téléchargez le code source pour Flink 1.15.4 :

   ```
   wget https://archive.apache.org/dist/flink/flink-connector-aws-3.0.0/flink-connector-aws-3.0.0-src.tgz
   ```

1. Décompressez le code source :

   ```
   tar -xvf flink-connector-aws-3.0.0-src.tgz
   ```

1. Accédez au répertoire du connecteur

   ```
   cd flink-connector-aws-3.0.0
   ```

1. Compilez et installez le fichier jar du connecteur, en spécifiant la version du AWS SDK requise. Pour accélérer la compilation, utilisez `-DskipTests` pour ignorer l’exécution des tests et `-Dfast` pour ignorer les vérifications supplémentaires du code source :

   ```
   mvn clean install -DskipTests -Dfast -Dflink.version=1.15.4 -Daws.sdk.version=2.20.144
   ```

1. Le fichier JAR obtenu sera disponible à l’adresse suivante :

   ```
   flink-sql-connector-dynamodb/target/flink-sql-connector-dynamodb-3.0.0.jar
   ```

# Le traitement des sources de données Amazon Kinesis est désordonné lors du repartitionnement
<a name="troubleshooting-kinesis-data-streams-processing-out-of-order"></a>

L' FlinkKinesisConsumer implémentation actuelle ne fournit pas de solides garanties d'ordre entre les partitions Kinesis. Cela peut entraîner un out-of-order traitement lors du resharding de Kinesis Stream, en particulier pour les applications Flink présentant un retard de traitement. Dans certaines circonstances, par exemple lorsque les opérateurs Windows sont basés sur l’heure des événements, les événements peuvent être ignorés en raison du retard qui en résulte. 

![\[Diagram showing shards and shard consumers with time progression and trim horizon.\]](http://docs.aws.amazon.com/fr_fr/managed-flink/latest/java/images/flink-ts.png)


Il s’agit d’un [problème connu](https://issues.apache.org/jira/browse/FLINK-6349) dans Open Source Flink. Jusqu’à ce que le correctif du connecteur soit disponible, assurez-vous que vos applications Flink ne prennent pas de retard sur Kinesis Data Streams lors du repartitionnement. En vous assurant que le délai de traitement est toléré par vos applications Flink, vous pouvez minimiser l'impact du out-of-order traitement et le risque de perte de données. 

# FAQ et résolution des problèmes liés à l'intégration de modèles vectoriels en temps réel
<a name="troubleshooting-blueprints"></a>

Consultez la FAQ et les sections de dépannage suivantes pour résoudre les problèmes liés à l'intégration de modèles vectoriels en temps réel. Pour plus d'informations sur les plans d'intégration vectorielle en temps réel, consultez la section Plans d'[intégration vectorielle en temps réel](https://docs.aws.amazon.com/msk/latest/developerguide/ai-vector-embedding-integration-learn-more.html).

Pour le dépannage général de l'application Managed Service for Apache Flink, consultez le [https://docs.aws.amazon.com/managed-flink/latest/java/troubleshooting-runtime.html](https://docs.aws.amazon.com/managed-flink/latest/java/troubleshooting-runtime.html).

**Topics**
+ [Plans d'intégration vectorielle en temps réel - FAQ](troubleshooting-blueprints-FAQ.md)
+ [Plans d'intégration vectorielle en temps réel : résolution des problèmes](troubleshooting-blueprints-TS.md)

# Plans d'intégration vectorielle en temps réel - FAQ
<a name="troubleshooting-blueprints-FAQ"></a>

Consultez la FAQ suivante sur les plans d'intégration vectorielle en temps réel. Pour plus d'informations sur les plans d'intégration vectorielle en temps réel, consultez la section Plans d'[intégration vectorielle en temps réel](https://docs.aws.amazon.com/msk/latest/developerguide/ai-vector-embedding-integration-learn-more.html).

**Topics**
+ [Quelles sont AWS les ressources créées par ce plan directeur ?](#troubleshooting-blueprints-1)
+ [Quelles sont mes actions une fois le déploiement de la AWS CloudFormation pile terminé ?](#troubleshooting-blueprints-2)
+ [Quelle doit être la structure des données dans le ou les sujets Amazon MSK source ?](#troubleshooting-blueprints-3)
+ [Puis-je spécifier les parties d'un message à intégrer ?](#troubleshooting-blueprints-4)
+ [Puis-je lire les données de plusieurs rubriques Amazon MSK ?](#troubleshooting-blueprints-5)
+ [Puis-je utiliser regex pour configurer les noms de rubriques Amazon MSK ?](#troubleshooting-blueprints-6)
+ [Quelle est la taille maximale d'un message pouvant être lu à partir d'une rubrique Amazon MSK ?](#troubleshooting-blueprints-7)
+ [Quel type de produit OpenSearch est pris en charge ?](#troubleshooting-blueprints-8)
+ [Pourquoi dois-je utiliser une collection de recherche vectorielle, un index vectoriel et ajouter un champ vectoriel dans ma collection OpenSearch Serverless ?](#troubleshooting-blueprints-9)
+ [Quelle est la dimension que je dois définir pour mon champ vectoriel ?](#troubleshooting-blueprints-10)
+ [À quoi ressemble la sortie dans l' OpenSearch index configuré ?](#troubleshooting-blueprints-11)
+ [Puis-je spécifier des champs de métadonnées à ajouter au document stocké dans l' OpenSearch index ?](#troubleshooting-blueprints-12)
+ [Dois-je m'attendre à des entrées dupliquées dans l' OpenSearch index ?](#troubleshooting-blueprints-13)
+ [Puis-je envoyer des données vers plusieurs OpenSearch index ?](#troubleshooting-blueprints-14)
+ [Puis-je déployer plusieurs applications d'intégration vectorielle en temps réel en une seule ? Compte AWS](#troubleshooting-blueprints-15)
+ [Plusieurs applications d'intégration vectorielle en temps réel peuvent-elles utiliser la même source ou le même récepteur de données ?](#troubleshooting-blueprints-16)
+ [L'application prend-elle en charge la connectivité entre comptes ?](#troubleshooting-blueprints-17)
+ [L'application prend-elle en charge la connectivité interrégionale ?](#troubleshooting-blueprints-18)
+ [Mon cluster et ma OpenSearch collection Amazon MSK peuvent-ils se trouver dans des sous-réseaux VPCs ou dans des sous-réseaux différents ?](#troubleshooting-blueprints-19)
+ [Quels sont les modèles d'intégration pris en charge par l'application ?](#troubleshooting-blueprints-20)
+ [Puis-je ajuster les performances de mon application en fonction de ma charge de travail ?](#troubleshooting-blueprints-21)
+ [Quels types d'authentification Amazon MSK sont pris en charge ?](#troubleshooting-blueprints-22)
+ [Qu'est-ce que c'est `sink.os.bulkFlushIntervalMillis` et comment le configurer ?](#troubleshooting-blueprints-23)
+ [Lorsque je déploie mon application Managed Service for Apache Flink, à partir de quel moment de la rubrique Amazon MSK commence-t-elle à lire les messages ?](#troubleshooting-blueprints-24)
+ [Comment l'utiliser `source.msk.starting.offset` ?](#troubleshooting-blueprints-25)
+ [Quelles sont les stratégies de segmentation prises en charge ?](#troubleshooting-blueprints-26)
+ [Comment lire les enregistrements dans ma banque de données vectorielles ?](#troubleshooting-blueprints-27)
+ [Où puis-je trouver les nouvelles mises à jour du code source ?](#troubleshooting-blueprints-28)
+ [Puis-je modifier le AWS CloudFormation modèle et mettre à jour l'application Managed Service for Apache Flink ?](#troubleshooting-blueprints-29)
+ [AWS Surveillera-t-il et maintiendra-t-il l'application en mon nom ?](#troubleshooting-blueprints-30)
+ [Cette application déplace-t-elle mes données en dehors du mien Compte AWS ?](#troubleshooting-blueprints-31)

## Quelles sont AWS les ressources créées par ce plan directeur ?
<a name="troubleshooting-blueprints-1"></a>

Pour trouver les ressources déployées sur votre compte, accédez à la AWS CloudFormation console et identifiez le nom de la pile qui commence par le nom que vous avez fourni pour votre application Managed Service for Apache Flink. Choisissez l'onglet **Ressources** pour vérifier les ressources créées dans le cadre de la pile. Les principales ressources créées par la pile sont les suivantes :
+ Service géré d'intégration vectorielle en temps réel pour l'application Apache Flink
+ Compartiment Amazon S3 pour contenir le code source de l'application d'intégration vectorielle en temps réel
+ CloudWatch groupe de journaux et flux de journaux pour le stockage des journaux
+ Fonctions Lambda pour récupérer et créer des ressources
+ Rôles et politiques IAM pour Lambdas, service géré pour l'application Apache Flink et accès à Amazon Bedrock et Amazon Service OpenSearch 
+ Politique d'accès aux données pour Amazon OpenSearch Service
+ Points de terminaison VPC pour accéder à Amazon Bedrock et Amazon Service OpenSearch 

## Quelles sont mes actions une fois le déploiement de la AWS CloudFormation pile terminé ?
<a name="troubleshooting-blueprints-2"></a>

Une fois le déploiement de la AWS CloudFormation pile terminé, accédez à la console Managed Service for Apache Flink et recherchez votre modèle d'application Managed Service for Apache Flink. Choisissez l'onglet **Configurer** et vérifiez que toutes les propriétés d'exécution sont correctement configurées. Ils peuvent déborder sur la page suivante. Lorsque vous êtes sûr des paramètres, choisissez **Exécuter**. L'application commencera à ingérer les messages de votre sujet.

Pour vérifier les nouvelles versions, consultez [https://github.com/awslabs/real-time-vectorization-of-streaming-data/releases](https://github.com/awslabs/real-time-vectorization-of-streaming-data/releases).

## Quelle doit être la structure des données dans le ou les sujets Amazon MSK source ?
<a name="troubleshooting-blueprints-3"></a>

Nous prenons actuellement en charge les données sources structurées et non structurées. 
+ Les données non structurées sont désignées par `STRING` in. `source.msk.data.type` Les données sont lues telles quelles dans le message entrant.
+ Nous prenons actuellement en charge les données JSON structurées, désignées par `JSON` in`source.msk.data.type`. Les données doivent toujours être au format JSON. Si l'application reçoit un JSON mal formé, elle échouera. 
+ Lorsque vous utilisez JSON comme type de données source, assurez-vous que chaque message de toutes les rubriques source est un JSON valide. Si vous vous abonnez à une ou plusieurs rubriques ne contenant pas d'objets JSON avec ce paramètre, l'application échouera. Si une ou plusieurs rubriques contiennent un mélange de données structurées et non structurées, nous vous recommandons de configurer les données sources comme non structurées dans l'application Managed Service for Apache Flink. 

## Puis-je spécifier les parties d'un message à intégrer ?
<a name="troubleshooting-blueprints-4"></a>
+ Pour les données d'entrée non structurées`STRING`, l'application incorporera toujours l'intégralité du message et le stockera dans l'index configuré OpenSearch . `source.msk.data.type`
+ Pour les données d'entrée structurées où elles `source.msk.data.type` se trouvent`JSON`, vous pouvez configurer `embed.input.config.json.fieldsToEmbed` pour spécifier quel champ de l'objet JSON doit être sélectionné pour l'intégration. Cela ne fonctionne que pour les champs JSON de niveau supérieur et ne fonctionne pas avec les messages imbriqués JSONs et contenant un tableau JSON. Utilisez .\$1 pour intégrer l'intégralité du JSON.

## Puis-je lire les données de plusieurs rubriques Amazon MSK ?
<a name="troubleshooting-blueprints-5"></a>

Oui, vous pouvez lire les données de plusieurs rubriques Amazon MSK avec cette application. Les données de tous les sujets doivent être du même type (STRING ou JSON), sinon cela pourrait entraîner l'échec de l'application. Les données de tous les sujets sont toujours stockées dans un seul OpenSearch index.

## Puis-je utiliser regex pour configurer les noms de rubriques Amazon MSK ?
<a name="troubleshooting-blueprints-6"></a>

`source.msk.topic.names`ne prend pas en charge une liste de regex. Nous prenons en charge soit une liste de noms de sujets séparés par des virgules, soit une `.*` expression régulière pour inclure tous les sujets.

## Quelle est la taille maximale d'un message pouvant être lu à partir d'une rubrique Amazon MSK ?
<a name="troubleshooting-blueprints-7"></a>

La taille maximale d'un message pouvant être traité est limitée par la limite de InvokeModel corps d'Amazon Bedrock, actuellement fixée à 25 000 000. Pour de plus amples informations, veuillez consulter [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html#API_runtime_InvokeModel_RequestBody).

## Quel type de produit OpenSearch est pris en charge ?
<a name="troubleshooting-blueprints-8"></a>

Nous prenons en charge à la fois OpenSearch les domaines et les collections. Si vous utilisez une OpenSearch collection, veillez à utiliser une collection vectorielle et à créer un index vectoriel à utiliser pour cette application. Cela vous permettra d'utiliser les fonctionnalités de la base de données OpenSearch vectorielle pour interroger vos données. Pour en savoir plus, consultez les [fonctionnalités de base de données vectorielles d'Amazon OpenSearch Service expliquées](https://aws.amazon.com/blogs/big-data/amazon-opensearch-services-vector-database-capabilities-explained/).

## Pourquoi dois-je utiliser une collection de recherche vectorielle, un index vectoriel et ajouter un champ vectoriel dans ma collection OpenSearch Serverless ?
<a name="troubleshooting-blueprints-9"></a>

Le type *de collection de recherche vectorielle* dans OpenSearch Serverless fournit une fonctionnalité de recherche de similarité évolutive et performante. Il rationalise la création d'expériences de recherche augmentée modernes basées sur l'apprentissage automatique (ML) et d'applications d'intelligence artificielle générative (IA). Pour plus d'informations, voir [Utilisation des collections de recherche vectorielle](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-vector-search.html?icmpid=docs_console_unmapped).

## Quelle est la dimension que je dois définir pour mon champ vectoriel ?
<a name="troubleshooting-blueprints-10"></a>

Définissez la dimension du champ vectoriel en fonction du modèle d'intégration que vous souhaitez utiliser. Reportez-vous au tableau suivant et confirmez ces valeurs dans la documentation correspondante.


**Dimensions du champ vectoriel**  

| Nom du modèle d'intégration vectorielle Amazon Bedrock | Support des dimensions de sortie offert par le modèle | 
| --- | --- | 
|  Amazon Titan Text Embeddings V1  | 1 536 | 
|  Plongement lexical Amazon Titan V2  | 1 024 (par défaut), 384, 256 | 
|  Amazon Titan Multimodal Embeddings G1  | 1 024 (par défaut), 384, 256 | 
|  Cohere Embed version anglaise  | 1,024 | 
|  Cohere Embed version multilingue  | 1,024 | 

## À quoi ressemble la sortie dans l' OpenSearch index configuré ?
<a name="troubleshooting-blueprints-11"></a>

Chaque document de l' OpenSearch index contient les champs suivants :
+ **original\$1data : données** utilisées pour générer des intégrations. Pour le type STRING, il s'agit de l'intégralité du message. Pour l'objet JSON, il s'agit de l'objet JSON qui a été utilisé pour les intégrations. Il peut s'agir du JSON complet dans le message ou de champs spécifiés dans le JSON. Par exemple, si le nom a été sélectionné pour être intégré dans les messages entrants, le résultat serait le suivant :

  ```
  "original_data": "{\"name\":\"John Doe\"}"
  ```
+ **embedded\$1data** : tableau vectoriel flottant d'intégrations généré par Amazon Bedrock
+ **date** : horodatage UTC dans lequel le document a été stocké OpenSearch

## Puis-je spécifier des champs de métadonnées à ajouter au document stocké dans l' OpenSearch index ?
<a name="troubleshooting-blueprints-12"></a>

Non, nous ne prenons actuellement pas en charge l'ajout de champs supplémentaires au document final stocké dans l' OpenSearch index.

## Dois-je m'attendre à des entrées dupliquées dans l' OpenSearch index ?
<a name="troubleshooting-blueprints-13"></a>

Selon la façon dont vous avez configuré votre application, il est possible que vous voyiez des messages dupliqués dans l'index. L'une des raisons les plus courantes est le redémarrage de l'application. L'application est configurée par défaut pour commencer la lecture dès le premier message de la rubrique source. Lorsque vous modifiez la configuration, l'application redémarre et traite à nouveau tous les messages de la rubrique. Pour éviter un nouveau traitement, reportez-vous à la documentation expliquant comment utiliser source.msk.starting.offset et définissez correctement le décalage de départ pour votre application.

## Puis-je envoyer des données vers plusieurs OpenSearch index ?
<a name="troubleshooting-blueprints-14"></a>

Non, l'application prend en charge le stockage des données dans un seul OpenSearch index. Pour configurer la sortie de vectorisation sur plusieurs index, vous devez déployer un service géré distinct pour les applications Apache Flink.

## Puis-je déployer plusieurs applications d'intégration vectorielle en temps réel en une seule ? Compte AWS
<a name="troubleshooting-blueprints-15"></a>

Oui, vous pouvez déployer plusieurs services gérés d'intégration vectorielle en temps réel pour les applications Apache Flink en une seule Compte AWS si chaque application possède un nom unique.

## Plusieurs applications d'intégration vectorielle en temps réel peuvent-elles utiliser la même source ou le même récepteur de données ?
<a name="troubleshooting-blueprints-16"></a>

Oui, vous pouvez créer plusieurs services gérés d'intégration vectorielle en temps réel pour les applications Apache Flink qui lisent des données issues du ou des mêmes sujets ou stockent des données dans le même index.

## L'application prend-elle en charge la connectivité entre comptes ?
<a name="troubleshooting-blueprints-17"></a>

Non, pour que l'application s'exécute correctement, le cluster Amazon MSK et la OpenSearch collection doivent se trouver au même Compte AWS endroit où vous essayez de configurer votre service géré pour l'application Apache Flink.

## L'application prend-elle en charge la connectivité interrégionale ?
<a name="troubleshooting-blueprints-18"></a>

Non, l'application vous permet uniquement de déployer une application de service géré pour Apache Flink avec un cluster Amazon MSK et une OpenSearch collection dans la même région que l'application de service géré pour Apache Flink.

## Mon cluster et ma OpenSearch collection Amazon MSK peuvent-ils se trouver dans des sous-réseaux VPCs ou dans des sous-réseaux différents ?
<a name="troubleshooting-blueprints-19"></a>

Oui, nous prenons en charge le cluster et la OpenSearch collecte Amazon MSK dans des sous-réseaux VPCs et sous-réseaux différents, à condition qu'ils se trouvent dans le même. Compte AWS Consultez (Dépannage général de MSF) pour vous assurer que votre configuration est correcte.

## Quels sont les modèles d'intégration pris en charge par l'application ?
<a name="troubleshooting-blueprints-20"></a>

Actuellement, l'application prend en charge tous les modèles pris en charge par Bedrock. Il s’agit des licences suivantes :
+ Amazon Titan Embeddings G1 – Text
+  Plongement lexical Amazon Titan V2
+  Amazon Titan Multimodal Embeddings G1 
+  Cohere Embed version anglaise 
+  Cohere Embed version multilingue 

## Puis-je ajuster les performances de mon application en fonction de ma charge de travail ?
<a name="troubleshooting-blueprints-21"></a>

Oui. Le débit de l'application dépend d'un certain nombre de facteurs, qui peuvent tous être contrôlés par les clients : 

1. **AWS MSF KPUs** : L'application est déployée avec un facteur de parallélisme 2 par défaut et un parallélisme par KPU 1, avec la mise à l'échelle automatique activée. Toutefois, nous vous recommandons de configurer le dimensionnement de l'application Managed Service for Apache Flink en fonction de vos charges de travail. Pour plus d'informations, consultez la section [Review Managed Service pour les ressources de l'application Apache Flink](https://docs.aws.amazon.com/managed-flink/latest/java/how-resources.html).

1. **Amazon Bedrock** : en fonction du modèle Amazon Bedrock à la demande sélectionné, différents quotas peuvent s'appliquer. Passez en revue les quotas de service dans Bedrock pour voir la charge de travail que le service sera en mesure de gérer. Pour plus d'informations, consultez la section [Quotas pour Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html).

1. **Amazon OpenSearch Service** : en outre, dans certaines situations, vous remarquerez peut-être que OpenSearch c'est le goulot d'étranglement de votre pipeline. Pour obtenir des informations sur le OpenSearch dimensionnement, consultez la section [Dimensionnement des domaines Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/sizing-domains.html).

## Quels types d'authentification Amazon MSK sont pris en charge ?
<a name="troubleshooting-blueprints-22"></a>

Nous prenons uniquement en charge le type d'authentification IAM MSK.

## Qu'est-ce que c'est `sink.os.bulkFlushIntervalMillis` et comment le configurer ?
<a name="troubleshooting-blueprints-23"></a>

Lors de l'envoi de données à Amazon OpenSearch Service, l'intervalle de vidage en masse est l'intervalle auquel la demande en bloc est exécutée, quel que soit le nombre d'actions ou la taille de la demande. La valeur par défaut est fixée à 1 milliseconde.

Bien que la définition d'un intervalle de vidange puisse contribuer à garantir que les données sont indexées en temps voulu, elle peut également entraîner une augmentation de la charge si elle est définie à un niveau trop bas. Tenez compte de votre cas d'utilisation et de l'importance d'une indexation rapide lorsque vous choisissez un intervalle de rinçage.

## Lorsque je déploie mon application Managed Service for Apache Flink, à partir de quel moment de la rubrique Amazon MSK commence-t-elle à lire les messages ?
<a name="troubleshooting-blueprints-24"></a>

L'application commencera à lire les messages de la rubrique Amazon MSK au décalage spécifié par la `source.msk.starting.offset` configuration définie dans la configuration d'exécution de l'application. S'il n'`source.msk.starting.offset`est pas défini explicitement, le comportement par défaut de l'application est de commencer la lecture à partir du premier message disponible dans la rubrique.

## Comment l'utiliser `source.msk.starting.offset` ?
<a name="troubleshooting-blueprints-25"></a>

Définissez explicitement `ource.msk.starting.offset` à s l'une des valeurs suivantes, en fonction du comportement souhaité : 


+  EARLY : paramètre par défaut, qui prend la valeur du décalage le plus ancien de la partition. C'est un bon choix, surtout si : 
  +  Vous venez de créer des rubriques Amazon MSK et des applications destinées aux consommateurs.
  +  Vous devez rejouer les données afin de pouvoir créer ou reconstruire un état. Cela est pertinent lors de la mise en œuvre du modèle d'approvisionnement en événements ou lors de l'initialisation d'un nouveau service nécessitant une vue complète de l'historique des données. 
+ DERNIÈRE VERSION : L'application Managed Service for Apache Flink lit les messages à partir de la fin de la partition. Nous recommandons cette option si vous vous intéressez uniquement aux nouveaux messages produits et si vous n'avez pas besoin de traiter les données historiques. Dans ce paramètre, le consommateur ignorera les messages existants et ne lira que les nouveaux messages publiés par le producteur en amont.
+ VALIDÉ : L'application Managed Service for Apache Flink commencera à consommer les messages à partir du décalage validé par le groupe de consommateurs. Si le décalage validé n'existe pas, la stratégie de réinitialisation LA PLUS PRÉCOCE sera utilisée. 

## Quelles sont les stratégies de segmentation prises en charge ?
<a name="troubleshooting-blueprints-26"></a>

Nous utilisons la bibliothèque [langchain](https://js.langchain.com/v0.1/docs/get_started/introduction/) pour segmenter les entrées. Le découpage n'est appliqué que si la longueur de l'entrée est supérieure à celle choisie`maxSegmentSizeInChars`. Nous prenons en charge les cinq types de découpage suivants :
+ `SPLIT_BY_CHARACTER`: Peut contenir autant de caractères que possible dans chaque morceau dont la longueur n'est pas supérieure à. maxSegmentSize InChars Il ne se soucie pas des espaces blancs, il peut donc couper des mots.
+ `SPLIT_BY_WORD`: Trouvera des espaces blancs à séparer. Aucun mot n'est coupé.
+ `SPLIT_BY_SENTENCE`: Les limites des phrases sont détectées à l'aide de la bibliothèque Apache OpenNLP avec le modèle de phrase anglais.
+ `SPLIT_BY_LINE`: Je trouverai de nouveaux personnages de ligne à suivre.
+ `SPLIT_BY_PARAGRAPH`: Vous trouverez de nouveaux personnages de ligne consécutifs à suivre.

Les stratégies de division se rabattent selon l'ordre précédent, alors que les stratégies de segmentation les plus importantes se `SPLIT_BY_PARAGRAPH` rabattent sur. `SPLIT_BY_CHARACTER` Par exemple, lors de l'utilisation`SPLIT_BY_LINE`, si une ligne est trop longue, elle sera sous-divisée par phrase, chaque morceau pouvant contenir autant de phrases que possible. Si certaines phrases sont trop longues, elles seront découpées au niveau du mot. Si un mot est trop long, il sera scindé par caractère.

## Comment lire les enregistrements dans ma banque de données vectorielles ?
<a name="troubleshooting-blueprints-27"></a>

1. `source.msk.data.type`C'est quand `STRING`
   + **original\$1data** : chaîne originale complète du message Amazon MSK.
   + **embedded\$1data** : vecteur d'intégration créé `chunk_data` s'il n'est pas vide (découpage appliqué) ou créé à partir du `original_data` cas où aucun découpage n'a été appliqué.
   + **chunk\$1data** : présent uniquement lorsque les données d'origine ont été segmentées. Contient la partie du message d'origine qui a été utilisée pour créer l'intégration dans. `embedded_data`

1. `source.msk.data.type`C'est quand `JSON`
   + **original\$1data** : l'intégralité du code JSON original du message Amazon MSK une *fois* le filtrage par clé JSON appliqué. 
   + **embedded\$1data** : vecteur d'intégration créé `chunk_data` s'il n'est pas vide (découpage appliqué) ou créé à partir du `original_data` cas où aucun découpage n'a été appliqué.
   + **chunk\$1key** : présent uniquement lorsque les données d'origine ont été segmentées. Contient la clé JSON d'où provient le morceau. `original_data` Par exemple, cela peut ressembler à `jsonKey1.nestedJsonKeyA` des clés imbriquées ou à *des métadonnées* dans l'exemple de`original_data`.
   + **chunk\$1data** : présent uniquement lorsque les données d'origine ont été segmentées. Contient la partie du message d'origine qui a été utilisée pour créer l'intégration dans. `embedded_data`

Oui, vous pouvez lire les données de plusieurs rubriques Amazon MSK avec cette application. Les données de tous les sujets doivent être du même type (STRING ou JSON), sinon cela pourrait entraîner l'échec de l'application. Les données de tous les sujets sont toujours stockées dans un seul OpenSearch index.

## Où puis-je trouver les nouvelles mises à jour du code source ?
<a name="troubleshooting-blueprints-28"></a>

Accédez à [https://github.com/awslabs/real-time-vectorization-of-streaming-data/releases pour vérifier les nouvelles versions](https://github.com/awslabs/real-time-vectorization-of-streaming-data/releases).

## Puis-je modifier le AWS CloudFormation modèle et mettre à jour l'application Managed Service for Apache Flink ?
<a name="troubleshooting-blueprints-29"></a>

Non, la modification du AWS CloudFormation modèle ne met pas à jour l'application Managed Service for Apache Flink. Toute nouvelle modification AWS CloudFormation implique qu'une nouvelle pile doit être déployée.

## AWS Surveillera-t-il et maintiendra-t-il l'application en mon nom ?
<a name="troubleshooting-blueprints-30"></a>

Non, je ne AWS surveillerai pas, ne mettrai pas à jour ou ne corrigerai pas cette application en votre nom. 

## Cette application déplace-t-elle mes données en dehors du mien Compte AWS ?
<a name="troubleshooting-blueprints-31"></a>

Toutes les données lues et stockées par l'application Managed Service for Apache Flink restent dans votre mémoire Compte AWS et ne quittent jamais votre compte.

# Plans d'intégration vectorielle en temps réel : résolution des problèmes
<a name="troubleshooting-blueprints-TS"></a>

Consultez les rubriques de résolution des problèmes suivantes concernant les plans d'intégration vectorielle en temps réel. Pour plus d'informations sur les plans d'intégration vectorielle en temps réel, consultez la section Plans d'[intégration vectorielle en temps réel](https://docs.aws.amazon.com/msk/latest/developerguide/ai-vector-embedding-integration-learn-more.html).

**Topics**
+ [Mon déploiement de CloudFormation stack a échoué ou a été annulé. Que puis-je faire pour y remédier ?](#troubleshooting-blueprints-deployment)
+ [Je ne veux pas que mon application commence à lire les messages dès le début des rubriques Amazon MSK. Que puis-je faire ?](#troubleshooting-blueprints-beginning)
+ [Comment savoir s'il y a un problème avec mon application Managed Service for Apache Flink et comment puis-je la déboguer ?](#troubleshooting-blueprints-debug)
+ [Quels sont les indicateurs clés que je dois surveiller pour mon application Managed Service for Apache Flink ?](#troubleshooting-blueprints-metrics)

## Mon déploiement de CloudFormation stack a échoué ou a été annulé. Que puis-je faire pour y remédier ?
<a name="troubleshooting-blueprints-deployment"></a>
+ Accédez à votre pile CFN et trouvez la raison de la défaillance de la pile. Cela peut être lié à des autorisations manquantes, à des collisions de noms de AWS ressources, entre autres causes. Corrigez la cause première de l'échec du déploiement. Pour plus d'informations, consultez le [guide de CloudWatch dépannage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#basic-ts-guide).
+  [Facultatif] Il ne peut y avoir qu'un seul point de terminaison VPC par service par VPC. Si vous avez déployé plusieurs plans d'intégration vectorielle en temps réel pour écrire dans les collections Amazon OpenSearch Service d'un même VPC, il est possible qu'ils partagent des points de terminaison VPC. Ils sont peut-être déjà présents dans votre compte pour le VPC ou la première pile de plans d'intégration vectorielle en temps réel créera des points de terminaison VPC pour Amazon Bedrock et Amazon OpenSearch Service qui seront utilisés par toutes les autres piles déployées sur votre compte. Si une pile échoue, vérifiez si cette pile a créé des points de terminaison VPC pour Amazon Bedrock et OpenSearch Amazon Service et supprimez-les s'ils ne sont utilisés nulle part ailleurs dans votre compte. Pour connaître les étapes de suppression des points de terminaison VPC, reportez-vous à la documentation expliquant comment supprimer votre application en toute sécurité.
+ Il se peut que d'autres services ou applications de votre compte utilisent le point de terminaison VPC. Sa suppression peut entraîner une interruption du réseau pour d'autres services. Soyez prudent lorsque vous supprimez ces points de terminaison.

## Je ne veux pas que mon application commence à lire les messages dès le début des rubriques Amazon MSK. Que puis-je faire ?
<a name="troubleshooting-blueprints-beginning"></a>

Vous devez `source.msk.starting.offset` définir explicitement l'une des valeurs suivantes, en fonction du comportement souhaité :
+ **Décalage le plus** ancien : le décalage le plus ancien de la partition.
+ **Dernier décalage** : les consommateurs liront les messages à partir de la fin de la partition.
+ **Décalage validé** : lecture du dernier message traité par le consommateur dans une partition.

## Comment savoir s'il y a un problème avec mon application Managed Service for Apache Flink et comment puis-je la déboguer ?
<a name="troubleshooting-blueprints-debug"></a>

Utilisez le [guide de dépannage du service géré pour Apache Flink](https://docs.aws.amazon.com/managed-flink/latest/java/troubleshooting-runtime.html) pour résoudre les problèmes liés au service géré pour Apache Flink avec votre application.

## Quels sont les indicateurs clés que je dois surveiller pour mon application Managed Service for Apache Flink ?
<a name="troubleshooting-blueprints-metrics"></a>
+ Toutes les métriques disponibles pour un service géré standard pour une application Apache Flink peuvent vous aider à surveiller votre application. Pour plus d'informations, consultez la section [Mesures et dimensions dans Managed Service pour Apache Flink](https://docs.aws.amazon.com/managed-flink/latest/java/metrics-dimensions.html).
+ Pour suivre les statistiques d'Amazon Bedrock, consultez les [ CloudWatch statistiques Amazon pour Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/monitoring.html#runtime-cloudwatch-metrics).
+ Nous avons ajouté deux nouvelles mesures pour surveiller les performances de génération d'intégrations. Trouvez-les sous le nom de `EmbeddingGeneration` l'opération dans CloudWatch. Les deux indicateurs sont les suivants :
  + **BedrockTitanEmbeddingTokenCount**: nombre de jetons présents dans une seule demande adressée à Amazon Bedrock.
  + **BedrockEmbeddingGenerationLatencyMs**: indique le temps nécessaire pour envoyer et recevoir une réponse d'Amazon Bedrock pour générer des intégrations, en millisecondes.
+ Pour les collections sans serveur Amazon OpenSearch Service, vous pouvez utiliser des métriques telles que`IngestionDataRate`, `IngestionDocumentErrors` et d'autres. Pour plus d'informations, consultez la section [Surveillance OpenSearch sans serveur avec Amazon CloudWatch](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/monitoring-cloudwatch.html).
+ Pour les métriques OpenSearch provisionnées, consultez la section [Surveillance des métriques OpenSearch du cluster avec Amazon CloudWatch](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-cloudwatchmetrics.html).