Nouvelles fonctionnalités et modifications de la AWS CLI version 2 - 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.

Nouvelles fonctionnalités et modifications de la AWS CLI version 2

Cette rubrique décrit les nouvelles fonctionnalités et les changements de comportement entre les AWS CLI versions 1 et AWS CLI 2. Ces modifications peuvent vous obliger à mettre à jour vos scripts ou commandes pour obtenir le même comportement dans la version 2 que dans la version 1.

AWS CLI nouvelles fonctionnalités de la version 2

La AWS CLI version 2 est la version majeure la plus récente AWS CLI et prend en charge toutes les dernières fonctionnalités. Certaines fonctionnalités introduites dans la version 2 ne sont pas rétrocompatibles avec la version 1, et vous devez effectuer une mise à niveau pour accéder à celles-ci. Ces fonctionnalités sont les suivantes :

L’interpréteur Python n’est pas nécessaire

La AWS CLI version 2 n'a pas besoin d'une installation séparée de Python. Elle inclut une version intégrée.

Assistants

Vous pouvez utiliser un assistant avec la AWS CLI version 2. Celui-ci vous guide tout au long de la construction de certaines commandes.

Authentification IAM Identity Center

Si votre organisation utilise AWS IAM Identity Center (IAM Identity Center), vos utilisateurs peuvent se connecter à Active Directory, à un annuaire IAM Identity Center intégré ou à un autre IdP connecté à IAM Identity Center. Ils sont ensuite mappés à un rôle AWS Identity and Access Management (IAM) qui vous permet d'exécuter AWS CLI des commandes.

Invite automatique

Lorsqu'elle est activée, la AWS CLI version 2 peut vous demander des commandes, des paramètres et des ressources lorsque vous exécutez une aws commande.

Exécution des images officielles Amazon ECR Public ou Docker pour l’AWS CLI

L'image Docker officielle du AWS CLI fournit une isolation, une portabilité et une sécurité qui sont AWS directement prises en charge et maintenues. Ainsi, vous pouvez utiliser la AWS CLI version 2 dans un environnement basé sur des conteneurs sans avoir à gérer vous-même l'installation.

Pager côté client

La AWS CLI version 2 prévoit l'utilisation d'un programme de téléavertisseur côté client pour la sortie. Cette fonctionnalité est activée par défaut et renvoie toutes les sorties via le programme de pager par défaut de votre système d’exploitation.

aws configure import

Importez les informations d’identification au format .csv générées à partir de la AWS Management Console. Un fichier .csv est importé avec le nom de profil correspondant au nom d’utilisateur IAM.

aws configure list-profiles

Répertorie les noms de tous les profils que vous avez configurés.

Format de sortie du flux YAML

Les formats yaml et yaml-stream tirent parti du format YAML tout en offrant une visualisation plus réactive des grands jeux de données en vous transmettant les données en streaming. Vous pouvez commencer à visualiser et à utiliser les données YAML avant le téléchargement complet des requêtes.

Nouvelles commandes ddb de haut niveau pour DynamoDB

La AWS CLI version 2 contient les commandes Amazon ddb putDynamoDB de haut niveau et. ddb select Ces commandes fournissent une interface simplifiée pour placer des éléments dans les tables DynamoDB, et effectuer des recherches dans une table ou un index DynamoDB.

aws logs tail

La AWS CLI version 2 dispose d'une aws logs tail commande personnalisée qui suit les journaux d'un groupe Amazon CloudWatch Logs. Par défaut, la commande renvoie les journaux de tous les flux de CloudWatch journaux associés au cours des dix dernières minutes.

Ajout de la prise en charge des métadonnées pour les commandes s3 de haut niveau

La AWS CLI version 2 ajoute le --copy-props paramètre aux s3 commandes de haut niveau. À l’aide de ce paramètre, vous pouvez configurer des métadonnées et des balises supplémentaires pour Amazon Simple Storage Service (Amazon S3).

AWS_REGION

La AWS CLI version 2 possède une variable d'environnement AWS compatible avec le SDK appelée. AWS_REGION Cette variable indique Région AWS à qui envoyer les demandes. Elle remplace la variable d’environnement AWS_DEFAULT_REGION, qui n’est applicable que dans l’ AWS CLI.

Changements majeurs entre AWS CLI la version 1 et AWS CLI la version 2

Cette section décrit tous les changements de comportement entre la AWS CLI version 1 et AWS CLI la version 2. Ces modifications peuvent vous obliger à mettre à jour vos scripts ou commandes pour obtenir le même comportement dans la version 2 que dans la version 1.

Ajout d’une variable d’environnement pour définir l’encodage de fichiers texte

