Atualize o aplicativo para uma nova versão do Apache Flink - Managed Service for Apache Flink

Anteriormente, o Amazon Managed Service for Apache Flink (Amazon MSF) era conhecido como Amazon Kinesis Data Analytics for Apache Flink.

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

Atualize o aplicativo para uma nova versão do Apache Flink

Você pode atualizar o aplicativo Flink usando a ação UpdateApplication.

Você pode chamar a API UpdateApplication de várias maneiras:

  • Use o fluxo de trabalho de configuração existente no Console de gerenciamento da AWS.

    • Acesse seu aplicativo no Console de gerenciamento da AWS.

    • Selecione Configurar.

    • Selecione o novo runtime e o snapshot a partir do qual você deseja começar, também conhecido como configuração de restauração. Use a configuração mais recente como configuração de restauração para iniciar o aplicativo a partir do snapshot mais recente. Aponte para o novo aplicativo atualizado JAR/zip no Amazon S3.

  • Use a ação AWS CLI update-application.

  • Use CloudFormation (CFN).

    • Atualizar o campo RuntimeEnvironment. Anteriormente, o CloudFormation excluía o aplicativo e criava um novo, fazendo com que seus snapshots e outros históricos do aplicativo fossem perdidos. Agora o CloudFormation atualiza seu RuntimeEnvironment em vigor e não exclui seu aplicativo.

  • Use o SDK do AWS.

    • Consulte a documentação do SDK para obter a linguagem de programação de sua preferência. Consulte UpdateApplication.

Você pode realizar a atualização enquanto o aplicativo estiver no estado RUNNING ou enquanto o aplicativo estiver parado no estado READY. O Amazon Managed Service for Apache Flink faz a validação para verificar a compatibilidade entre a versão original do runtime e a versão do runtime de destino. Essa verificação de compatibilidade é executada quando você executa UpdateApplication enquanto estiver no estado RUNNING ou no próximo StartApplication se você atualizar enquanto estiver no estado READY.

O exemplo a seguir mostra a atualização de um aplicativo no estado RUNNING chamado UpgradeTest para o Flink 1.18 no Leste dos EUA (Norte da Virgínia) usando o AWS CLI e iniciando o aplicativo atualizado a partir do snapshot mais recente.

aws --region us-east-1 kinesisanalyticsv2 update-application \ --application-name UpgradeTest --runtime-environment-update "FLINK-1_18" \ --application-configuration-update '{"ApplicationCodeConfigurationUpdate": '\ '{"CodeContentUpdate": {"S3ContentLocationUpdate": '\ '{"FileKeyUpdate": "flink_1_18_app.jar"}}}}' \ --run-configuration-update '{"ApplicationRestoreConfiguration": '\ '{"ApplicationRestoreType": "RESTORE_FROM_LATEST_SNAPSHOT"}}' \ --current-application-version-id ${current_application_version}
  • Se você habilitou os snapshots do serviço e deseja continuar o aplicativo a partir do snapshot mais recente, o Amazon Managed Service for Apache Flink verifica se o runtime do aplicativo RUNNING atual é compatível com o runtime de destino selecionado.

  • Se você especificou um snapshot a partir do qual continuar o runtime de destino, o Amazon Managed Service for Apache Flink verifica se o runtime de destino é compatível com o snapshot especificado. Se a verificação de compatibilidade falhar, sua solicitação de atualização será rejeitada e seu aplicativo permanecerá inalterado no estado RUNNING.

  • Se você optar por iniciar seu aplicativo sem um snapshot, o Amazon Managed Service for Apache Flink não executará nenhuma verificação de compatibilidade.

  • Se o aplicativo atualizado falhar ou ficar preso em um estado UPDATING transitivo, siga as instruções na seção Reverta as atualizações de aplicativos para retornar ao estado íntegro.

Fluxo de processo para execução de aplicativos com estado

O diagrama a seguir apresenta o fluxo de trabalho recomendado para atualizar o aplicativo durante a execução. Supomos que o aplicativo tem um estado e que você ativou os snapshots. Na atualização para esse fluxo de trabalho, você restaura o aplicativo a partir do snapshot mais recente que foi automaticamente obtido pelo Amazon Managed Service for Apache Flink antes da atualização.

O exemplo a seguir mostra a atualização de um aplicativo no estado READY chamado UpgradeTest para o Flink 1.18 no Leste dos EUA (Norte da Virgínia) usando o AWS CLI. Não há um instantâneo especificado para iniciar o aplicativo porque o aplicativo não está em execução. Você pode especificar um instantâneo ao emitir a solicitação de inicialização do aplicativo.

aws --region us-east-1 kinesisanalyticsv2 update-application \ --application-name UpgradeTest --runtime-environment-update "FLINK-1_18" \ --application-configuration-update '{"ApplicationCodeConfigurationUpdate": '\ '{"CodeContentUpdate": {"S3ContentLocationUpdate": '\ '{"FileKeyUpdate": "flink_1_18_app.jar"}}}}' \ --current-application-version-id ${current_application_version}
  • Você pode atualizar o runtime de seus aplicativos no estado READY para qualquer versão do Flink. O Amazon Managed Service for Apache Flink não executa nenhuma verificação até você iniciar seu aplicativo.

  • O Amazon Managed Service for Apache Flink só executa verificações de compatibilidade com o snapshot que você selecionou para iniciar o aplicativo. Estas são verificações básicas de compatibilidade de acordo com a Tabela de Compatibilidade do Flink. Elas verificam apenas a versão do Flink em que o snapshot foi tirado e a versão do Flink que você deseja. Se o runtime do Flink do snapshot selecionado for incompatível com o novo runtime do aplicativo, a solicitação inicial poderá ser rejeitada.

Fluxo de processo para aplicativos com estado “ready”

O diagrama a seguir representa o fluxo de trabalho recomendado para atualizar o aplicativo durante o estado ready. Supomos que o aplicativo tem um estado e que você ativou os snapshots. Na atualização para esse fluxo de trabalho, você restaura o aplicativo a partir do snapshot mais recente que foi automaticamente obtido pelo Amazon Managed Service for Apache Flink no momento em que o aplicativo foi interrompido.