

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Solução de problemas do desenvolvimento
<a name="troubleshooting-development"></a>

Esta seção contém informações sobre como diagnosticar e corrigir problemas de desenvolvimento com seu aplicativo Managed Service for Apache Flink.

**Topics**
+ [Práticas recomendadas de reversão do sistema](troubleshooting-system-rollback.md)
+ [Práticas recomendadas para configuração do Hudi](troubleshooting-hudi.md)
+ [Gráficos de chama do Apache Flink](troubleshooting-update-flamegraphs.md)
+ [Problema do provedor de credenciais com o conector EFO 1.15.2](troubleshooting-credential-provider.md)
+ [Aplicativos com conectores Kinesis não compatíveis](troubleshooting-unsupported-kinesis-connectors.md)
+ [Erro de compilação: “Não foi possível resolver as dependências do projeto”](troubleshooting-compile.md)
+ [Seleção inválida: “kinesisanalyticsv2"](troubleshooting-cli-update.md)
+ [UpdateApplication a ação não está recarregando o código do aplicativo](troubleshooting-update.md)
+ [S3 StreamingFileSink FileNotFoundExceptions](troubleshooting-s3sink.md)
+ [FlinkKafkaConsumer problema com stop with savepoint](troubleshooting-FlinkKafkaConsumer.md)
+ [Deadlock do coletor assíncrono Flink 1.15](troubleshooting-async-deadlock.md)
+ [Processamento da fonte do Amazon Kinesis Data Streams fora de ordem durante a refragmentação](troubleshooting-kinesis-data-streams-processing-out-of-order.md)
+ [Perguntas frequentes e solução de problemas dos esquemas de incorporação de vetores em tempo real](troubleshooting-blueprints.md)

# Práticas recomendadas de reversão do sistema
<a name="troubleshooting-system-rollback"></a>

Com os recursos automáticos de reversão do sistema e visibilidade das operações no Amazon Managed Service for Apache Flink, você pode identificar e resolver problemas com seus aplicativos.

## Reversões do sistema
<a name="troubleshooting-unsupported-kinesis-connectors-error"></a>

Se a operação de atualização ou escalabilidade do seu aplicativo falhar devido a um erro do cliente, como uma falha de código ou problema de permissão, o Amazon Managed Service for Apache Flink tentará automaticamente reverter para a versão em execução anterior se você tiver optado por essa funcionalidade. Para obter mais informações, consulte [Habilite reversões de sistema para seu aplicativo Managed Service for Apache Flink](how-system-rollbacks.md). Se essa reversão automática falhar ou você aderiu ou não a essa funcionalidade, seu aplicativo será colocado no estado `READY`. Para atualizar seu aplicativo, conclua as seguintes etapas:   Verifique o console do Amazon Managed Service for Apache Flink ou use a API `DescribeApplicationOperation` para ver a descrição do erro que explica por que a operação falhou.    Para ver a pilha de erros completa, use os [logs do Cloudwatch](https://docs.aws.amazon.com/managed-flink/latest/java/logging.html).   Os problemas comuns são permissões insuficientes, alterações de código incompatíveis ou configurações incorretas de infraestrutura. Resolva o problema subjacente.    Use a API `UpdateApplicaton` para reimplantar sua nova versão do aplicativo.    

## Reversão manual
<a name="troubleshooting-unsupported-kinesis-connectors-error"></a>

Se o aplicativo não estiver progredindo e estiver em um estado transitório por muito tempo, ou se a transição do aplicativo para `Running` for bem-sucedida, mas você observar problemas posteriores, como erros de processamento em um aplicativo Flink atualizado com sucesso, você poderá revertê-lo manualmente usando a API `RollbackApplication`.

1. Chamada `RollbackApplication` - isso reverterá para a versão anterior em execução e restaurará o estado anterior. 

1. Monitore a operação de reversão usando a API `DescribeApplicationOperation`.

1. Se a reversão falhar, use as etapas anteriores de reversão do sistema.

## Visibilidade das operações
<a name="troubleshooting-unsupported-kinesis-connectors-error"></a>

A API `ListApplicationOperations` mostra o histórico de todas as operações do cliente e do sistema em seu aplicativo.

1. Obtenha o *operationId* da operação com falha na lista.

1. Chame `DescribeApplicationOperation` e verifique o status e *statusDescription*.

1. Se uma operação falhar, a descrição aponta para um possível erro a ser investigado. 

**Falhas comuns de código de erro:** use os recursos de reversão para reverter para a última versão em funcionamento. Resolva as falhas e repita a atualização. 

**Problemas de permissão:** use o `DescribeApplicationOperation` para ver as permissões necessárias. Atualize as permissões do aplicativo e tente novamente. 

**Amazon Managed Service para problemas com o serviço Apache Flink:** verifique AWS Health Dashboard ou abra um caso de suporte.

# Práticas recomendadas para configuração do Hudi
<a name="troubleshooting-hudi"></a>

Para executar conectores Hudi no Managed Service for Apache Flink, recomendamos alterar as seguintes configurações.

Desativar `hoodie.embed.timeline.server`

O conector Hudi no Flink configura um servidor de linha do tempo (TM) incorporado no gerenciador de tarefas do Flink (JM) para armazenar metadados em cache e melhorar o desempenho quando o paralelismo de tarefas é alto. Recomendamos desabilitar esse servidor incorporado no Managed Service for Apache Flink porque desabilitamos a comunicação não-Flink entre JM e TM.

Se esse servidor estiver habilitado, as gravações do Hudi primeiro tentará se conectar ao servidor incorporado no JM e, em seguida, voltará a ler os metadados do Amazon S3. Isso significa que o Hudi incorre em um tempo limite de conexão que atrasa suas gravações e causa um impacto no desempenho do Managed Service for Apache Flink.

# Gráficos de chama do Apache Flink
<a name="troubleshooting-update-flamegraphs"></a>

Os gráficos de chama são habilitados por padrão em aplicativos nas versões do Managed Service for Apache Flink compatíveis com eles. Os gráficos de chama podem afetar o desempenho do aplicativo se você mantiver o gráfico aberto, conforme mencionado na [documentação do Flink](https://nightlies.apache.org/flink/flink-docs-release-1.15//docs/ops/debugging/flame_graphs/). 

 Se você quiser desativar os gráficos de chama para seu aplicativo, crie um caso para solicitar que eles sejam desativados para o ARN do seu aplicativo. Para obter mais informações, consulte o [AWS Support Center](https://console.aws.amazon.com/support/home#/).

# Problema do provedor de credenciais com o conector EFO 1.15.2
<a name="troubleshooting-credential-provider"></a>

Há um [problema conhecido](https://issues.apache.org/jira/browse/FLINK-29205) com as versões do conector EFO do Kinesis Data Streams até 1.15.2 em que `FlinkKinesisConsumer` não respeita a configuração `Credential Provider`. As configurações válidas são desconsideradas devido ao problema, o que resulta no uso do provedor de credenciais `AUTO`. Isso pode causar um problema ao usar o acesso entre contas para o Kinesis usando o conector EFO.

Para resolver esse erro, use o conector EFO versão 1.15.3 ou superior. 

# Aplicativos com conectores Kinesis não compatíveis
<a name="troubleshooting-unsupported-kinesis-connectors"></a>

O Managed Service for Apache Flink for Apache Flink versão 1.15 ou posterior [rejeitará automaticamente a inicialização ou atualização dos aplicativos se eles estiverem usando versões incompatíveis do](https://docs.aws.amazon.com/managed-flink/latest/java/flink-1-15-2.html) Kinesis Connector (pré-versão 1.15.2) agrupadas em aplicativos ou arquivos (ZIP). JARs 

## Erro de rejeição
<a name="troubleshooting-unsupported-kinesis-connectors-error"></a>

Você verá o seguinte erro ao enviar chamadas de criação e atualização do aplicativo por meio de:

```
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
```

## Etapas para remediar
<a name="troubleshooting-unsupported-kinesis-connectors-steps-to-remediate"></a>
+ Atualize a dependência do aplicativo em `flink-connector-kinesis`. Se você estiver usando o Maven como ferramenta de construção do seu projeto, siga [Atualizar uma dependência do Maven](#troubleshooting-unsupported-kinesis-connectors-update-maven-dependency). Se você estiver usando o Gradle, siga [Atualizar uma dependência do Gradle](#troubleshooting-unsupported-kinesis-connectors-update-gradle-dependency).
+ Reempacote o aplicativo.
+ Faça upload para um bucket do Amazon S3.
+ Reenvie a solicitação de criação/atualização do aplicativo com o aplicativo revisado que acabou de ser carregado no bucket do Amazon S3.
+ Se você continuar vendo a mesma mensagem de erro, verifique novamente as dependências do aplicativo. Se o problema persistir, crie um ticket de suporte. 

### Atualizar uma dependência do Maven
<a name="troubleshooting-unsupported-kinesis-connectors-update-maven-dependency"></a>

1. Abra `pom.xml` do projeto.

1. Encontre as dependências do projeto. Elas se parecem com:

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

1. Atualize `flink-connector-kinesis` para uma versão igual ou posterior à 1.15.2. Por exemplo:

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

### Atualizar uma dependência do Gradle
<a name="troubleshooting-unsupported-kinesis-connectors-update-gradle-dependency"></a>

1. Abra `build.gradle` do projeto (ou `build.gradle.kts` para aplicativos Kotlin). 

1. Encontre as dependências do projeto. Elas se parecem com:

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

1. Atualize `flink-connector-kinesis` para uma versão igual ou posterior à 1.15.2. Por exemplo:

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

# Erro de compilação: “Não foi possível resolver as dependências do projeto”
<a name="troubleshooting-compile"></a>

Para compilar os aplicativos de amostra do Managed Service for Apache Flink, você deve primeiro baixar e compilar o conector Apache Flink Kinesis e adicioná-lo ao seu repositório Maven local. Se o conector não tiver sido adicionado ao seu repositório, um erro de compilação semelhante ao seguinte será exibido:

```
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
```

Para resolver esse erro, você deve baixar o código-fonte do Apache Flink (versão 1.8.2 de [https://flink.apache.org/downloads.html](https://flink.apache.org/downloads.html)) para o conector. Para obter instruções sobre como baixar, compilar e instalar o código-fonte do Apache Flink, consulte [Uso do conector Kinesis Streams para o Apache Flink com versões anteriores do Apache Flink](earlier.md#how-creating-apps-building-kinesis).

# Seleção inválida: “kinesisanalyticsv2"
<a name="troubleshooting-cli-update"></a>

Para usar a v2 da API do Managed Service for Apache Flink, você precisa da versão mais recente do AWS Command Line Interface (AWS CLI).

Para obter informações sobre como atualizar o AWS CLI, consulte [Instalando o AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) no *Guia do AWS Command Line Interface Usuário*.

# UpdateApplication a ação não está recarregando o código do aplicativo
<a name="troubleshooting-update"></a>

A [UpdateApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_UpdateApplication.html)ação não recarregará o código do aplicativo com o mesmo nome de arquivo se nenhuma versão do objeto S3 for especificada. Para recarregar o código do aplicativo com o mesmo nome de arquivo, habilite o versionamento em seu bucket do S3 e especifique a nova versão do objeto usando o parâmetro `ObjectVersionUpdate`. Para obter mais informações sobre habilitação de versionamento de objetos em um bucket do S3, consulte [Habilitação e desativação de versionamento](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/enable-versioning.html).

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

O Managed Service for Apache Flink pode se deparar com `FileNotFoundException` em um arquivo parcial em andamento ao iniciar a partir de instantâneos se o arquivo parcial em andamento referido tiver seu ponto de salvamento ausente. Quando esse modo de falha ocorre, o estado do operador do aplicativo Managed Service for Apache Flink geralmente não é recuperável e deve ser reiniciado sem o instantâneo, usando `SKIP_RESTORE_FROM_SNAPSHOT`. Veja o seguinte exemplo de stacktrace:

```
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)
...
```

O `StreamingFileSink` do Flink grava registros em sistemas de arquivos compatíveis com o [File Systems](https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/deployment/filesystems/overview/). Como os fluxos de entrada podem não ser vinculados, os dados são organizados em arquivos parciais de tamanho finito com novos arquivos adicionados à medida que os dados são gravados. O ciclo de vida parcial e a política de sobreposição determinam o tempo, o tamanho e a nomenclatura dos arquivos parciais. 

Durante o ponto de verificação e o ponto de salvamento (captura instantânea), todos os arquivos pendentes são renomeados e confirmados. No entanto, os arquivos parciais em andamento não são confirmados, mas renomeados, e sua referência é mantida nos metadados do ponto de verificação ou do ponto de salvamento para serem usados na restauração de trabalhos. Esses arquivos parciais em andamento acabarão sendo transferidos para pendentes, renomeados e confirmados por um ponto de verificação ou ponto de salvamento subsequente.

A seguir estão as principais causas e a mitigação da ausência do arquivo parcial em andamento:
+ Snapshot obsoleto usado para iniciar o aplicativo Managed Service for Apache Flink — somente o último snapshot do sistema obtido quando um aplicativo é interrompido ou atualizado pode ser usado para iniciar um aplicativo Managed Service for Apache Flink com o Amazon S3. StreamingFileSink Para evitar essa classe de falha, use o instantâneo mais recente do sistema.
  + Isso acontece, por exemplo, quando você seleciona um instantâneo criado usando `CreateSnapshot`, em vez de um instantâneo acionado pelo sistema, durante a interrupção ou atualização. O ponto de salvamento do snapshot antigo mantém uma out-of-date referência ao arquivo de peça em andamento que foi renomeado e confirmado pelo ponto de verificação ou ponto de salvamento subsequente.
  + Isso também pode acontecer quando um instantâneo acionado pelo sistema de um Stop/Update evento não mais recente é selecionado. Um exemplo é um aplicativo com o instantâneo do sistema desativado, mas `RESTORE_FROM_LATEST_SNAPSHOT` configurado. Geralmente, o Managed Service para aplicativos Apache Flink com o Amazon StreamingFileSink S3 deve sempre ter o snapshot do sistema ativado e configurado. `RESTORE_FROM_LATEST_SNAPSHOT`
+ Arquivo parcial em andamento removido. Como o arquivo parcial em andamento está localizado em um bucket do S3, ele pode ser removido por outros componentes ou atores que tenham acesso ao bucket. 
  + Isso pode acontecer quando você interrompe seu aplicativo por muito tempo e o arquivo de parte em andamento referido pelo ponto de salvamento do seu aplicativo foi removido pela política de ciclo de vida do bucket do [S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpu-abort-incomplete-mpu-lifecycle-config.html). MultiPartUpload Para evitar essa classe de falha, certifique-se de que sua política de ciclo de vida do S3 Bucket MPU cubra um período suficientemente grande para seu caso de uso.
  + Isso também pode acontecer quando o arquivo parcial em andamento é removido manualmente ou por outro componente do sistema. Para evitar essa classe de falha, certifique-se de que os arquivos parciais em andamento não sejam removidos por outros atores ou componentes.
+ Condição de corrida em que um ponto de verificação automatizado é acionado após o ponto de salvamento. Isso afeta as versões do Managed Service para Apache Flink até 1.13, inclusive. Esse problema foi corrigido no Managed Service for Apache Flink versão 1.15. Migre seu aplicativo para a versão mais recente do Managed Service for Apache Flink para evitar recorrências. Também sugerimos migrar de StreamingFileSink para [FileSink](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/connectors/datastream/filesystem/#file-sink).
  + Quando os aplicativos são interrompidos ou atualizados, o Managed Service for Apache Flink aciona um ponto de salvamento e interrompe o aplicativo em duas etapas. Se um ponto de verificação automatizado for acionado entre as duas etapas, o ponto de salvamento ficará inutilizável, pois seu arquivo parcial em andamento será renomeado e potencialmente confirmado.

# FlinkKafkaConsumer problema com stop with savepoint
<a name="troubleshooting-FlinkKafkaConsumer"></a>

Ao usar o legado, FlinkKafkaConsumer existe a possibilidade de seu aplicativo ficar preso em UPDATE, STOPPING ou SCALING, se você tiver os instantâneos do sistema habilitados. Não há nenhuma correção publicada disponível para esse [problema](https://issues.apache.org/jira/browse/FLINK-28758), portanto, recomendamos que você atualize para a nova [KafkaSource](https://nightlies.apache.org/flink/flink-docs-master/docs/connectors/datastream/kafka/#kafka-source)para mitigar esse problema. 

Se você estiver usando `FlinkKafkaConsumer` com instantâneos habilitados, existe a possibilidade de, quando o trabalho do Flink processar uma solicitação da API de interrupção com ponto de salvamento, que `FlinkKafkaConsumer` possa falhar com um erro de runtime relatando `ClosedException`. Sob essas condições, o aplicativo Flink fica preso, manifestando-se como pontos de verificação com falha. 

# Deadlock do coletor assíncrono Flink 1.15
<a name="troubleshooting-async-deadlock"></a>

Há um [problema conhecido](https://issues.apache.org/jira/browse/FLINK-32230) com AWS conectores para a interface de implementação do Apache Flink. AsyncSink Isso afeta os aplicativos que usam o Flink 1.15 com os seguintes conectores: 
+ Para aplicativos 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/PythonAplicações do 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`

Os aplicativos afetados apresentarão os seguintes sintomas:
+ O trabalho do Flink está no estado de `RUNNING`, mas não está processando dados;
+ Não há reinicializações do trabalho;
+ Os pontos de controle estão atingindo o tempo limite.

O problema é causado por um [bug](https://github.com/aws/aws-sdk-java-v2/issues/4354) no AWS SDK que faz com que ele não mostre certos erros ao chamador ao usar o cliente HTTP assíncrono. Isso faz com que o coletor espere indefinidamente pela conclusão de uma “solicitação em trânsito” durante uma operação de descarga no ponto de controle.

Esse problema foi corrigido no AWS SDK a partir da versão **2.20.144**. 

A seguir estão as instruções sobre como atualizar os conectores afetados para usar a nova versão do AWS SDK em seus aplicativos:

**Topics**
+ [Atualizar aplicativos Java](troubleshooting-async-deadlock-update-java-apps.md)
+ [Atualizar aplicativos Python](troubleshooting-async-deadlock-update-python-apps.md)

# Atualizar aplicativos Java
<a name="troubleshooting-async-deadlock-update-java-apps"></a>

Siga os procedimentos abaixo para atualizar os aplicativos Java:

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

Se o aplicativo usa `flink-connector-kinesis`:

O conector Kinesis usa sombreamento para empacotar algumas dependências, incluindo o AWS SDK, no jarro de conectores. Para atualizar a versão do AWS SDK, use o procedimento a seguir para substituir essas classes sombreadas:

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

1. Adicione o conector Kinesis e os módulos AWS SDK necessários como dependências do projeto.

1. Configure `maven-shade-plugin`:

   1. Adicione um filtro para excluir classes sombreadas do AWS SDK ao copiar o conteúdo do jar do conector Kinesis.

   1. Adicione uma regra de realocação para mover as classes atualizadas AWS do SDK para o pacote, conforme esperado pelo conector 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. Adicione o conector Kinesis e os módulos AWS SDK necessários como dependências do projeto.

1. Ajuste a configuração do ShadowJar:

   1. Exclua classes de AWS SDK sombreadas ao copiar o conteúdo do jar do conector Kinesis.

   1. Realoque as classes AWS do SDK atualizadas para um pacote esperado pelo conector 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")
   }
   ...
   ```

------

## Outros conectores afetados
<a name="troubleshooting-async-deadlock-update-java-apps-flink-another-connector"></a>

Se o aplicativo usar outro conector afetado:

Para atualizar a versão do AWS SDK, a versão do SDK deve ser aplicada na configuração de compilação do projeto.

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

Adicione a lista de materiais (BOM) do AWS SDK à seção de gerenciamento de dependências do `pom.xml` arquivo para impor a versão do SDK para o projeto.

**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 ]

Adicione dependência de plataforma à lista de materiais (BOM) do AWS SDK para aplicar a versão do SDK ao projeto. Isso requer o Gradle 5.0 ou mais recente:

**build.gradle**

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

------

# Atualizar aplicativos Python
<a name="troubleshooting-async-deadlock-update-python-apps"></a>

Os aplicativos Python podem usar conectores de duas maneiras diferentes: empacotar conectores e outras dependências Java como parte de um único uber-jar ou usar o jar de conectores diretamente. Para corrigir aplicativos afetados pelo deadlock do Async Sink:
+ Se o aplicativo usar um uber jar, siga as instruções para [Atualizar aplicativos Java](troubleshooting-async-deadlock-update-java-apps.md).
+ Para recriar jars de conectores a partir da fonte, use as seguintes etapas:

**Construir conectores a partir da fonte:**

Pré-requisitos, semelhantes aos [requisitos de compilação](https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/flinkdev/building/#build-flink) do 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. Baixe o código-fonte do Flink 1.15.4:

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

1. Descompactar código-fonte:

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

1. Navegue até o diretório do conector kinesis

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

1. Compile e instale o jar de conectores, especificando a versão necessária do AWS SDK. Para acelerar a compilação, use `-DskipTests` para ignorar a execução do teste e `-Dfast` para ignorar verificações adicionais do código-fonte:

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

1. Navegue até o diretório do conector kinesis

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

1. Compile e instale o jar do conector sql:

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

1. O jar resultante estará disponível em:

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

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

1. Baixe o código-fonte do Flink 1.15.4:

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

1. Descompactar código-fonte:

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

1. Navegue até o diretório do conector kinesis

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

1. Compile e instale o jar de conectores, especificando a versão necessária do AWS SDK. Para acelerar a compilação, use `-DskipTests` para ignorar a execução do teste e `-Dfast` para ignorar verificações adicionais do código-fonte:

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

1. Navegue até o diretório do conector kinesis

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

1. Compile e instale o jar do conector sql:

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

1. O jar resultante estará disponível em:

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

## flink-sql-connector-aws-quinesis-mangueira de incêndio
<a name="troubleshooting-async-deadlock-update-python-apps-flink-sql-connector-kinesis-firehose"></a>

1. Baixe o código-fonte do Flink 1.15.4:

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

1. Descompactar código-fonte:

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

1. Navegue até o diretório do conector

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

1. Compile e instale o jar de conectores, especificando a versão necessária do AWS SDK. Para acelerar a compilação, use `-DskipTests` para ignorar a execução do teste e `-Dfast` para ignorar verificações adicionais do código-fonte:

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

1. Navegue até o diretório do conector sql

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

1. Compile e instale o jar do conector sql:

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

1. O jar resultante estará disponível em:

   ```
   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. Baixe o código-fonte do 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. Descompactar código-fonte:

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

1. Navegue até o diretório do conector

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

1. Compile e instale o jar de conectores, especificando a versão necessária do AWS SDK. Para acelerar a compilação, use `-DskipTests` para ignorar a execução do teste e `-Dfast` para ignorar verificações adicionais do código-fonte:

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

1. O jar resultante estará disponível em:

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

# Processamento da fonte do Amazon Kinesis Data Streams fora de ordem durante a refragmentação
<a name="troubleshooting-kinesis-data-streams-processing-out-of-order"></a>

A FlinkKinesisConsumer implementação atual não oferece garantias sólidas de ordenação entre os fragmentos do Kinesis. Isso pode levar ao out-of-order processamento durante a refragmentação do Kinesis Stream, especialmente para aplicativos Flink que apresentam atraso no processamento. Em algumas circunstâncias, por exemplo, os operadores de Windows baseados nos horários dos eventos, os eventos podem ser descartados devido ao atraso resultante. 

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


Esse é um [problema conhecido](https://issues.apache.org/jira/browse/FLINK-6349) no Open Source Flink. Até que a correção do conector seja disponibilizada, verifique se os aplicativos Flink não estão mais lentos do que o Kinesis Data Streams durante o reparticionamento. Ao garantir que o atraso no processamento seja tolerado por seus aplicativos Flink, você pode minimizar o impacto do out-of-order processamento e o risco de perda de dados. 

# Perguntas frequentes e solução de problemas dos esquemas de incorporação de vetores em tempo real
<a name="troubleshooting-blueprints"></a>

Consulte as perguntas frequentes e as seções de solução de problemas a seguir para solucionar problemas de esquema de incorporação de vetores em tempo real. Para obter mais informações sobre esquemas de incorporação de vetores em tempo real, consulte [Esquemas de incorporação de vetores em tempo real](https://docs.aws.amazon.com/msk/latest/developerguide/ai-vector-embedding-integration-learn-more.html).

[Para a solução geral de problemas do aplicativo Managed Service for Apache Flink, consulte 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**
+ [Esquemas de incorporação de vetores em tempo real - Perguntas frequentes](troubleshooting-blueprints-FAQ.md)
+ [Esquemas de incorporação de vetores em tempo real - solução de problemas](troubleshooting-blueprints-TS.md)

# Esquemas de incorporação de vetores em tempo real - Perguntas frequentes
<a name="troubleshooting-blueprints-FAQ"></a>

Leia as perguntas frequentes a seguir sobre esquemas de incorporação de vetores em tempo real. Para obter mais informações sobre esquemas de incorporação de vetores em tempo real, consulte [Esquemas de incorporação de vetores em tempo real](https://docs.aws.amazon.com/msk/latest/developerguide/ai-vector-embedding-integration-learn-more.html).

**Topics**
+ [Quais AWS recursos esse plano cria?](#troubleshooting-blueprints-1)
+ [Quais são minhas ações após a conclusão da implantação da AWS CloudFormation pilha?](#troubleshooting-blueprints-2)
+ [Qual deve ser a estrutura dos dados nos tópicos de origem do Amazon MSK?](#troubleshooting-blueprints-3)
+ [Posso especificar partes de uma mensagem para incorporar?](#troubleshooting-blueprints-4)
+ [Posso ler dados de vários tópicos do Amazon MSK?](#troubleshooting-blueprints-5)
+ [Posso usar regex para configurar nomes de tópicos do Amazon MSK?](#troubleshooting-blueprints-6)
+ [Qual é o tamanho máximo de uma mensagem que pode ser lida em um tópico do Amazon MSK?](#troubleshooting-blueprints-7)
+ [Que tipo de OpenSearch é compatível?](#troubleshooting-blueprints-8)
+ [Por que preciso usar uma coleção de pesquisa vetorial, um índice vetorial e adicionar um campo vetorial na minha coleção OpenSearch Serverless?](#troubleshooting-blueprints-9)
+ [O que devo definir como dimensão do meu campo vetorial?](#troubleshooting-blueprints-10)
+ [Qual é a aparência da saída no OpenSearch índice configurado?](#troubleshooting-blueprints-11)
+ [Posso especificar campos de metadados para adicionar ao documento armazenado no OpenSearch índice?](#troubleshooting-blueprints-12)
+ [Devo esperar entradas duplicadas no OpenSearch índice?](#troubleshooting-blueprints-13)
+ [Posso enviar dados para vários OpenSearch índices?](#troubleshooting-blueprints-14)
+ [Posso implantar vários aplicativos de incorporação de vetores em tempo real em um único Conta da AWS?](#troubleshooting-blueprints-15)
+ [Vários aplicativos de incorporação de vetores em tempo real podem usar a mesma fonte ou coletor de dados?](#troubleshooting-blueprints-16)
+ [O aplicativo oferece suporte à conectividade entre contas?](#troubleshooting-blueprints-17)
+ [O aplicativo oferece suporte à conectividade entre regiões?](#troubleshooting-blueprints-18)
+ [Meu cluster e minha OpenSearch coleção do Amazon MSK podem estar em redes diferentes VPCs ou em sub-redes?](#troubleshooting-blueprints-19)
+ [Quais modelos de incorporação são compatíveis com o aplicativo?](#troubleshooting-blueprints-20)
+ [Posso ajustar o desempenho do meu aplicativo com base na minha workload?](#troubleshooting-blueprints-21)
+ [Quais tipos de autenticação do Amazon MSK são compatíveis?](#troubleshooting-blueprints-22)
+ [O que é `sink.os.bulkFlushIntervalMillis` e como faço para configurá-lo?](#troubleshooting-blueprints-23)
+ [Quando eu implantar meu aplicativo Managed Service for Apache Flink, a partir de qual ponto do tópico do Amazon MSK ele começará a ler as mensagens?](#troubleshooting-blueprints-24)
+ [Como usar `source.msk.starting.offset`?](#troubleshooting-blueprints-25)
+ [Quais estratégias de fragmentação são suportadas?](#troubleshooting-blueprints-26)
+ [Como faço para ler registros no meu datastore vetorial?](#troubleshooting-blueprints-27)
+ [Onde posso encontrar novas atualizações do código-fonte?](#troubleshooting-blueprints-28)
+ [Posso fazer uma alteração no AWS CloudFormation modelo e atualizar o aplicativo Managed Service for Apache Flink?](#troubleshooting-blueprints-29)
+ [Vou AWS monitorar e manter o aplicativo em meu nome?](#troubleshooting-blueprints-30)
+ [Esse aplicativo move meus dados para fora do meu Conta da AWS?](#troubleshooting-blueprints-31)

## Quais AWS recursos esse plano cria?
<a name="troubleshooting-blueprints-1"></a>

Para encontrar recursos implantados em sua conta, navegue até o AWS CloudFormation console e identifique o nome da pilha que começa com o nome que você forneceu para o aplicativo Managed Service for Apache Flink. Selecione a guia **Recursos** para verificar os recursos criados como parte da pilha. A seguir estão os principais recursos que a pilha cria:
+ Incorporação de vetores em tempo real para aplicativo Managed Service for Apache Flink
+ Bucket do Amazon S3 para armazenar o código-fonte do aplicativo de incorporação de vetores em tempo real
+ CloudWatch grupo de registros e fluxo de registros para armazenar registros
+ Funções do Lambda para buscar e criar recursos
+ Funções e políticas do IAM para Lambdas, serviço gerenciado para o aplicativo Apache Flink e acesso ao Amazon Bedrock e ao Amazon Service OpenSearch 
+ Política de acesso a dados para Amazon OpenSearch Service
+ Endpoints VPC para acessar o Amazon Bedrock e o Amazon Service OpenSearch 

## Quais são minhas ações após a conclusão da implantação da AWS CloudFormation pilha?
<a name="troubleshooting-blueprints-2"></a>

Depois que a implantação da AWS CloudFormation pilha for concluída, acesse o console do Managed Service for Apache Flink e encontre seu plano de Managed Service para o aplicativo Apache Flink. Escolha a guia **Configurar** e confirme se todas as propriedades de runtime estão configuradas corretamente. Elas podem passar para a próxima página. Quando você tiver certeza das configurações, selecione **Executar**. O aplicativo começará a ingerir mensagens do seu tópico.

Para verificar novos lançamentos, consulte [https://github.com/awslabs/real-time-vectorization-of-streaming-data/releases](https://github.com/awslabs/real-time-vectorization-of-streaming-data/releases).

## Qual deve ser a estrutura dos dados nos tópicos de origem do Amazon MSK?
<a name="troubleshooting-blueprints-3"></a>

Atualmente, oferecemos suporte a dados de origem estruturados e não estruturados. 
+ Os dados não estruturados são indicados por `STRING` no `source.msk.data.type`. Os dados são lidos no estado em que se encontram na mensagem recebida.
+ Atualmente, oferecemos suporte a dados JSON estruturados, indicados por `JSON` no `source.msk.data.type`. Os dados devem estar sempre no formato JSON. Se o aplicativo receber um JSON com defeito, o aplicativo falhará. 
+ Ao usar JSON como tipo de dados de origem, certifique-se de que cada mensagem em todos os tópicos de origem seja um JSON válido. Se você assinar um ou mais tópicos que não contenham objetos JSON com essa configuração, o aplicativo falhará. Se um ou mais tópicos tiverem uma combinação de dados estruturados e não estruturados, recomendamos configurar os dados de origem como não estruturados no aplicativo Managed Service for Apache Flink. 

## Posso especificar partes de uma mensagem para incorporar?
<a name="troubleshooting-blueprints-4"></a>
+ Para dados de entrada não estruturados onde estão `source.msk.data.type``STRING`, o aplicativo sempre incorporará a mensagem inteira e armazenará a mensagem inteira no índice configurado OpenSearch .
+ Para dados de entrada estruturados onde `source.msk.data.type` é `JSON`, você pode configurar `embed.input.config.json.fieldsToEmbed` para especificar qual campo no objeto JSON deve ser selecionado para incorporação. Isso só funciona para campos JSON de nível superior e não funciona com mensagens aninhadas JSONs e com mensagens contendo uma matriz JSON. Use .\$1 para incorporar todo o JSON.

## Posso ler dados de vários tópicos do Amazon MSK?
<a name="troubleshooting-blueprints-5"></a>

Sim, você pode ler dados de vários tópicos do Amazon MSK com esse aplicativo. Os dados de todos os tópicos devem ser do mesmo tipo (STRING ou JSON) ou isso pode causar falha no aplicativo. Os dados de todos os tópicos são sempre armazenados em um único OpenSearch índice.

## Posso usar regex para configurar nomes de tópicos do Amazon MSK?
<a name="troubleshooting-blueprints-6"></a>

O `source.msk.topic.names` não oferece suporte a uma lista de regex. Oferecemos suporte para uma lista separada por vírgulas de nomes de tópicos ou `.*` regex para incluir todos os tópicos.

## Qual é o tamanho máximo de uma mensagem que pode ser lida em um tópico do Amazon MSK?
<a name="troubleshooting-blueprints-7"></a>

O tamanho máximo de uma mensagem que pode ser processada é limitado pelo limite de InvokeModel corpo do Amazon Bedrock, atualmente definido como 25.000.000. Para obter mais informações, consulte [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html#API_runtime_InvokeModel_RequestBody).

## Que tipo de OpenSearch é compatível?
<a name="troubleshooting-blueprints-8"></a>

Oferecemos suporte tanto para OpenSearch domínios quanto para coleções. Se você estiver usando uma OpenSearch coleção, certifique-se de usar uma coleção de vetores e criar um índice vetorial para usar neste aplicativo. Isso permitirá que você use os recursos OpenSearch do banco de dados vetoriais para consultar seus dados. Para saber mais, consulte a [explicação dos recursos de banco de dados vetoriais do Amazon OpenSearch Service](https://aws.amazon.com/blogs/big-data/amazon-opensearch-services-vector-database-capabilities-explained/).

## Por que preciso usar uma coleção de pesquisa vetorial, um índice vetorial e adicionar um campo vetorial na minha coleção OpenSearch Serverless?
<a name="troubleshooting-blueprints-9"></a>

O tipo de coleta de *pesquisa vetorial* no OpenSearch Serverless fornece um recurso de pesquisa por similaridade que é escalável e de alto desempenho. Isso simplifica a criação de experiências modernas de pesquisa aumentada de machine learning (ML) e aplicativos de inteligência artificial generativa (IA). Para obter mais informações, consulte [Como trabalhar com coleções de pesquisas vetoriais](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-vector-search.html?icmpid=docs_console_unmapped).

## O que devo definir como dimensão do meu campo vetorial?
<a name="troubleshooting-blueprints-10"></a>

Defina a dimensão do campo de vetor com base no modelo de incorporação que deseja usar. Consulte a tabela a seguir e confirme esses valores na respectiva documentação.


**Dimensões do campo vetorial**  

| Nome do modelo de incorporação de vetores do Amazon Bedrock | Suporte de dimensão de saída oferecido pelo modelo  | 
| --- | --- | 
|  Incorporações de texto Amazon Titan V1  | 1.536 | 
|  Incorporador de Texto do Amazon Titan v2  | 1.024 (padrão), 384, 256 | 
|  Amazon Titan Multimodal Embeddings G1  | 1.024 (padrão), 384, 256 | 
|  Cohere Embed English  | 1,024 | 
|  Cohere Embed Multilíngue  | 1,024 | 

## Qual é a aparência da saída no OpenSearch índice configurado?
<a name="troubleshooting-blueprints-11"></a>

Cada documento no OpenSearch índice contém os seguintes campos:
+ **original\$1data**: os dados que foram usados para gerar incorporações. Para o tipo STRING, é a mensagem inteira. Para o objeto JSON, é aquele que foi usado para incorporações. Pode ser o JSON inteiro na mensagem ou campos especificados no JSON. Por exemplo, se o nome fosse selecionado para ser incorporado nas mensagens recebidas, a saída teria a seguinte aparência:

  ```
  "original_data": "{\"name\":\"John Doe\"}"
  ```
+ **embedded\$1data**: uma matriz vetorial flutuante de incorporações gerada pelo Amazon Bedrock
+ **data**: carimbo de data/hora UTC em que o documento foi armazenado OpenSearch

## Posso especificar campos de metadados para adicionar ao documento armazenado no OpenSearch índice?
<a name="troubleshooting-blueprints-12"></a>

Não, atualmente, não oferecemos suporte à adição de campos adicionais ao documento final armazenado no OpenSearch índice.

## Devo esperar entradas duplicadas no OpenSearch índice?
<a name="troubleshooting-blueprints-13"></a>

Dependendo de como você configurou seu aplicativo, talvez veja mensagens duplicadas no índice. Um motivo comum é a reinicialização do aplicativo. O aplicativo é configurado por padrão para começar a ler a partir da mensagem mais antiga no tópico da fonte. Quando você altera a configuração, o aplicativo reinicia e processa todas as mensagens no tópico novamente. Para evitar o reprocessamento, consulte a documentação sobre como usar source.msk.starting.offset e definir corretamente o deslocamento inicial para seu aplicativo.

## Posso enviar dados para vários OpenSearch índices?
<a name="troubleshooting-blueprints-14"></a>

Não, o aplicativo suporta o armazenamento de dados em um único OpenSearch índice. Para configurar a saída de vetorização para vários índices, você deve implantar um serviço gerenciado separado para aplicativos Apache Flink.

## Posso implantar vários aplicativos de incorporação de vetores em tempo real em um único Conta da AWS?
<a name="troubleshooting-blueprints-15"></a>

Sim, você pode implantar vários serviços gerenciados de incorporação de vetores em tempo real para aplicativos Apache Flink em um único Conta da AWS se cada aplicativo tiver um nome exclusivo.

## Vários aplicativos de incorporação de vetores em tempo real podem usar a mesma fonte ou coletor de dados?
<a name="troubleshooting-blueprints-16"></a>

Sim, você pode criar vários serviços gerenciados de incorporação de vetores em tempo real para aplicativos Apache Flink que leem dados do mesmo tópico ou armazenam dados no mesmo índice.

## O aplicativo oferece suporte à conectividade entre contas?
<a name="troubleshooting-blueprints-17"></a>

Não, para que o aplicativo seja executado com sucesso, o cluster Amazon MSK e a OpenSearch coleção devem estar no mesmo Conta da AWS local em que você está tentando configurar seu serviço gerenciado para o aplicativo Apache Flink.

## O aplicativo oferece suporte à conectividade entre regiões?
<a name="troubleshooting-blueprints-18"></a>

Não, o aplicativo só permite que você implante um serviço gerenciado para o aplicativo Apache Flink com um cluster Amazon MSK e uma OpenSearch coleção na mesma região do serviço gerenciado para o aplicativo Apache Flink.

## Meu cluster e minha OpenSearch coleção do Amazon MSK podem estar em redes diferentes VPCs ou em sub-redes?
<a name="troubleshooting-blueprints-19"></a>

Sim, oferecemos suporte ao cluster e à OpenSearch coleção do Amazon MSK em diferentes redes VPCs e sub-redes, desde que estejam na mesma. Conta da AWS Consulte (Solução geral de problemas do MSF) para verificar se a configuração está correta.

## Quais modelos de incorporação são compatíveis com o aplicativo?
<a name="troubleshooting-blueprints-20"></a>

Atualmente, o aplicativo oferece suporte a todos os modelos compatíveis com o Bedrock. Isso inclui:
+ Amazon Titan Embeddings G1 - Text
+  Incorporador de Texto do Amazon Titan v2
+  Amazon Titan Multimodal Embeddings G1 
+  Cohere Embed English 
+  Cohere Embed Multilíngue 

## Posso ajustar o desempenho do meu aplicativo com base na minha workload?
<a name="troubleshooting-blueprints-21"></a>

Sim. O throughput do aplicativo depende de vários fatores, todos os quais podem ser controlados pelos clientes: 

1. **AWS MSF KPUs**: O aplicativo é implantado com fator de paralelismo padrão 2 e paralelismo por KPU 1, com o escalonamento automático ativado. No entanto, recomendamos que você configure o escalonamento do aplicativo do Managed Service for Apache Flink de acordo com suas workloads. Para obter mais informações, consulte [Analise os recursos de aplicativo do Managed Service for Apache Flink](https://docs.aws.amazon.com/managed-flink/latest/java/how-resources.html).

1. **Amazon Bedrock**: com base no modelo sob demanda selecionado do Amazon Bedrock, diferentes cotas podem ser aplicadas. Analise as cotas de serviço no Bedrock para ver a workload que o serviço será capaz de suportar. Para obter mais informações, consulte [Cotas do Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html).

1. **Amazon OpenSearch Service**: Além disso, em algumas situações, você pode perceber que esse OpenSearch é o gargalo em seu funil. Para obter informações sobre escalabilidade, consulte OpenSearch [Dimensionamento de domínios do OpenSearch Amazon Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/sizing-domains.html).

## Quais tipos de autenticação do Amazon MSK são compatíveis?
<a name="troubleshooting-blueprints-22"></a>

IAM MSK é o único tipo de autenticação compatível.

## O que é `sink.os.bulkFlushIntervalMillis` e como faço para configurá-lo?
<a name="troubleshooting-blueprints-23"></a>

Ao enviar dados para o Amazon OpenSearch Service, o intervalo de descarga em massa é o intervalo no qual a solicitação em massa é executada, independentemente do número de ações ou do tamanho da solicitação. O valor padrão é definido para 1 milissegundo.

Embora definir um intervalo de flush possa ajudar a garantir que os dados sejam indexados em tempo hábil, também pode aumentar a sobrecarga se definido como muito baixo. Considere seu caso de uso e a importância da indexação oportuna ao escolher um intervalo de flush.

## Quando eu implantar meu aplicativo Managed Service for Apache Flink, a partir de qual ponto do tópico do Amazon MSK ele começará a ler as mensagens?
<a name="troubleshooting-blueprints-24"></a>

O aplicativo começará a ler mensagens do tópico do Amazon MSK no deslocamento especificado pela configuração `source.msk.starting.offset` definida na configuração de runtime do aplicativo. Se `source.msk.starting.offset` não for definido explicitamente, o comportamento padrão do aplicativo é começar a ler a partir da primeira mensagem disponível no tópico.

## Como usar `source.msk.starting.offset`?
<a name="troubleshooting-blueprints-25"></a>

Defina s`ource.msk.starting.offset` explicitamente com um dos seguintes valores, com base no comportamento desejado: 


+  MAIS ANTIGO: a configuração padrão, que lê o deslocamento mais antigo na partição. Essa é uma boa opção, especialmente se: 
  +  Você criou tópicos e aplicativos para consumidores do Amazon MSK recentemente.
  +  Você precisa reproduzir os dados para poder compilar ou reconstruir o estado. Isso é relevante ao implementar o padrão de fornecimento de eventos ou ao inicializar um novo serviço que requer uma visão completa do histórico de dados. 
+ MAIS RECENTE: o Managed Service for Apache Flink lerá as mensagens do final da partição. Recomendamos essa opção se você se preocupa apenas com a produção de novas mensagens e não precisa processar dados históricos. Nessa configuração, o consumidor ignorará as mensagens existentes e lerá somente as novas mensagens publicadas pelo produtor precedente.
+ COMPROMETIDO: o aplicativo Managed Service for Apache Flink começará a consumir mensagens da compensação confirmada do grupo consumidor. Se a compensação confirmada não existir, será usada a estratégia de redefinição MAIS ANTIGA. 

## Quais estratégias de fragmentação são suportadas?
<a name="troubleshooting-blueprints-26"></a>

Estamos usando a biblioteca [langchain](https://js.langchain.com/v0.1/docs/get_started/introduction/) para fragmentar as entradas. A fragmentação só é aplicada se o comprimento da entrada for maior que o `maxSegmentSizeInChars` escolhido. Nós oferecemos suporte aos seguintes cinco tipos de fragmentação:
+ `SPLIT_BY_CHARACTER`: caberá o máximo de caracteres possível em cada pedaço, onde o comprimento de cada pedaço não for maior que. maxSegmentSize InChars Não se importa com espaços em branco, então pode cortar palavras.
+ `SPLIT_BY_WORD`: encontrará caracteres de espaço em branco para usar como referência ao fragmentar. Nenhuma palavra é cortada.
+ `SPLIT_BY_SENTENCE`: os limites das sentenças são detectados usando a biblioteca Apache OpenNLP com o modelo de sentença em inglês.
+ `SPLIT_BY_LINE`: encontrará novos caracteres de linha para usar como referência ao fragmentar.
+ `SPLIT_BY_PARAGRAPH`: encontrará novos caracteres de linha consecutivos para usar como referência ao fragmentar.

As estratégias de divisão recorrem às opções anteriores de acordo com a ordem anterior, onde as estratégias de fragmentação maiores, como `SPLIT_BY_PARAGRAPH`, retornam a `SPLIT_BY_CHARACTER`. Por exemplo, ao usar `SPLIT_BY_LINE`, se uma linha for muito longa, a linha será subfragmentada por sentença, onde cada fragmento abrigará o máximo de sentenças possível. Se houver alguma sentença muito longa, ela será dividida no nível da palavra. Se uma palavra for muito longa, ela será dividida por caractere.

## Como faço para ler registros no meu datastore vetorial?
<a name="troubleshooting-blueprints-27"></a>

1. Quando `source.msk.data.type` é `STRING`
   + **original\$1data**: toda a string original da mensagem do Amazon MSK.
   + **embedded\$1data**: vetor de incorporação criado a partir de `chunk_data` se não estiver vazio (fragmentação aplicada) ou criado a partir de `original_data` se nenhuma fragmentação tiver sido aplicada.
   + **chunk\$1data**: presente somente quando os dados originais foram fragmentados. Contém o fragmento da mensagem original que foi usada para criar a incorporação em `embedded_data`.

1. Quando `source.msk.data.type` é `JSON`
   + **original\$1data**: todo o JSON original da mensagem do Amazon MSK *após* a aplicação da filtragem da chave JSON. 
   + **embedded\$1data**: vetor de incorporação criado a partir de `chunk_data` se não estiver vazio (fragmentação aplicada) ou criado a partir de `original_data` se nenhuma fragmentação tiver sido aplicada.
   + **chunk\$1key**: presente somente quando os dados originais foram fragmentados. Contém a chave JSON de onde vem o fragmento no `original_data`. Por exemplo, pode ser semelhante `jsonKey1.nestedJsonKeyA` para chaves aninhadas ou *metadados* no exemplo do `original_data`.
   + **chunk\$1data**: presente somente quando os dados originais foram fragmentados. Contém o fragmento da mensagem original que foi usada para criar a incorporação em `embedded_data`.

Sim, você pode ler dados de vários tópicos do Amazon MSK com esse aplicativo. Os dados de todos os tópicos devem ser do mesmo tipo (STRING ou JSON) ou isso pode causar falha no aplicativo. Os dados de todos os tópicos são sempre armazenados em um único OpenSearch índice.

## Onde posso encontrar novas atualizações do código-fonte?
<a name="troubleshooting-blueprints-28"></a>

Acesse [https://github.com/awslabs/real-time-vectorization-of-streaming-data/releases para verificar se há novos lançamentos](https://github.com/awslabs/real-time-vectorization-of-streaming-data/releases).

## Posso fazer uma alteração no AWS CloudFormation modelo e atualizar o aplicativo Managed Service for Apache Flink?
<a name="troubleshooting-blueprints-29"></a>

Não, fazer uma alteração no AWS CloudFormation modelo não atualiza o aplicativo Managed Service for Apache Flink. Qualquer nova alteração AWS CloudFormation implica que uma nova pilha precisa ser implantada.

## Vou AWS monitorar e manter o aplicativo em meu nome?
<a name="troubleshooting-blueprints-30"></a>

Não, não AWS monitorará, escalará, atualizará ou corrigirá este aplicativo em seu nome. 

## Esse aplicativo move meus dados para fora do meu Conta da AWS?
<a name="troubleshooting-blueprints-31"></a>

Todos os dados lidos e armazenados pelo aplicativo Managed Service for Apache Flink permanecem na sua conta Conta da AWS e nunca saem da sua conta.

# Esquemas de incorporação de vetores em tempo real - solução de problemas
<a name="troubleshooting-blueprints-TS"></a>

Analise os tópicos de solução de problemas a seguir sobre esquemas de incorporação de vetores em tempo real. Para obter mais informações sobre esquemas de incorporação de vetores em tempo real, consulte [Esquemas de incorporação de vetores em tempo real](https://docs.aws.amazon.com/msk/latest/developerguide/ai-vector-embedding-integration-learn-more.html).

**Topics**
+ [Minha implantação da CloudFormation pilha falhou ou foi revertida. O que posso fazer para corrigir isso?](#troubleshooting-blueprints-deployment)
+ [Não quero que meu aplicativo comece a ler mensagens do início dos tópicos do Amazon MSK. O que devo fazer?](#troubleshooting-blueprints-beginning)
+ [Como sei que há um problema com meu aplicativo Managed Service for Apache Flink e como posso depurá-lo?](#troubleshooting-blueprints-debug)
+ [Quais são as principais métricas que eu deveria monitorar para meu aplicativo do Managed Service for Apache Flink?](#troubleshooting-blueprints-metrics)

## Minha implantação da CloudFormation pilha falhou ou foi revertida. O que posso fazer para corrigir isso?
<a name="troubleshooting-blueprints-deployment"></a>
+ Acesse sua pilha do CFN e descubra o motivo da falha na pilha. Isso pode estar relacionado à falta de permissões, colisões de nomes do recurso AWS , entre outras causas. Corrija a causa raiz da falha na implantação. Para obter mais informações, consulte o [guia CloudWatch de solução de problemas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#basic-ts-guide).
+  [Opcional] Só pode haver um endpoint da VPC por serviço por VPC. Se você implantou vários esquemas de incorporação vetorial em tempo real para gravar nas coleções do Amazon OpenSearch Service na mesma VPC, eles podem estar compartilhando VPC endpoints. Eles podem já estar presentes em sua conta para a VPC, ou a primeira pilha de esquemas de incorporação vetorial em tempo real criará endpoints de VPC para o Amazon Bedrock OpenSearch e o Amazon Service que serão usados por todas as outras pilhas implantadas em sua conta. Se uma pilha falhar, verifique se essa pilha criou endpoints VPC para o Amazon Bedrock e o Amazon OpenSearch Service e exclua-os se não forem usados em nenhum outro lugar da sua conta. Para ver as etapas de exclusão de VPC endpoints, consulte a documentação sobre como excluir seu aplicativo com segurança.
+ Pode haver outros serviços ou aplicativos em sua conta usando o endpoint da VPC. A exclusão pode causar interrupções na rede para outros serviços. Tenha cuidado ao excluir esses endpoints.

## Não quero que meu aplicativo comece a ler mensagens do início dos tópicos do Amazon MSK. O que devo fazer?
<a name="troubleshooting-blueprints-beginning"></a>

Você deve definir `source.msk.starting.offset` explicitamente para um dos seguintes valores, dependendo do comportamento desejado:
+ **Deslocamento mais antigo**: o deslocamento mais antigo na partição.
+ **Último deslocamento**: os consumidores lerão as mensagens do final da partição.
+ **Deslocamento confirmado**: leia a última mensagem que o consumidor processou em uma partição.

## Como sei que há um problema com meu aplicativo Managed Service for Apache Flink e como posso depurá-lo?
<a name="troubleshooting-blueprints-debug"></a>

Use o [guia de solução de problemas do Managed Service for Apache Flink](https://docs.aws.amazon.com/managed-flink/latest/java/troubleshooting-runtime.html) para depurar problemas relacionados ao Managed Service for Apache Flink em seu aplicativo.

## Quais são as principais métricas que eu deveria monitorar para meu aplicativo do Managed Service for Apache Flink?
<a name="troubleshooting-blueprints-metrics"></a>
+ Todas as métricas disponíveis para um aplicativo do Managed Service for Apache Flink podem ajudá-lo a fazer o monitoramento dele. Para obter mais informações, consulte [Métricas e dimensões no Managed Service for Apache Flink](https://docs.aws.amazon.com/managed-flink/latest/java/metrics-dimensions.html).
+ Para monitorar as métricas do Amazon Bedrock, consulte as [ CloudWatch métricas da Amazon para o Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/monitoring.html#runtime-cloudwatch-metrics).
+ Adicionamos duas novas métricas para monitorar o desempenho da geração de incorporações. Encontre-os sob o nome da `EmbeddingGeneration` operação em CloudWatch. As duas métricas são:
  + **BedrockTitanEmbeddingTokenCount**: Número de tokens presentes em uma única solicitação ao Amazon Bedrock.
  + **BedrockEmbeddingGenerationLatencyMs**: informa o tempo gasto para enviar e receber uma resposta do Amazon Bedrock para gerar incorporações, em milissegundos.
+ Para coleções sem servidor do Amazon OpenSearch Service, você pode usar métricas como`IngestionDataRate`, `IngestionDocumentErrors` e outras. Para obter mais informações, consulte [Monitoramento OpenSearch sem servidor com a Amazon](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/monitoring-cloudwatch.html). CloudWatch
+ Para métricas OpenSearch provisionadas, consulte [Monitoramento de métricas de OpenSearch cluster com a Amazon](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/managedomains-cloudwatchmetrics.html). CloudWatch