

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
<a name="cli-migration-tool"></a>

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](cliv2-migration.md#using-migration-tools) [Guide de migration pour la AWS CLI version 2](cliv2-migration.md)

Pour plus de détails, voir [Changements majeurs entre AWS CLI la version 1 et AWS CLI la version 2](cliv2-migration-changes.md#cliv2-migration-changes-breaking) dans[Nouvelles fonctionnalités et modifications de la AWS CLI version 2](cliv2-migration-changes.md).

## Fonctionnement
<a name="migration-tool-how-it-works"></a>

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](#migration-tool-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
<a name="migration-tool-prerequisites"></a>

### Python
<a name="migration-tool-prerequisites-python"></a>

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](https://www.python.org/downloads/).

### pip
<a name="migration-tool-prerequisites-pip"></a>

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

Pour vérifier qu'`pip`il 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.](https://docs.aws.amazon.com/cli/v1/userguide/install-linux.html#install-linux-pip-pip)

## Installation
<a name="migration-tool-installation"></a>

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
<a name="migration-tool-usage"></a>

### Mode de fonctionnement à sec (par défaut)
<a name="migration-tool-usage-dryrun"></a>

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
<a name="migration-tool-usage-autofix"></a>

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
<a name="migration-tool-usage-interactive"></a>

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
<a name="migration-tool-limitations"></a>

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](cliv2-migration-changes.md#cliv2-migration-changes-breaking) publié dans[Nouvelles fonctionnalités et modifications de la AWS CLI version 2](cliv2-migration-changes.md).

### Analyse basée sur le texte
<a name="migration-tool-limitations-static-linter"></a>

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
<a name="migration-tool-limitations-unsupported-changes"></a>

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](cliv2-migration-changes.md#cliv2-migration-encodingenvvar) | Non | Non | 
| [Les paramètres binaires sont transmis en tant que chaînes codées en base64 par défaut.](cliv2-migration-changes.md#cliv2-migration-binaryparam) | Oui | Oui | 
| [Amélioration de la gestion par Amazon S3 des propriétés des fichiers et des balises pour les copies partitionnées](cliv2-migration-changes.md#cliv2-migration-s3-copy-metadata) | Oui | Oui | 
| [Aucune récupération automatique de `http://` ou `https://` URLs pour les paramètres](cliv2-migration-changes.md#cliv2-migration-paramfile) | Non | Non | 
| [Pager utilisé par défaut pour toutes les sorties](cliv2-migration-changes.md#cliv2-migration-output-pager) | Oui | Oui | 
| [Normalisation de toutes les valeurs de sortie d’horodatage au format ISO 8601](cliv2-migration-changes.md#cliv2-migration-timestamp) | Non | Non | 
| [Gestion améliorée des CloudFormation déploiements qui n'entraînent aucune modification](cliv2-migration-changes.md#cliv2-migration-cfn) | Oui | Oui | 
| [Modification du comportement par défaut du point de terminaison Amazon S3 régional pour la région `us-east-1`](cliv2-migration-changes.md#cliv2-migration-s3-regional-endpoint) | Non | Non | 
| [Comportement par défaut modifié pour les points de AWS STS terminaison régionaux](cliv2-migration-changes.md#cliv2-migration-sts-regional-endpoint) | Non | Non | 
| [Retrait de la commande `ecr get-login`, remplacée par `ecr get-login-password`](cliv2-migration-changes.md#cliv2-migration-ecr-get-login) | Oui | Non | 
| [AWS CLI le support de la version 2 pour les plugins est en train de changer](cliv2-migration-changes.md#cliv2-migration-profile-plugins) | Non | Non | 
| [Suppression de la prise en charge des alias masqués](cliv2-migration-changes.md#cliv2-migration-aliases) | Oui | Oui | 
| [Paramètre de fichier de configuration `api_versions` non pris en charge](cliv2-migration-changes.md#cliv2-migration-api-versions) | Non | Non | 
| [AWS CLI la version 2 utilise uniquement Signature v4 pour authentifier les demandes Amazon S3](cliv2-migration-changes.md#cliv2-migration-sigv4) | Non | Non | 
| [AWS CLI la version 2 est plus cohérente avec les paramètres de pagination](cliv2-migration-changes.md#cliv2-migration-skeleton-paging) | Oui | Non | 
| [AWS CLI la version 2 fournit des codes de retour plus cohérents pour toutes les commandes](cliv2-migration-changes.md#cliv2-migration-return-codes) | Non | Non | 