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 AWS CLI versión 2
En este tema se describen las nuevas características y los cambios en el comportamiento entre la versión 1 de la AWS CLI y la versión 2 de la AWS CLI. 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.
Temas
Nuevas características de AWS CLI versión 2
La versión 2 de la AWS CLI es la versión principal y más reciente de la AWS CLI y es compatible con todas las características más recientes. Algunas características introducidas en la versión 2 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 por separado de Python. Incluye una versión insertada.
- Asistentes
-
Puede utilizar un asistente con la AWS CLI versión 2. El asistente le guía por la creación de determinados comandos.
- Autenticación del Centro de identidades de IAM
-
Si la organización utiliza AWS IAM Identity Center (IAM Identity Center), los usuarios pueden iniciar sesión en Active Directory, en un directorio de IAM Identity Center integrado o en otra IdP conectada a IAM Identity Center. A continuación, se asignan a un rol de AWS Identity and Access Management (IAM) que le permite ejecutar comandos de la AWS CLI.
- Mensaje automático
-
Cuando se activa, la AWS CLI versión 2 le puede pedir comandos, parámetros y recursos cuando ejecute un comando de
aws
. - Ejecute AWS CLI desde las imágenes oficiales de Amazon ECR Public o Docker
-
Las imágenes de Docker oficiales para la AWS CLI proporcionan aislamiento, portabilidad y seguridad que AWS apoya y mantiene directamente. De este modo, puede utilizar la AWS CLI versión 2 en un entorno basado en contenedores sin tener que administrar la instalación por su cuenta.
- Paginación del lado del cliente
-
La AWS CLI versión 2 proporciona el uso de un programa de paginación en el 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 archivo.csv
con el nombre de perfil que coincide con el nombre de usuario de IAM. aws configure list-profiles
-
Muestra los nombres de todos los perfiles que ha configurado.
- Formato de salida de transmisión YAML
-
Los formatos
yaml
yyaml-stream
aprovechan el formato YAMLa la vez que proporcionan una visualización más receptiva de los conjuntos de datos grandes mediante el streaming de datos a usted. Puede comenzar a ver y usar datos YAML antes de que se descargue toda la consulta. - Nuevos comandos
ddb
de alto nivel para DynamoDB -
La AWS CLI versión 2 tiene los comandos de alto nivel de Amazon DynamoDB
ddb put
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 dispone de un comando
aws logs tail
personalizado que pone a la cola los registros de un grupo de Registros de Amazon CloudWatch. De forma predeterminada, el comando devuelve los registros de todos los flujos asociados de CloudWatch Logs durante los últimos diez minutos. - Se ha agregado compatibilidad con los metadatos para los comandos s3 de alto nivel
-
La AWS CLI versión 2 agrega el parámetro
--copy-props
a los comandoss3
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 de entorno compatible con SDK de AWS llamada
AWS_REGION
. Esta variable especifica a la que Región de AWS envía solicitudes. Anula la variable de entornoAWS_DEFAULT_REGION
, que solo es aplicable en la AWS CLI.
Cambios importantes entre la AWS CLI versión 1 y la AWS CLI versión 2
En estas secciones se describen los cambios en el comportamiento entre la AWS CLI versión 1 y la AWS CLI 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.
Temas
- Se ha agregado una variable de entorno para establecer la codificación de los archivos de texto
- Los parámetros binarios se pasan como cadenas codificadas en base64 de forma predeterminada
- Mejora de la gestión de Amazon S3 de las propiedades y etiquetas de los archivos para las copias multiparte
- No hay recuperación automática de las URL http:// o https:// para los parámetros
- Paginador usado para toda la salida de forma predeterminada
- Los valores de salida de la marca de tiempo están estandarizados según el formato ISO 8601
- Control mejorado de las implementaciones de CloudFormation que no producen cambios
- Se ha cambiado el comportamiento predeterminado del punto de conexión regional de Amazon S3 para la región us-east-1
- Se ha cambiado el comportamiento predeterminado de los puntos de conexión de AWS STS regionales
- Se ha eliminado ecr get-login y se ha reemplazado por ecr get-login-password
- El soporte de la versión 2 de la AWS CLI para complementos está cambiando
- Se ha eliminado la compatibilidad con los alias ocultos
- No se admite la opción api_versions del archivo de configuración
- La AWS CLI versión 2 solo usa Signature v4 para autenticar las solicitudes de Amazon S3
- La AWS CLI versión 2 es más coherente con los parámetros de paginación
- La AWS CLI versión 2 proporciona códigos de retorno más coherentes en todos los comandos
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. Debido a que la AWS CLI versión 2 utiliza una versión incrustada de Python, las variables de entorno PYTHONUTF8
y PYTHONIOENCODING
no se admiten. 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 establece la AWS CLI para abrir archivos de texto con UTF-8
en Windows.
AWS_CLI_FILE_ENCODING=UTF-8
Para obtener más información, consulte Variables de entorno para configurar el AWS CLI.
Los parámetros binarios se pasan como cadenas codificadas en base64 de forma predeterminada
En la AWS CLI, algunos comandos requerían cadenas codificadas en base64
De forma predeterminada, la AWS CLI versión 2 pasa todos los parámetros binarios de entrada y salida como blobs
(objeto grande binario) de cadena codificada en base64. Para obtener más información, consulte Blob.
Para volver al comportamiento de la AWS CLI versión 1, utilice el archivo de configuración cli_binary_format
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
Cuando se utilizan los comandos de la AWS CLI versión 1 del espacio de nombres aws s3
para copiar un archivo de una ubicación de bucket de S3 a otra, y esa operación utiliza la copia multiparte, no se copian las propiedades del archivo del objeto de origen en el 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 generar más llamadas a la API de AWS en el punto de conexión de Amazon S3. Para cambiar el comportamiento predeterminado de los comandos s3
en la AWS CLI versión 2, utilice el parámetro --copy-props
.
Para obtener más información, consulte Propiedades de archivo y etiquetas en copias multiparte.
No hay recuperación automática de las URL http://
o https://
para los parámetros
La AWS CLI versión 2 no realiza una operación GET
cuando el valor de un parámetro empieza por http://
o https://
, ni utiliza el contenido devuelto como valor del 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 una URL y pasar el contenido de la URL en un valor de parámetro, le recomendamos que utilice curl
o una herramienta similar para descargar el contenido de la URL en un archivo local. 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 usar el contenido de la URL de una web 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 todas las salidas a través del paginador predeterminado de su sistema operativo. Este programa es el programa less
more
Puede configurar la AWS CLI versión 2 para usar un programa de paginación diferente o ninguno en absoluto. 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 según el formato ISO 8601
De forma predeterminada, la AWS CLI versión 2 devuelve todos los valores de respuesta de marca temporal en formato ISO 8601
Para ver las marcas temporales en el formato devuelto por la respuesta de la API HTTP, utilice el valor wire
en su archivo config
. Para obtener más información, consulte cli_timestamp_format
.
Control mejorado de las implementaciones de CloudFormation que no producen cambios
De forma predeterminada, en la AWS CLI versión 1, si implementa una plantilla de AWS CloudFormation que no produce cambios, la AWS CLI devuelve un código de error. Esto causa problemas si no lo considera un error y quiere que su script continúe. Puede solucionar esto en la AWS CLI versión 1 si agrega la marca -–no-fail-on-empty-changeset
, que devuelve 0
.
Dado que 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 hay 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
Cuando configura la AWS CLI versión 1 para utilizar la región us-east-1
, la AWS CLI utiliza el punto de conexión global s3.amazonaws.com
que está alojado físicamente en la región us-east-1
. La AWS CLI versión 2 utiliza el punto de conexión regional verdadero cuando s3.us-east-1.amazonaws.com
se especifica esa región. Para obligar a la versión 2 de la AWS CLI a que use el punto de enlace global, puede establecer la región de un comando en aws-global
.
Se ha cambiado el comportamiento predeterminado de los puntos de conexión de AWS STS regionales
De forma predeterminada, la AWS CLI versión 2 envía todas las solicitudes de la API AWS Security Token Service (AWS STS) al punto de conexión regional para la Región de AWS configurada actualmente.
De forma predeterminada, la AWS CLI versión 1 envía las solicitudes de AWS STS al punto de conexión global de AWS STS. 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 comando aws
ecr get-login-password
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 comando aws ecr get-login-password
está disponible en la versión 1.17.10 y posterior de la AWS CLI, y versión 2 de la AWS CLI. El anterior comando aws ecr get-login
todavía está disponible en la AWS CLI versión 1 por 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
El soporte de la versión 2 de la AWS CLI para complementos está cambiando
La compatibilidad con 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 lance una interfaz estable y actualizada. No hay garantías de que un complemento en particular o incluso la interfaz de complementos de la AWS CLI sean compatibles en futuras versiones de la AWS CLI versión 2. Si se basa en complementos, asegúrese de bloquear una versión concreta de la AWS CLI y probar la funcionalidad de su complemento cuando realice 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. La AWS CLI carga cada complemento mediante la importación de su plugin-module
y la llamada a su función awscli_initialize
.
Se ha eliminado la compatibilidad con los alias ocultos
La versión 2 de la AWS CLI ya no admite los siguientes alias ocultos que se admitían en la versión 1.
En la tabla siguiente, 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 create-identity-pool open-id-connect-provider-arns | open-id-connect-provider-ar-ns |
storagegateway describe-tapes tape-arns | tape-ar-ns |
storagegateway.describe-tape-archives.tape-arns | tape-ar-ns |
storagegateway.describe-vtl-devices.vtl-device-arns | vtl-device-ar-ns |
storagegateway.describe-cached-iscsi-volumes.volume-arns | volume-ar-ns |
storagegateway.describe-stored-iscsi-volumes.volume-arns | volume-ar-ns |
route53domains.view-billing.start-time | iniciar |
deploy.create-deployment-group.ec2-tag-set | ec-2-tag-set |
deploy.list-application-revisions.s3-bucket | s-3-bucket |
deploy.list-application-revisions.s3-key-prefix | s-3-key-prefix |
deploy.update-deployment-group.ec2-tag-set | ec-2-tag-set |
iam.enable-mfa-device.authentication-code1 | authentication-code-1 |
iam.enable-mfa-device.authentication-code2 | authentication-code-2 |
iam.resync-mfa-device.authentication-code1 | authentication-code-1 |
iam.resync-mfa-device.authentication-code2 | authentication-code-2 |
importexport.get-shipping-label.street1 | street-1 |
importexport.get-shipping-label.street2 | street-2 |
importexport.get-shipping-label.street3 | street-3 |
lambda.publish-version.code-sha256 | code-sha-256 |
lightsail.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 ya no es compatible con la llamada a versiones anteriores de las API de servicio de AWS mediante la opción del archivo de configuración api_versions
. Todos los comandos de la AWS CLI ahora llaman a la versión más reciente de las API de servicio que son compatibles actualmente con el punto de enlace.
La AWS CLI versión 2 solo usa Signature v4 para autenticar las solicitudes de Amazon S3
La AWS CLI versión 2 no admite algoritmos de firma anteriores para autenticar criptográficamente las solicitudes de servicio enviadas a los puntos de conexión 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. Todas las URL firmadas previamente de los buckets de Amazon S3 ahora solo utilizan SigV4 y tienen una duración máxima de caducidad de una semana.
La AWS CLI versión 2 es más coherente con los parámetros de paginación
En la AWS CLI versión 1, si se especifican los parámetros de paginación en la línea de comandos, la paginación automática se desactiva del modo 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.
La AWS CLI versión 2 proporciona códigos de retorno más coherentes 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 Códigos de devolución de la AWS CLI.
Si tiene una dependencia de cómo la AWS CLI versión 1 utiliza valores de código de devolución, le recomendamos que consulte los códigos de salida para asegurarse de que obtiene los valores que espera.