Utilisation de l'outil de migration AWS CLI v1-v2 pour mettre à niveau la version 1 de la AWS CLI vers la version 2 de la CLI AWS - AWS Command Line Interface

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.

Utilisation de l'outil de migration AWS CLI v1-v2 pour mettre à niveau la version 1 de la AWS CLI vers la version 2 de la CLI AWS

Cette rubrique décrit l'outil de migration de AWS CLI v1-v2.

Nous recommandons aux utilisateurs de la version 1 de la AWS CLI de passer à la version 2 de la AWS CLI pour accéder à de nouvelles fonctionnalités et à des performances améliorées. Certains changements de comportement entre la version 1 de la AWS AWS CLI et la version 2 de la CLI peuvent vous obliger à mettre à jour vos scripts ou commandes pour obtenir le même comportement. L'outil de migration de la AWS CLI v1-v2 analyse les scripts bash contenant des commandes de la version 1 de la AWS CLI et détecte l'utilisation de fonctionnalités mises à jour avec des modifications majeures dans la version 2 de la CLI AWS . En outre, l'outil peut modifier automatiquement vos scripts pour résoudre la plupart des problèmes détectés. Cet outil améliore l'expérience de mise à niveau en détectant et en modifiant automatiquement les commandes de la version 1 de la AWS CLI dans les scripts bash afin d'éviter des problèmes inattendus lors de la mise à niveau vers la version 2.

Comparé au mode Upgrade Debug, l'outil de migration AWS CLI v1-v2 est un outil autonome qui ne nécessite pas l'exécution de commandes CLI. AWS Pour une comparaison complète entre le mode de débogage de mise à niveau et l'outil de migration AWS CLI v1-v2, voir dans. Utilisation des outils de migration de la AWS CLI pour atténuer les ruptures Guide de migration pour la AWS CLI version 2

Pour plus de détails, voir Changements majeurs entre AWS CLI la version 1 et AWS CLI la version 2 dansNouvelles fonctionnalités et modifications de la AWS CLI version 2.

Fonctionnement

L'outil de migration AWS CLI v1-v2 est un package Python capable de linter des scripts bash utilisant la version 1 de la CLI. AWS Comme il s'agit d'un linter statique, cela ne dépend pas de la version de la AWS CLI version 1 que vous avez peut-être installée sur votre machine. Le linter est invoqué via la ligne de commande, où le chemin du fichier local vers le script bash est fourni en tant que paramètre.

L'outil de migration peut également produire automatiquement un script bash modifié qui résout la plupart des résultats détectés en modifiant les commandes de la version 1 de la AWS CLI utilisées dans le script. L'outil de migration modifie les commandes afin qu'elles soient compatibles avec AWS la version 2 et conservent le comportement de la version 1.

Pour certains résultats, l'outil de migration de AWS CLI v1-v2 peut les détecter mais ne propose pas de solution automatique. Dans ces cas, l'outil de migration les signale comme des détections nécessitant un examen manuel.

Consultez Limitations la liste exhaustive des modifications majeures et des correctifs automatiques pris en charge par l'outil de migration AWS CLI v1-v2.

Conditions préalables

Python

Pour utiliser cet outil, Python 3.9 ou version ultérieure doit être installé.

Pour vérifier que la version correcte de Python est installée, exécutez la commande suivante dans un terminal et vérifiez que la sortie indique une version Python d'au moins 3.9.

$ python3 --version

Si vous avez une ancienne version de Python ou si Python n'est pas installé, vous pouvez télécharger une version compatible depuis la page officielle de téléchargement de Python.

pip

En plus d'avoir installé une version compatible de Python, vous devez l'avoir pip installée.

Pour vérifier qu'pipil est installé, exécutez la commande suivante :

$ python3 -m pip --version

Si vous l'avez pip installé, vous verrez un résultat similaire à ce qui suit :

pip 25.0.1 from ~/.local/lib/python3.13/site-packages (python 3.13)

Si ce n'est pas le pip cas, consultez Installer pip.

Installation

Installez l'outil de migration AWS CLI v1-v2 dans un nouvel environnement virtuel :

$ python3 -m venv .venv $ source .venv/bin/activate $ python3 -m pip install aws-cli-migrate

Usage

Mode de fonctionnement à sec (par défaut)

Avec le mode dry-run, vous pouvez détecter automatiquement les commandes de la version 1 de la AWS CLI susceptibles d'être modifiées sans modifier le script d'entrée :

$ migrate-aws-cli --script upload_s3_files.sh

Mode de correction automatique

Avec le mode de correction automatique, vous pouvez détecter et mettre à jour automatiquement les commandes de la version 1 de la AWS CLI dans le script d'entrée afin de limiter les interruptions causées par les modifications introduites dans la version 2 de la AWS CLI, dans la mesure du possible :

$ migrate-aws-cli --script upload_s3_files.sh --fix

Vous pouvez éventuellement fournir un chemin de sortie via le --output paramètre pour écrire le script mis à jour, plutôt que de mettre à jour le script d'entrée :

$ migrate-aws-cli --script upload_s3_files.sh --output upload_s3_files_v2.sh --fix

Mode interactif