Par défaut, les fichiers texte pour Blob utilisent le même encodage que les paramètres régionaux installés. Comme la AWS CLI version 2 utilise une version intégrée de Python, les variables d'PYTHONIOENCODINGenvironnement PYTHONUTF8 et ne sont pas prises en charge. Pour définir un encodage de fichiers texte différent de celui des paramètres régionaux, utilisez la variable d’environnement AWS_CLI_FILE_ENCODING. L'exemple suivant montre comment AWS CLI ouvrir des fichiers texte UTF-8 sous Windows.

AWS_CLI_FILE_ENCODING=UTF-8

Pour plus d’informations, consultez Configuration des variables d’environnement pour l’ AWS CLI.

Les paramètres binaires sont transmis en tant que chaînes codées en base64 par défaut.

Dans le AWS CLI, certaines commandes nécessitaient des chaînes codées en base64, tandis que d'autres nécessitaient des chaînes d'octets codées en UTF-8. Dans la AWS CLI version 1, le transfert de données entre deux types de chaînes codées nécessitait souvent un traitement intermédiaire. La AWS CLI version 2 rend la gestion des paramètres binaires plus cohérente, ce qui permet de transmettre les valeurs d'une commande à l'autre de manière plus fiable.

Par défaut, la AWS CLI version 2 transmet tous les paramètres binaires d'entrée et de sortie binaires sous forme de chaîne codée en base64 blobs (gros objet binaire). Pour de plus amples informations, veuillez consulter Blob.

Pour revenir au comportement de la AWS CLI version 1, utilisez la configuration du cli_binary_format fichier ou le --cli-binary-format paramètre.

Amélioration de la gestion par Amazon S3 des propriétés des fichiers et des balises pour les copies partitionnées

Lorsque vous utilisez les commandes de la AWS CLI version 1 dans l'aws s3espace de noms pour copier un fichier d'un emplacement de compartiment S3 vers un autre, et que cette opération utilise une copie en plusieurs parties, aucune propriété de fichier de l'objet source n'est copiée vers l'objet de destination.

Par défaut, les commandes correspondantes de la AWS CLI version 2 transfèrent toutes les balises et certaines propriétés de la copie source vers la copie de destination. Par rapport à la AWS CLI version 1, cela peut entraîner un plus grand nombre d'appels d' AWS API vers le point de terminaison Amazon S3. Pour modifier le comportement par défaut des s3 commandes de AWS CLI la version 2, utilisez le --copy-props paramètre.

Pour de plus amples informations, veuillez consulter Propriétés des fichiers et balises dans les copies partitionnées.

Aucune récupération automatique de http:// ou https:// URLs pour les paramètres

La AWS CLI version 2 n'effectue aucune GET opération lorsqu'une valeur de paramètre commence par http:// ouhttps://, et n'utilise pas le contenu renvoyé comme valeur de paramètre. Par conséquent, l'option de ligne de commande associée cli_follow_urlparam est supprimée de la AWS CLI version 2.

Si vous devez récupérer une URL et transmettre son contenu dans la valeur d’un paramètre, nous vous recommandons d’utiliser curl ou un outil similaire pour télécharger le contenu de l’URL dans un fichier local. Ensuite, utilisez la syntaxe file:// pour lire le contenu de ce fichier et l’utiliser comme valeur du paramètre.

Par exemple, la commande suivante n'essaie plus de récupérer le contenu de la page se trouvant dans http://www.example.com et de le transmettre en tant que paramètre. Au lieu de cela, elle transmet la chaîne de texte littéral https://example.com en tant que paramètre.

$ aws ssm put-parameter \ --value http://www.example.com \ --name prod.microservice1.db.secret \ --type String 2

Si vous voulez récupérer et utiliser le contenu d’une URL web comme paramètre, vous pouvez effectuer les opérations suivantes dans la version 2.

$ curl https://my.example.com/mypolicyfile.json -o mypolicyfile.json $ aws iam put-role-policy \ --policy-document file://./mypolicyfile.json \ --role-name MyRole \ --policy-name MyReadOnlyPolicy

Dans l’exemple précédent, le paramètre -o indique à curl qu’il doit enregistrer le fichier dans le dossier actuel avec le même nom que le fichier source. La deuxième commande récupère le contenu de ce fichier téléchargé et le transmet en tant que valeur de --policy-document.

Pager utilisé par défaut pour toutes les sorties

Par défaut, la AWS CLI version 2 renvoie toutes les sorties via le programme de téléavertisseur par défaut de votre système d'exploitation. Ce programme est le programme less sous Linux et macOS, et le programme more sous Windows. Cela peut vous aider à parcourir une grande quantité de sortie d’un service en affichant cette sortie une page à la fois.

Vous pouvez configurer la AWS CLI version 2 pour utiliser un programme de pagination différent ou aucun programme de pagination du tout. Pour de plus amples informations, veuillez consulter Pager côté client.

Normalisation de toutes les valeurs de sortie d’horodatage au format ISO 8601

