Nuevas funciones y cambios en la AWS CLI versión 2 - AWS Command Line Interface

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Nuevas funciones y cambios en la AWS CLI versión 2

En este tema se describen las nuevas funciones y los cambios de comportamiento entre AWS CLI la versión 1 y AWS CLI la versión 2. Estos cambios pueden requerir que actualice los scripts o comandos para obtener el mismo comportamiento en la versión 2 que en la versión 1.

AWS CLI nuevas funciones de la versión 2

La AWS CLI versión 2 es la versión principal más reciente AWS CLI y es compatible con todas las funciones más recientes. ‎Algunas características introducidas en la versión 2 de no son compatibles con la versión 1 y debe realizar una actualización para acceder a esas características. Estas son algunas de ellas:

No se necesita intérprete de Python

La AWS CLI versión 2 no necesita una instalación independiente de Python. Incluye una versión insertada.

Asistentes

Puedes usar un asistente con la AWS CLI versión 2. El asistente le guía por la creación de determinados comandos.

IAMLa autenticación de Identity Center

Si su organización usa AWS IAM Identity Center (IAMIdentity Center), sus usuarios pueden iniciar sesión en Active Directory, en un directorio de IAM Identity Center integrado o en otro IdP conectado a IAM Identity Center. A continuación, se asignan a un rol AWS Identity and Access Management (IAM) que le permite ejecutar AWS CLI comandos.

Mensaje automático

Cuando está habilitada, la AWS CLI versión 2 puede solicitarle comandos, parámetros y recursos al ejecutar un aws comando.

Ejecutar las imágenes oficiales de Amazon ECR Public o Docker para AWS CLI

La imagen oficial de Docker AWS CLI proporciona aislamiento, portabilidad y seguridad que respaldan y AWS mantienen directamente. De esta forma, puede utilizar la AWS CLI versión 2 en un entorno basado en contenedores sin tener que gestionar la instalación usted mismo.

Paginación del lado del cliente

La AWS CLI versión 2 proporciona el uso de un programa localizador del lado del cliente para la salida. De forma predeterminada, esta característica está activada y devuelve todas las salidas a través del programa de paginación predeterminado del sistema operativo.

aws configure import

Importe las credenciales de .csv generadas desde la AWS Management Console. Se importa un .csv archivo con el nombre del perfil que coincide con el nombre del IAM usuario.

aws configure list-profiles

Muestra los nombres de todos los perfiles que ha configurado.

YAMLformato de salida de flujo

El yaml-stream formato yaml and aprovecha las ventajas del YAMLformato y, al mismo tiempo, proporciona una visualización con mayor capacidad de respuesta de conjuntos de datos de gran tamaño al transmitirle los datos en streaming. Puede empezar a ver y usar YAML los datos antes de que se descargue toda la consulta.

Nuevos comandos ddb de alto nivel para DynamoDB

La AWS CLI versión 2 incluye los comandos de alto nivel de Amazon ddb putDynamoDB y. ddb select Estos comandos proporcionan una interfaz simplificada para colocar elementos en las tablas de DynamoDB y buscar en una tabla o índice de DynamoDB.

aws logs tail

La AWS CLI versión 2 tiene un aws logs tail comando personalizado que sigue los registros de un grupo de Amazon CloudWatch Logs. De forma predeterminada, el comando devuelve los registros de todas las transmisiones de CloudWatch Logs asociadas de los últimos diez minutos.

Se ha agregado compatibilidad con los metadatos para los comandos s3 de alto nivel

La AWS CLI versión 2 añade el --copy-props parámetro a los s3 comandos de alto nivel. Con este parámetro, puede configurar metadatos y etiquetas adicionales para Amazon Simple Storage Service (Amazon S3).

AWS_REGION

La AWS CLI versión 2 tiene una variable AWS SDK de entorno compatible llamadaAWS_REGION. Esta variable especifica Región de AWS a quién enviar las solicitudes. Anula la variable de entorno AWS_DEFAULT_REGION, que solo es aplicable en la AWS CLI.

Cambios importantes entre la AWS CLI versión 1 y AWS CLI la versión 2

En esta sección se describen todos los cambios de comportamiento entre la AWS CLI versión 1 y AWS CLI la versión 2. Estos cambios pueden requerir que actualice los scripts o comandos para obtener el mismo comportamiento en la versión 2 que en la versión 1.

