

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á.

# Atualizar a versão do Apache Kafka
<a name="version-upgrades"></a>

É possível atualizar um cluster do MSK existente para uma versão mais recente do Apache Kafka. Antes de atualizar a versão do Kafka do seu cluster, verifique se a versão do software no lado do cliente é compatível com os recursos da nova versão do Kafka.

Para obter informações sobre como tornar um cluster altamente disponível durante uma atualização, consulte [Criar clusters altamente disponíveis](bestpractices.md#ensure-high-availability).

**Atualize a versão do Apache Kafka usando o Console de gerenciamento da AWS**

1. Abra o console do Amazon MSK em [https://console.aws.amazon.com/msk/](https://console.aws.amazon.com/msk/).

1. Na barra de navegação, escolha a região na qual você criou seu cluster do MSK.

1. Selecione o cluster do MSK que deseja atualizar.

1. Na guia **Propriedades**, escolha **Atualizar** na seção **Versão do Apache Kafka**.

1. Na seção **Versão do Apache Kafka**, faça o seguinte:

   1. Na lista suspensa *Escolher versão do Apache Kafka*, escolha a versão de destino que você deseja atualizar. Para este exemplo, selecione **3.9.x**.

   1. (Opcional) Escolha **Exibir compatibilidade de versão** para verificar a compatibilidade entre a versão atual do cluster e as versões de atualização disponíveis. Em seguida, selecione **Escolher** para continuar.
**nota**  
O Amazon MSK oferece suporte a atualizações no local para a maioria das versões do Apache Kafka. No entanto, ao fazer o upgrade de uma versão ZooKeeper baseada no Kafka para uma versão KRaft baseada, você deve criar um novo cluster. Em seguida, copie seus dados para o novo cluster e troque os clientes para o novo cluster.

   1. (Opcional) Marque a caixa de seleção **Atualizar configuração do cluster** para aplicar as atualizações de configuração compatíveis com a nova versão. Isso habilita os recursos e as melhorias da nova versão.

      É possível ignorar esta etapa se for necessário manter suas configurações personalizadas existentes.
**nota**  
As atualizações do lado do servidor não atualizam automaticamente as aplicações de clientes.
Para manter a estabilidade do cluster, não há suporte a downgrades de versão.

   1. Escolha **Atualizar** para iniciar o processo.

**Atualize a versão do Apache Kafka usando o AWS CLI**

1. Execute o comando a seguir, substituindo *ClusterArn* pelo nome do recurso da Amazon (ARN) que você obteve quando criou o cluster. Se você não tiver o ARN do cluster, poderá encontrá-lo listando todos os clusters. Para obter mais informações, consulte [Listar clusters do Amazon MSK](msk-list-clusters.md).

   ```
   aws kafka get-compatible-kafka-versions --cluster-arn ClusterArn
   ```

   A saída desse comando inclui uma lista das versões do Apache Kafka para as quais você pode atualizar o cluster. Ela se parece com o exemplo a seguir.

   ```
   {
       "CompatibleKafkaVersions": [
           {
               "SourceVersion": "2.2.1",
               "TargetVersions": [
                   "2.3.1",
                   "2.4.1",
                   "2.4.1.1",
                   "2.5.1"
               ]
           }
       ]
   }
   ```

1. Execute o comando a seguir, substituindo *ClusterArn* pelo nome do recurso da Amazon (ARN) que você obteve quando criou o cluster. Se você não tiver o ARN do cluster, poderá encontrá-lo listando todos os clusters. Para obter mais informações, consulte [Listar clusters do Amazon MSK](msk-list-clusters.md).

   Substitua *Current-Cluster-Version* pela versão atual do cluster. Pois *TargetVersion* você pode especificar qualquer uma das versões de destino a partir da saída do comando anterior.
**Importante**  
As versões de cluster não são inteiros simples. Para encontrar a versão atual do cluster, use a [DescribeCluster](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn.html#DescribeCluster)operação ou o comando [AWS CLI describe-cluster](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/describe-cluster.html). Uma versão de exemplo é `KTVPDKIKX0DER`.

   ```
   aws kafka update-cluster-kafka-version --cluster-arn ClusterArn --current-version Current-Cluster-Version --target-kafka-version TargetVersion
   ```

   A saída do comando anterior é semelhante ao JSON a seguir.

   ```
   {
       
       "ClusterArn": "arn:aws:kafka:us-east-1:012345678012:cluster/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2",
       "ClusterOperationArn": "arn:aws:kafka:us-east-1:012345678012:cluster-operation/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2/0123abcd-abcd-4f7f-1234-9876543210ef"
   }
   ```

1. Para obter o resultado da `update-cluster-kafka-version` operação, execute o comando a seguir, *ClusterOperationArn* substituindo-o pelo ARN obtido na saída do `update-cluster-kafka-version` comando.

   ```
   aws kafka describe-cluster-operation --cluster-operation-arn ClusterOperationArn
   ```

   A saída desse comando `describe-cluster-operation` é semelhante ao seguinte JSON de exemplo.

   ```
   {
       "ClusterOperationInfo": {
           "ClientRequestId": "62cd41d2-1206-4ebf-85a8-dbb2ba0fe259",
           "ClusterArn": "arn:aws:kafka:us-east-1:012345678012:cluster/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2",
           "CreationTime": "2021-03-11T20:34:59.648000+00:00",
           "OperationArn": "arn:aws:kafka:us-east-1:012345678012:cluster-operation/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2/0123abcd-abcd-4f7f-1234-9876543210ef",
           "OperationState": "UPDATE_IN_PROGRESS",
           "OperationSteps": [
               {
                   "StepInfo": {
                       "StepStatus": "IN_PROGRESS"
                   },
                   "StepName": "INITIALIZE_UPDATE"
               },
               {
                   "StepInfo": {
                       "StepStatus": "PENDING"
                   },
                   "StepName": "UPDATE_APACHE_KAFKA_BINARIES"
               },
               {
                   "StepInfo": {
                       "StepStatus": "PENDING"
                   },
                   "StepName": "FINALIZE_UPDATE"
               }
           ],
           "OperationType": "UPDATE_CLUSTER_KAFKA_VERSION",
           "SourceClusterInfo": {
               "KafkaVersion": "2.4.1"
           },
           "TargetClusterInfo": {
               "KafkaVersion": "2.6.1"
           }
       }
   }
   ```

   Se `OperationState` tiver o valor `UPDATE_IN_PROGRESS`, aguarde um pouco e execute o comando `describe-cluster-operation` novamente. Quando a operação for concluída, o valor de `OperationState` será transformado em `UPDATE_COMPLETE`. Como o tempo necessário para que o Amazon MSK conclua a operação varia, talvez seja necessário verificar repetidamente até que a operação seja concluída. 

**Atualizar a versão do Apache Kafka usando a API**

1. Invoque a [GetCompatibleKafkaVersions](https://docs.aws.amazon.com//msk/1.0/apireference/compatible-kafka-versions.html#GetCompatibleKafkaVersions)operação para obter uma lista das versões do Apache Kafka para as quais você pode atualizar o cluster.

1. Invoque a [UpdateClusterKafkaVersion](https://docs.aws.amazon.com//msk/1.0/apireference/clusters-clusterarn-version.html#UpdateClusterKafkaVersion)operação para atualizar o cluster para uma das versões compatíveis do Apache Kafka.