Par défaut, la AWS CLI version 2 renvoie toutes les valeurs de réponse d'horodatage au format ISO 8601. Dans AWS CLI la version 1, les commandes renvoyaient des valeurs d'horodatage quel que soit le format renvoyé par la réponse de l'API HTTP, qui pouvait varier d'un service à l'autre.

Pour afficher les horodatages au format renvoyé par la réponse de l’API HTTP, utilisez la valeur wire dans votre fichier config. Pour de plus amples informations, veuillez consulter cli_timestamp_format.

Gestion améliorée des CloudFormation déploiements qui n'entraînent aucune modification

Par défaut, dans la AWS CLI version 1, si vous déployez un CloudFormation modèle qui n'entraîne aucune modification, un code d'erreur d'échec est renvoyé. AWS CLI Cela cause des problèmes si vous ignorez cette erreur et souhaitez que votre script continue. Vous pouvez contourner ce problème dans la AWS CLI version 1 en ajoutant le drapeau-–no-fail-on-empty-changeset, qui revient0.

Comme il s'agit d'un cas d'utilisation courant, la AWS CLI version 2 renvoie par défaut un code de sortie réussi 0 lorsqu'aucun changement n'est causé par un déploiement et que l'opération renvoie un ensemble de modifications vide.

Pour revenir au comportement d’origine, ajoutez l’indicateur --fail-on-empty-changeset.

Modification du comportement par défaut du point de terminaison Amazon S3 régional pour la région us-east-1

Lorsque vous configurez la AWS CLI version 1 pour utiliser la us-east-1 région, elle AWS CLI utilise le point de s3.amazonaws.com terminaison global qui est physiquement hébergé dans la us-east-1 région. La AWS CLI version 2 utilise le véritable point de terminaison régional s3.us-east-1.amazonaws.com lorsque cette région est spécifiée. Pour forcer la AWS CLI version 2 à utiliser le point de terminaison global, vous pouvez définir la région d'une commande suraws-global.

Comportement par défaut modifié pour les points de AWS STS terminaison régionaux

Par défaut, la AWS CLI version 2 envoie toutes les AWS Security Token Service (AWS STS) demandes d'API au point de terminaison régional pour l'API actuellement configurée Région AWS.

Par défaut, toute version antérieure à 1.42.0 la AWS CLI version 1 envoie des AWS STS demandes au point de AWS STS terminaison global. Vous pouvez contrôler ce comportement par défaut dans la version 1 à l’aide du paramètre sts_regional_endpoints.

Toutes les versions postérieures ou ultérieures 1.42.0 utilisent le point de terminaison régional par défaut. Si vous migrez vers la AWS CLI version 2 à partir de ces nouvelles versions, ce comportement reste inchangé.

Retrait de la commande ecr get-login, remplacée par ecr get-login-password

La AWS CLI version 2 remplace la commande aws ecr get-login par la aws ecr get-login-password commande qui améliore l'intégration automatisée avec l'authentification des conteneurs.

La commande aws ecr get-login-password réduit le risque d'exposer vos informations d'identification dans la liste des processus, l'historique du shell ou d'autres fichiers journaux. Elle améliore également la compatibilité avec la commande docker login, permettant une meilleure automatisation.

La aws ecr get-login-password commande est disponible dans les AWS CLI versions 1.17.10 et ultérieures, ainsi que dans la AWS CLI version 2. La aws ecr get-login commande précédente est toujours disponible dans la AWS CLI version 1 pour des raisons de rétrocompatibilité.

Avec la commande aws ecr get-login-password, vous pouvez remplacer le code suivant qui récupère un mot de passe.

$ (aws ecr get-login --no-include-email)

Pour réduire le risque d'exposer le mot de passe à l'historique ou aux journaux du shell, utilisez plutôt l'exemple de commande suivant. Dans cet exemple, le mot de passe est transféré directement à la commande docker login, où il est affecté au paramètre password par l'option --password-stdin.

$ aws ecr get-login-password | docker login --username AWS --password-stdin MY-REGISTRY-URL

Pour plus d’informations, consultez aws ecr get-login-password dans le Guide de référence de la version 2 de l’AWS CLI .

AWS CLI le support de la version 2 pour les plugins est en train de changer

La prise en charge des plugins dans la AWS CLI version 2 est entièrement provisoire et vise à aider les utilisateurs à migrer depuis la AWS CLI version 1 jusqu'à ce qu'une interface de plugin stable et mise à jour soit publiée. Rien ne garantit qu'un plugin particulier ou même l'interface du AWS CLI plugin seront pris en charge dans les futures versions de la AWS CLI version 2. Si vous utilisez des plugins, assurez-vous de vous connecter à une version spécifique de votre plugin AWS CLI et de tester ses fonctionnalités lors de la mise à niveau.

Pour activer la prise en charge des plug-ins, créez une section [plugins] dans votre ~/.aws/config.