Se ha agregado una variable de entorno para establecer la codificación de los archivos de texto

De forma predeterminada, los archivos de texto de Blob utilizan la misma codificación que la configuración regional instalada. Como la AWS CLI versión 2 usa una versión integrada de Python, las variables de PYTHONIOENCODING entorno PYTHONUTF8 y no son compatibles. Para establecer que la codificación de los archivos de texto sea distinta de la configuración regional, utilice la variable de entorno AWS_CLI_FILE_ENCODING. El siguiente ejemplo configura la opción AWS CLI para abrir los archivos de texto que se utilizan UTF-8 en Windows.

AWS_CLI_FILE_ENCODING=UTF-8

Para obtener más información, consulte Configuración de variables de entorno para AWS CLI.

Los parámetros binarios se pasan como cadenas codificadas en base64 de forma predeterminada

En el AWS CLI, algunos comandos requerían cadenas codificadas en base64, mientras que otros requerían cadenas de bytes UTF codificadas en 8. En la AWS CLI versión 1, el paso de datos entre dos tipos de cadenas codificadas a menudo requería un procesamiento intermedio. La AWS CLI versión 2 hace que el manejo de los parámetros binarios sea más coherente, lo que ayuda a pasar los valores de un comando a otro de manera más confiable.

De forma predeterminada, la AWS CLI versión 2 transfiere todos los parámetros binarios de entrada y salida binaria como una cadena codificada en base64 blobs (objeto binario grande). Para obtener más información, consulte Blob.

Para volver al comportamiento de la AWS CLI versión 1, utilice la configuración del cli_binary_format archivo o el parámetro. --cli-binary-format

Mejora de la gestión de Amazon S3 de las propiedades y etiquetas de los archivos para las copias multiparte

Si utiliza los comandos de la AWS CLI versión 1 en el espacio de aws s3 nombres para copiar un archivo de una ubicación de bucket de S3 a otra y esa operación utiliza la copia multiparte, no se copia ninguna propiedad del archivo del objeto de origen en el objeto de destino.

De forma predeterminada, los comandos correspondientes de la AWS CLI versión 2 transfieren todas las etiquetas y algunas de las propiedades de la copia de origen a la de destino. En comparación con la AWS CLI versión 1, esto puede provocar que se AWS API realicen más llamadas al punto de conexión Amazon S3. Para cambiar el comportamiento predeterminado de los s3 comandos de AWS CLI la versión 2, utilice el --copy-props parámetro.

Para obtener más información, consulte Propiedades de archivo y etiquetas en copias multiparte.

No hay recuperación automática de http:// o https:// URLs para los parámetros

La AWS CLI versión 2 no realiza ninguna GET operación cuando el valor de un parámetro comienza por http:// o https:// y no utiliza el contenido devuelto como valor de parámetro. Como resultado, la opción de línea de comandos asociada cli_follow_urlparam se elimina de la AWS CLI versión 2.

Si necesita recuperar un valor de parámetro URL y pasarlo a un valor de parámetro, le recomendamos que utilice curl una herramienta similar para descargar el contenido del mismo URL a un archivo local. URL Después, use la sintaxis file:// para leer el contenido de ese archivo y utilizarlo como valor del parámetro.

Por ejemplo, el siguiente comando ya no intenta recuperar el contenido de la página encontrada en http://www.example.com y pasar ese contenido como parámetro. En cambio, pasa la cadena de texto literal https://example.com como parámetro.

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

Si necesita recuperar y utilizar el contenido de una web URL como parámetro, puede hacer lo siguiente en la versión 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

En el ejemplo anterior, el parámetro -o indica a curl que guarde el archivo en la carpeta actual con el mismo nombre que el archivo de origen. El segundo comando recupera el contenido de ese archivo descargado y lo pasa como valor de --policy-document.

Paginador usado para toda la salida de forma predeterminada

De forma predeterminada, la AWS CLI versión 2 devuelve todos los resultados a través del programa localizador predeterminado del sistema operativo. Este programa es el programa less en Linux o macOS, y el programa more en Windows. Esto puede ayudarle a navegar por gran cantidad de resultados de un servicio al mostrar las páginas de salida de una en una.

Puede configurar la AWS CLI versión 2 para que utilice un programa de paginación diferente o ninguno. Para obtener más información, consulte Paginación del lado del cliente.

Los valores de salida de la marca de tiempo están estandarizados en el formato 8601 ISO

