O envio de jobs de uma versão do SDK após ela deixar de ser compatível resulta em interrupções e uma redução na capacidade de jobs de streaming ou em lote de longa duração. Para atenuar possíveis problemas, siga as etapas a seguir:
- Faça upgrade da versão do SDK (recomendado).
- Reenvie o job usando um token temporário.
- Retome o job interrompido.
Como iniciar jobs com versões incompatíveis do SDK
Ao enviar um job do Dataflow de uma versão do SDK após ela deixar de ser compatível, você receberá uma mensagem de erro informando que, para enviar o job, é necessário fazer upgrade da versão do SDK ou usar um token temporário.
O valor do token na mensagem de erro contém a data e a hora de quando o token expira, além de mostrar o próprio token. A data de validade é definida para duas semanas no futuro.
Se você quiser usar o token, reenvie o job usando a sinalização do experimento unsupported_sdk_temporary_override_token
e o valor do token.
--experiments=unsupported_sdk_temporary_override_token=TOKEN
Se você enviar um job usando o token depois que ele expirar, receberá uma mensagem de erro diferente informando sobre a expiração. É possível fazer upgrade para uma versão compatível do SDK ou reenviar o job sem o token para receber um novo token.
Os tokens não devem ser usados como uma maneira definitiva de continuar utilizando um SDK incompatível. Em algum momento após um SDK deixar de ser compatível, todos os tokens serão revogados e todos os jobs que usam essa versão incompatível serão rejeitados. Para mais detalhes sobre o status do suporte das versões de cada SDK, consulte esta página.
Como retomar jobs interrompidos
Os jobs de longa duração do Dataflow que usam SDKs incompatíveis, como jobs de streaming, também serão interrompidos e terão a capacidade significativamente reduzida. Esses jobs interrompidos podem ser identificados pela seguinte mensagem de erro nos registros do job:
O fluxo de trabalho foi interrompido automaticamente pelo serviço porque ele está usando um SDK incompatível do Apache Beam para Python 2.3.0. Faça upgrade para a versão mais recente do SDK. Para retomar temporariamente o job interrompido, use
gcloud alpha dataflow jobs resume-unsupported-sdk --token=TOKEN --region=REGION JOB_ID
. O job retomado por esse token será interrompido novamente em 2020-08-28T11:21:58-07:00. Para ver uma lista das versões compatíveis do SDK, consulte: https://cloud.google.com/dataflow/support#support-status-for-dataflow-sdk-releases.
Como o erro sugere, a interrupção pode ser reduzida usando o comando resume-unsupported-sdk. Retomar um job interrompido é uma solução temporária. Em vez disso, faça upgrade da versão do SDK para evitar outras ações de suspensão de uso no futuro.