Avec le mode interactif, vous pouvez détecter automatiquement les commandes de la version 1 de la AWS CLI susceptibles de subir des modifications importantes. La plupart des résultats indiqueront une solution suggérée pour atténuer les ruptures dans la version 2 de la AWS CLI. Vous pouvez consulter les correctifs proposés et décider de les appliquer ou non. Vous pouvez éventuellement fournir un chemin de sortie via le --output paramètre pour contrôler où écrire le script mis à jour :

$ migrate-aws-cli --script upload_s3_files.sh --interactive \ --output upload_s3_files_v2.sh

L'extrait de sortie suivant est un exemple de recherche en mode interactif :

14 14│ 15 15│ aws s3 ls s3://mybucket 16 16│ 17 │-aws s3 cp s3://amzn-demo-bucket s3://amzn-demo-bucket2 --recursive 17│+aws s3 cp s3://amzn-demo-bucket s3://amzn-demo-bucket2 --recursive --copy-props none 18 18│ 19 19│ TEMPLATE_KEY="cloudformation/$(basename "$TEMPLATE_FILE")" 20 20│ examples/upload_s3_files.sh:17 [s3-copy] In AWS CLI v2, object properties will be copied from the source in multipart copies between S3 buckets. If a copy is or becomes multipart after upgrading to AWS CLI v2, extra API calls will be made. See https://docs.aws.amazon.com/cli/latest/userguide/cliv2-migration-changes.html#cliv2-migration-s3-copy-metadata. Apply this fix? [y] yes, [n] no, [a] accept all of type, [r] reject all of type, [u] update all, [s] save and exit, [q] quit:

Le correctif suggéré est affiché dans un format similaire à celui d'un Git diff. L'outil de migration suggère de supprimer les lignes commençant par a - et suggère d'ajouter des lignes commençant par + a. Dans l'exemple précédent, la suggestion peut être interprétée comme l'ajout du --copy-props none paramètre à la commande AWS CLI version 1 qui exécute une copie Amazon S3.

Pour chaque correction suggérée, vous pouvez saisir l'une des commandes suivantes :

  • Entrez y pour accepter le correctif suggéré.

  • Entrez n pour rejeter le correctif actuel.

  • Entrez a pour accepter tous les correctifs du même type.

  • Entrez r pour rejeter tous les correctifs du même type.

  • Entrez u pour accepter tous les correctifs restants.

  • Entrez s pour enregistrer et quitter.

  • Entrez q pour quitter sans enregistrer.

Certains résultats peuvent être marqués pour un examen manuel sans qu'une solution ne soit suggérée. Vous devez examiner ces résultats et vérifier si vous êtes concerné par les modifications majeures référencées. Si vous êtes concerné par ces résultats, vous devez suivre les instructions spécifiées dans la description des résultats pour apporter les modifications nécessaires afin d'éviter ou de vous préparer aux modifications majeures introduites dans la version 2 de la AWS CLI.

Limitations

L'outil de migration de la AWS CLI v1-v2 ne prend actuellement pas en charge toutes les modifications importantes introduites avec la version 2 de la AWS CLI et présente des cas de faux positifs où il émet des détections pour les commandes même si aucune modification majeure n'est réellement constatée.

Nous recommandons vivement aux clients de comprendre ce qui est Changements majeurs entre AWS CLI la version 1 et AWS CLI la version 2 publié dansNouvelles fonctionnalités et modifications de la AWS CLI version 2.

Analyse basée sur le texte

L'outil de migration analyse votre script sans l'exécuter. Cela limite la façon dont il détecte les commandes AWS CLI pour annuler les modifications. L'outil de migration ne peut examiner que le texte d'une commande AWS CLI. Il ne peut pas détecter les problèmes qui surviennent lors de l'exécution, tels que le stockage de paramètres obsolètes dans une variable au lieu de les transmettre directement à la CLI AWS .

Détection de changements brusques non prise en charge

L'étendue de la prise en charge des modifications majeures apportées à l'outil de migration est résumée dans le tableau suivant.

Un changement radical Détection prise en charge Correction automatique prise en charge
Ajout d’une variable d’environnement pour définir l’encodage de fichiers texte Non Non
Les paramètres binaires sont transmis en tant que chaînes codées en base64 par défaut. Oui Oui
Amélioration de la gestion par Amazon S3 des propriétés des fichiers et des balises pour les copies partitionnées Oui Oui
Aucune récupération automatique de http:// ou https:// URLs pour les paramètres Non Non
Pager utilisé par défaut pour toutes les sorties Oui Oui
Normalisation de toutes les valeurs de sortie d’horodatage au format ISO 8601 Non Non
Gestion améliorée des CloudFormation déploiements qui n'entraînent aucune modification Oui Oui
Modification du comportement par défaut du point de terminaison Amazon S3 régional pour la région us-east-1 Non Non
Comportement par défaut modifié pour les points de AWS STS terminaison régionaux Non Non
Retrait de la commande ecr get-login, remplacée par ecr get-login-password Oui Non
AWS CLI le support de la version 2 pour les plugins est en train de changer Non Non
Suppression de la prise en charge des alias masqués Oui Oui
Paramètre de fichier de configuration api_versions non pris en charge Non Non
AWS CLI la version 2 utilise uniquement Signature v4 pour authentifier les demandes Amazon S3 Non Non
AWS CLI la version 2 est plus cohérente avec les paramètres de pagination Oui Non
AWS CLI la version 2 fournit des codes de retour plus cohérents pour toutes les commandes Non Non