Utiliser un SDK non compatible

L'envoi de tâches à partir d'une version du SDK dont la date de compatibilité est échue entraîne des interruptions et une réduction du débit pour les tâches de longue durée traitées par lot ou par flux. Pour éviter les problèmes potentiels, procédez comme suit :

Démarrer des tâches avec des versions de SDK non compatibles

Lorsque vous envoyez une tâche Dataflow à partir d'une version du SDK dont la date de compatibilité est échue, vous recevez un message d'erreur vous invitant à mettre à jour votre version du SDK ou à utiliser un jeton temporaire lorsque vous envoyez votre tâche.

La valeur du jeton dans le message d'erreur contient la date et l'heure d'expiration du jeton, ainsi que le jeton proprement dit. La date d'expiration est fixée à deux semaines dans le futur.

Si vous souhaitez utiliser le jeton, envoyez à nouveau votre tâche en utilisant l'option de test unsupported_sdk_temporary_override_token et la valeur du jeton.

--experiments=unsupported_sdk_temporary_override_token=TOKEN

Si vous envoyez une tâche à l'aide du jeton après son expiration, vous recevez un autre message d'erreur vous informant de l'état expiré. Vous pouvez soit effectuer une mise à niveau vers une version du SDK compatible, soit soumettre à nouveau votre tâche sans le jeton pour obtenir un nouveau jeton.

Les jetons ne doivent pas être utilisés pour conserver de manière permanente un SDK non compatible. Quelques temps après la date non acceptée d'un SDK, tous les jetons seront révoqués et toutes les tâches qui utilisent cette version seront refusées. Pour plus d'informations sur l'état de la compatibilité de chaque SDK, consultez la section État de la compatibilité des versions du SDK.

Reprendre les tâches interrompues

Les tâches Dataflow de longue durée qui utilisent des SDK non compatibles, comme les tâches par flux, seront également interrompues et leur débit sera considérablement réduit. Ces tâches interrompues peuvent être identifiées grâce au message d'erreur suivant dans les journaux de la tâche :

Le workflow a été automatiquement interrompu par le service, car il utilise un SDK Apache Beam SDK pour Python 2.3.0 incompatible. Veuillez installer la dernière version du SDK. Pour reprendre temporairement la tâche interrompue, veuillez utiliser gcloud alpha dataflow jobs resume-unsupported-sdk --token=TOKEN --region=REGION JOB_ID. Notez que la tâche réactivée par ce jeton sera de nouveau interrompue le 2020-08-28T11:21:58-07:00. Pour obtenir la liste des versions compatibles du SDK, consultez la page https://cloud.google.com/dataflow/support#support-status-for-dataflow-sdk-releases.

Comme suggéré par l'erreur, l'interruption peut être minimisée à l'aide de la commande resume-unsupported-sdk. La reprise d'une tâche interrompue est une solution temporaire. Nous vous recommandons plutôt de mettre à niveau votre version du SDK afin d'éviter toute autre action d'abandon à l'avenir.