De forma predeterminada, la AWS CLI versión 2 devuelve todos los valores de respuesta de la marca de tiempo en el ISO formato 8601. En la AWS CLI versión 1, los comandos devolvían valores de marca temporal en el formato que devolviera la HTTP API respuesta, que podía variar de un servicio a otro.

Para ver las marcas de tiempo en el formato devuelto por la HTTP API respuesta, usa el wire valor del archivo. config Para obtener más información, consulte cli_timestamp_format.

Gestión mejorada de las CloudFormation implementaciones que no producen cambios

De forma predeterminada, en la AWS CLI versión 1, si AWS CloudFormation despliegas una plantilla que no produce cambios, AWS CLI devuelve un código de error. Esto causa problemas si no lo considera un error y quiere que su script continúe. Puedes solucionar este problema en la AWS CLI versión 1 añadiendo la marca-–no-fail-on-empty-changeset, que vuelve a aparecer0.

Como este es un caso de uso común, la AWS CLI versión 2 devuelve de forma predeterminada un código de salida correcto 0 cuando no se produce ningún cambio provocado por una implementación y la operación devuelve un conjunto de cambios vacío.

Para volver al comportamiento original, debe agregar la marca --fail-on-empty-changeset.

Se ha cambiado el comportamiento predeterminado del punto de conexión regional de Amazon S3 para la región us-east-1

Al configurar la AWS CLI versión 1 para usar la us-east-1 región, AWS CLI utiliza el s3.amazonaws.com punto final global que está alojado físicamente en la us-east-1 región. La AWS CLI versión 2 utiliza el verdadero punto final regional s3.us-east-1.amazonaws.com cuando se especifica esa región. Para forzar a la AWS CLI versión 2 a utilizar el punto final global, puede configurar la región en la que debe utilizarse un comandoaws-global.

Se ha modificado el comportamiento predeterminado de los puntos AWS STS finales regionales

De forma predeterminada, la AWS CLI versión 2 envía todas las API solicitudes AWS Security Token Service (AWS STS) al punto final regional para el que está configurado Región de AWS actualmente.

De forma predeterminada, la AWS CLI versión 1 envía AWS STS las solicitudes al AWS STS punto final global. Puede controlar este comportamiento predeterminado en la versión 1 con la configuración sts_regional_endpoints.

Se ha eliminado ecr get-login y se ha reemplazado por ecr get-login-password

La AWS CLI versión 2 reemplaza el comando aws ecr get-login por el aws ecr get-login-password comando que mejora la integración automatizada con la autenticación de contenedores.

El comando aws ecr get-login-password reduce el riesgo de exponer sus credenciales en la lista de procesos, historial de shell u otros archivos de registro. También mejora la compatibilidad con el comando docker login, lo que mejora la automatización.

El aws ecr get-login-password comando está disponible en la AWS CLI versión 1.17.10 y posteriores, y en la AWS CLI versión 2. El aws ecr get-login comando anterior sigue disponible en la AWS CLI versión 1 por motivos de compatibilidad con versiones anteriores.

Con el comando aws ecr get-login-password, puede reemplazar el siguiente código que recupera una contraseña.

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

Para reducir el riesgo de exponer la contraseña al historial de shell o a los registros, utilice el siguiente comando de ejemplo. En este ejemplo, la contraseña se canaliza directamente al comando docker login, donde se asigna al parámetro password mediante la opción --password-stdin.

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

Para obtener más información, consulte aws ecr get-login-password en la Guía de referencia de la AWS CLI versión 2.

AWS CLI El soporte de la versión 2 para los complementos está cambiando

La compatibilidad con los complementos en la AWS CLI versión 2 es completamente provisional y está destinada a ayudar a los usuarios a migrar desde la AWS CLI versión 1 hasta que se publique una interfaz de complementos estable y actualizada. No hay garantías de que un complemento en particular o incluso la interfaz del AWS CLI complemento sean compatibles en futuras versiones de la AWS CLI versión 2. Si utilizas complementos, asegúrate de utilizar una versión concreta del plugin AWS CLI y de probar su funcionalidad cuando realices la actualización.

Para habilitar el soporte de complementos, cree una sección [plugins] en su ~/.aws/config.

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

