Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Restauration par régression de la version précédente de la KCL
Cette rubrique explique comment restaurer votre application grand public KCL 3.5.x+ vers KCL 1.x. Le processus de restauration dépend de la phase de migration dans laquelle se trouve actuellement votre application.
Revenir de la phase 1 à KCL 1.x
Si votre application est en phase 1 (CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X_PHASE1), vous pouvez revenir à KCL 1.x en redéployant votre code précédent. La phase 1 est rétrocompatible avec KCL 1.x et ne crée aucune entrée spécifique à la migration dans le tableau des baux. Aucun outil de migration n'est nécessaire. Pour revenir à la phase 1, redéployez le code avec votre version KCL 1.x pour tous les travailleurs.
Important
La phase 2 (CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X) est un changement décisif pour la restauration. Une fois que votre application entre dans la phase 2, les entrées non liées au bail (WORKER_METRIC_STATSetMigration3.0) sont écrites dans la table des baux qui ne sont pas rétrocompatibles avec KCL 1.x. Cela empêche définitivement un retour direct à KCL 1.x. Nous vous recommandons vivement de préparer votre application en phase 1 pendant une période prolongée afin de valider la stabilité avant de passer à la phase 2.
Revenir de la phase 2 à la phase 1
Si votre application est en phase 2 (CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X), vous devez utiliser l'outil de migration KCL CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X_PHASE1). Il s'agit d'un processus en deux étapes :
-
Exécutez l'outil de migration KCL
sur le GitHub site Web. -
Redéployez le code avec la configuration de phase 1 (facultatif).
Important
Vous ne pouvez pas revenir en arrière de deux niveaux (de la phase 2 à la phase 1, puis à KCL 1.x). L'outil de migration KCL gère uniquement la restauration de la phase 2 à la phase 1. L'outil ne supprime pas les entrées non liées à un contrat de location de la table des contrats de location. Ces entrées ne sont pas rétrocompatibles avec KCL 1.x, c'est pourquoi une restauration à deux niveaux de la phase 2 directement vers KCL 1.x n'est pas possible.
Étape 1 : exécuter l’outil de migration de la KCL
Lorsque vous devez revenir de la phase 2 (CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X) à la phase 1 (CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X_PHASE1), exécutez l'outil de migration KCL. L'outil exécute les tâches suivantes :
-
Il supprime l'index secondaire global (LeaseOwnerToLeaseKeyIndex) de la table des baux dans DynamoDB. Cet index est créé par KCL 3.5.x+ mais n'est pas nécessaire lorsque vous revenez à la phase 1.
-
Ainsi, tous les workers peuvent s’exécuter dans un mode compatible avec la KCL 1.x et commencer à utiliser l’algorithme d’équilibrage de charge utilisé dans les versions précédentes de la KCL. Si vous rencontrez des problèmes avec le nouvel algorithme d'équilibrage de charge de KCL 3.5.x+, le problème est immédiatement résolu.
Important
L'entrée d'état du coordinateur (Migration3.0) dans la table des baux ne doit pas être supprimée pendant les processus de migration, d'annulation et de report.
Note
Tous les travailleurs de votre application grand public doivent utiliser le même algorithme d'équilibrage de charge à un moment donné. L'outil de migration KCL garantit que tous les travailleurs de votre application grand public KCL 3.5.x+ passent en mode compatible avec KCL 1.x afin que tous les travailleurs exécutent le même algorithme d'équilibrage de charge lors du retour à la phase 1 du déploiement.
Vous pouvez télécharger l'outil de migration KCL
python3 ./KclMigrationTool.py --regionregion--mode rollback [--application_nameapplicationName] [--lease_table_nameleaseTableName]
Parameters
--region-
Remplacez
regionpar votre Région AWS. --application_name-
Ce paramètre est obligatoire si vous utilisez le nom par défaut pour votre table de baux. Si vous avez spécifié un nom personnalisé pour la table des baux, vous pouvez omettre ce paramètre. Remplacez-le
applicationNamepar le nom actuel de votre application KCL. L'outil utilise ce nom pour dériver le nom de table par défaut si aucun nom personnalisé n'est fourni. --lease_table_name-
Ce paramètre est nécessaire si vous avez défini un nom personnalisé pour la table des baux dans votre configuration KCL. Si vous utilisez le nom de table par défaut, vous pouvez omettre ce paramètre. Remplacez-le
leaseTableNamepar le nom de table personnalisé que vous avez spécifié pour votre tableau des baux.
Étape 2 : redéployer le code avec la configuration de phase 1 (facultatif)
Après avoir exécuté l'outil de migration KCL pour revenir de la phase 2 à la phase 1, l'un des messages suivants s'affiche :
- Message 1
-
« Restauration par régression terminée. Votre application exécutait la fonctionnalité Phase 2 (compatible 2x). Revenez à la phase 1 en déployant votre application KCL 3.5.x avec la configuration de phase 1. »
Action requise : Vos collaborateurs fonctionnaient en mode compatible avec KCL 1.x (la phase 2 n'était pas encore passée automatiquement à l'équilibrage de charge 3.x complet). Redéployez votre application KCL 3.5.x+ avec une configuration de phase 1 ()
CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X_PHASE1pour vos employés. - Message 2
-
« Restauration par régression terminée. Votre application KCL exécutait la fonctionnalité Phase 2 (3x) et a été ramenée en mode Phase 2 (compatible 2x). Si vous ne constatez aucune atténuation après une courte période, revenez à la phase 1 en déployant votre application KCL 3.5.x avec la configuration de phase 1. »
Action requise : Vos collaborateurs étaient passés automatiquement à l'équilibrage de charge complet de KCL 3.x et l'outil de migration KCL les a replacés en mode compatible avec KCL 1.x. Si le problème est résolu, il n'est pas nécessaire de procéder à un redéploiement. Si le problème persiste, redéployez votre application KCL 3.5.x+ avec une configuration de phase 1 ()
CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X_PHASE1auprès de vos collaborateurs.