[plugins] cli_legacy_plugin_path = <path-to-plugins>/python3.7/site-packages <plugin-name> = <plugin-module>

Dans la section [plugins], définissez la variable cli_legacy_plugin_path et réglez sa valeur sur le chemin des packages du site Python sur lequel réside votre module de plug-ins. Vous pouvez ensuite configurer un plug-in en fournissant un nom pour celui-ci (plugin-name) et le nom de fichier du module Python (plugin-module) qui contient son code source. AWS CLI Charge chaque plugin en l'important plugin-module et en appelant sa awscli_initialize fonction.

Suppression de la prise en charge des alias masqués

AWS CLI la version 2 ne prend plus en charge les alias cachés suivants qui étaient pris en charge dans la version 1.

Dans le tableau suivant, la première colonne affiche le service, la commande et le paramètre qui fonctionnent dans toutes les versions, y compris la AWS CLI version 2. La deuxième colonne affiche l'alias qui ne fonctionne plus dans la AWS CLI version 2.

Service, commande et paramètre fonctionnels Alias obsolète
cognito-identity -arns create-identity-pool open-id-connect-provider open-id-connect-provider-ar-ns
storagegateway describe-tapes tape-arns tape-ar-ns
passerelle de stockage. describe-tape-archives.ruban adhésif tape-ar-ns
passerelle de stockage. describe-vtl-devices. vtl-device-arns vtl-device-ar-ns
passerelle de stockage. describe-cached-iscsi-volumes.volume-arns volume-ar-ns
passerelle de stockage. describe-stored-iscsi-volumes.volume-arns volume-ar-ns
route53domains.view-billing.start-time démarrer
déployer. create-deployment-groupensemble de balises .ec2 ec-2-tag-set
déployer. list-application-revisions.s3-seau s-3-bucket
déployer. list-application-revisions.s3-key-préfixe s-3-key-prefix
déployer. update-deployment-groupensemble de balises .ec2 ec-2-tag-set
iam. enable-mfa-device.code d'authentification1 authentication-code-1
iam. enable-mfa-device.code d'authentification 2 authentication-code-2
iam. resync-mfa-device.code d'authentification1 authentication-code-1
iam. resync-mfa-device.code d'authentification 2 authentication-code-2
import/export. get-shipping-label.rue 1 street-1
import/export. get-shipping-label.rue 2 street-2
import/export. get-shipping-label.rue 3 street-3
lambda.publish-version.code-sha256 code-sha-256
voile lumineuse. import-key-pair. public-key-base64 public-key-base-64
opsworks.register-volume.ec2-volume-id ec-2-volume-id

Paramètre de fichier de configuration api_versions non pris en charge

La AWS CLI version 2 ne prend pas en charge l'appel de versions antérieures du AWS service à APIs l'aide du paramètre du fichier de api_versions configuration. Toutes les AWS CLI commandes appellent désormais la dernière version du service APIs actuellement prise en charge par le point de terminaison.

AWS CLI la version 2 utilise uniquement Signature v4 pour authentifier les demandes Amazon S3

La AWS CLI version 2 ne prend pas en charge les algorithmes de signature antérieurs pour authentifier de manière cryptographique les demandes de service envoyées aux points de terminaison Amazon S3. Cette signature s’effectue automatiquement à chaque demande Amazon S3 et seul le processus de Signature version 4 est pris en charge. Vous ne pouvez pas configurer la version de Signature. Tous les compartiments Amazon S3 présignés utilisent URLs désormais uniquement le protocole SigV4 et ont une durée d'expiration maximale d'une semaine.

AWS CLI la version 2 est plus cohérente avec les paramètres de pagination

Dans la AWS CLI version 1, si vous spécifiez les paramètres de pagination sur la ligne de commande, la pagination automatique est désactivée comme prévu. Toutefois, lorsque vous spécifiez des paramètres de pagination à l’aide d’un fichier contenant le paramètre ‐‐cli-input-json, la pagination automatique n’est pas désactivée, ce qui peut entraîner une sortie inattendue. La AWS CLI version 2 désactive la pagination automatique, quelle que soit la manière dont vous fournissez les paramètres.

AWS CLI la version 2 fournit des codes de retour plus cohérents pour toutes les commandes

La AWS CLI version 2 est plus cohérente dans toutes les commandes et renvoie correctement un code de sortie approprié par rapport à la AWS CLI version 1. Nous avons également ajouté les codes de sortie 252, 253 et 254. Pour plus d’informations sur les codes de sortie, consultez Codes de retour de ligne de commande dans l’AWS CLI.

Si vous êtes tributaire de la façon dont la AWS CLI version 1 utilise les valeurs des codes de retour, nous vous recommandons de vérifier les codes de sortie pour vous assurer que vous obtenez les valeurs que vous attendez.