En la sección [plugins], defina la variable cli_legacy_plugin_path y establezca su valor en la ruta de paquetes del sitio de Python en la que se encuentra su módulo de complemento. Después, puede configurar un complemento si proporciona un nombre para el complemento (plugin-name) y el nombre de archivo del módulo Python (plugin-module) que contiene el código fuente de su complemento. AWS CLI Carga cada complemento importando su función plugin-module y llamando a su awscli_initialize función.

Se ha eliminado la compatibilidad con los alias ocultos

AWS CLI la versión 2 ya no admite los siguientes alias ocultos que se admitían en la versión 1.

En la siguiente tabla, la primera columna muestra el servicio, el comando y el parámetro que funcionan en todas las versiones, incluida la AWS CLI versión 2. La segunda columna muestra el alias que ya no funciona en la AWS CLI versión 2.

Servicio, comando y parámetro que funcionan Alias obsoleto
cognito-identity -arns create-identity-pool open-id-connect-provider open-id-connect-provider-ar-ns
storagegateway describe-tapes tape-arns tape-ar-ns
puerta de almacenamiento. describe-tape-archives.hilos de cinta tape-ar-ns
puerta de enlace de almacenamiento. describe-vtl-devices. vtl-device-arns vtl-device-ar-ns
puerta de almacenamiento. describe-cached-iscsi-volumes.volume-arns volume-ar-ns
puerta de enlace de almacenamiento. describe-stored-iscsi-volumes.volume-arns volume-ar-ns
route53domains.view-billing.start-time iniciar
desplegar. create-deployment-group.ec2-tag-set ec-2-tag-set
desplegar. list-application-revisions.s3-bucket s-3-bucket
desplegar. list-application-revisionsprefijo.s3-key-prefijo s-3-key-prefix
desplegar. update-deployment-group.ec2-tag-set ec-2-tag-set
Estoy. enable-mfa-device.código de autenticación 1 authentication-code-1
soy. enable-mfa-device.código de autenticación 2 authentication-code-2
soy. resync-mfa-device.código de autenticación 1 authentication-code-1
soy. resync-mfa-device.código de autenticación 2 authentication-code-2
importar/exportar. get-shipping-label.street1 street-1
importación/exportación. get-shipping-label.street2 street-2
importación/exportación. get-shipping-label.street3 street-3
lambda.publish-version.code-sha256 code-sha-256
vela ligera. import-key-pair. public-key-base64 public-key-base-64
opsworks.register-volume.ec2-volume-id ec-2-volume-id

No se admite la opción api_versions del archivo de configuración

La AWS CLI versión 2 no permite llamar a versiones anteriores del AWS servicio APIs mediante el ajuste del archivo api_versions de configuración. Todos los AWS CLI comandos ahora llaman a la versión más reciente del servicio APIs que actualmente admite el punto final.

AWS CLI la versión 2 usa solo Signature v4 para autenticar las solicitudes de Amazon S3

La AWS CLI versión 2 no admite los algoritmos de firma anteriores para autenticar criptográficamente las solicitudes de servicio enviadas a los puntos de enlace de Amazon S3. Esta firma se produce automáticamente con cada solicitud de Amazon S3 y solo se admite el proceso de firma de Signature versión 4. No puede configurar la versión de la firma. Todos los buckets de Amazon S3 prefirmados URLs ahora usan solo SigV4 y tienen una duración máxima de caducidad de una semana.

AWS CLI la versión 2 es más coherente con los parámetros de paginación

En la AWS CLI versión 1, si especificas los parámetros de paginación en la línea de comandos, la paginación automática se desactiva según lo previsto. No obstante, al especificar los parámetros de paginación mediante un archivo con el parámetro ‐‐cli-input-json, no se desactivaba la paginación automática, lo que podía dar lugar a una salida inesperada. La AWS CLI versión 2 desactiva la paginación automática independientemente de cómo se proporcionen los parámetros.

AWS CLI la versión 2 proporciona códigos de retorno más consistentes en todos los comandos

La AWS CLI versión 2 es más coherente en todos los comandos y devuelve correctamente un código de salida adecuado en comparación con la AWS CLI versión 1. También hemos añadido los códigos de salida 252, 253 y 254. Para obtener más información sobre los códigos de salida, consulte Los códigos de retorno de la línea de comandos están en el AWS CLI.

Si depende de la forma en que la AWS CLI versión 1 utiliza los valores de los códigos de retorno, le recomendamos que compruebe los códigos de salida para asegurarse de que obtiene los valores esperados.