

# Guía de migración para la versión 2 de la AWS CLI
<a name="cliv2-migration"></a>

Esta sección contiene instrucciones para actualizar la AWS CLI versión 1 a la AWS CLI versión 2. La versión 2 de la AWS CLI se basa en la versión 1 de la AWS CLI e incluye características y mejoras basadas en los comentarios de la comunidad. 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 ingresadas 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. 

Para evitar problemas inesperados, antes de migrar a la versión 2, [consulte las diferencias entre las versiones](cliv2-migration-changes.md). La versión 2 de la AWS CLI incluye nuevas características y cambios que podrían requerir la actualización de los scripts o los comandos para obtener compatibilidad con versiones anteriores.

Las versiones 1 y 2 de la AWS CLI utilizan el mismo nombre de comando de `aws`. Si tiene ambas versiones instaladas, el equipo utiliza la primera que encuentra en la ruta de búsqueda. Esto puede provocar que el nombre de comando `aws` ejecute la versión anterior de AWS CLI, incluso si tiene instalada la versión nueva.

Para actualizar a la versión 2 de AWS CLI, siga una de las siguientes instrucciones:
+ Si ha instalado previamente la versión 1 de la AWS CLI, siga las instrucciones que se indican en [Instalación de la versión 2 de la AWS CLI a partir de la versión 1 de la AWS CLI](cliv2-migration-instructions.md).
+ Si no ha instalado previamente la versión 1 de la AWS CLI, siga las instrucciones que se indican en [Introducción al AWS CLI](cli-chap-getting-started.md). 

## Uso de herramientas de migración de la AWS CLI para mitigar las interrupciones
<a name="using-migration-tools"></a>

Hay cambios de comportamiento entre la versión 1 de la AWS CLI y la versión 2 de la AWS CLI que pueden requerir que actualice los scripts o comandos. Al actualizar a la versión 2 de la AWS CLI sin comprobar que los scripts existentes se migran de forma segura, se corre el riesgo de que se produzcan efectos inesperados al ejecutar los scripts con la versión 2 de la AWS CLI, como realizar cambios no deseados en los recursos de las cuentas de AWS.

Existen dos herramientas de AWS que puede utilizar para guiar la migración. Independientemente de la herramienta que utilice, recomendamos que se consulte [Cambios importantes entre la AWS CLI versión 1 y la AWS CLI versión 2](cliv2-migration-changes.md#cliv2-migration-changes-breaking) en la guía de [Nuevas características y cambios en la versión 2 de la AWS CLI](cliv2-migration-changes.md).

### Modo de depuración de actualizaciones
<a name="cliv2-migration-upgrade-debug-mode"></a>

El modo de depuración de actualizaciones es una característica de la versión 1 de la AWS CLI que está disponible en las versiones `1.44.0` y superiores. Cuando esta característica está habilitada, se comprueba cada comando de la AWS CLI que ejecute para determinar si es probable que tenga un comportamiento diferente en la versión 2 de la AWS CLI, suponiendo que el entorno de ejecución siga siendo el mismo. Si un comando ejecutado tuviera un comportamiento diferente en la versión 2 de la AWS CLI, se mostrará una advertencia junto al resultado del comando con las acciones sugeridas que se pueden tomar para preservar el comportamiento de la versión 1 de la AWS CLI en la versión 2 de la AWS CLI.

La razón principal para utilizar el modo de depuración de actualizaciones como guía para la migración es que tiene una gran cobertura para detectar si los comandos sufrirán un cambio de comportamiento. 14 de los 15 cambios importantes descritos en [Cambios importantes entre la AWS CLI versión 1 y la AWS CLI versión 2](cliv2-migration-changes.md#cliv2-migration-changes-breaking) se pueden detectar con el modo de depuración de actualizaciones; consulte [Limitaciones](cli-upgrade-debug-mode.md#upgrade-mode-limitations) en [Uso del modo de depuración de actualizaciones para actualizar la versión 1 de AWS CLI a la versión 2 de AWS CLI](cli-upgrade-debug-mode.md) para las limitaciones de esta característica. Por otro lado, la principal desventaja de usar el modo de depuración de actualizaciones es que su resultado solo es relevante dentro de su entorno de ejecución; si algún ajuste de configuración de la AWS CLI cambia en el entorno después de migrar a la versión 2 de la AWS CLI, es posible que se sigan produciendo cambios importantes y debe volver a verificarlo mediante el modo de depuración de actualizaciones en el entorno actualizado.

### Herramienta de migración de la AWS CLI v1-to-v2
<a name="cliv2-migration-migration-tool"></a>

La herramienta de migración de la AWS CLI v1-to-v2 es una herramienta independiente que se puede usar con Python 3.9 y versiones posteriores. Esta herramienta es un linter estático que se ejecuta de forma independiente de la AWS CLI. Realiza revisión lint de scripts bash que contienen comandos de la versión 1 de la AWS CLI que pueden tener un comportamiento diferente en la versión 2 de la AWS CLI. Para la mayoría de los comandos que detecta que tienen probabilidades de tener un comportamiento diferente en la versión 2 de la AWS CLI, puede actualizar automáticamente el comando dentro del script para conservar el comportamiento de la versión 1 de la AWS CLI en la versión 2 de la AWS CLI.

La razón principal para utilizar la herramienta de migración de la AWS CLI v1-to-v2 para guiar la migración es que puede actualizar automáticamente los scripts para preservar el comportamiento de la versión 1 de la AWS CLI en la versión 2 de la AWS CLI, lo que ahorra tiempo y esfuerzo al realizar las actualizaciones la misma persona. Por otro lado, el principal inconveniente del uso de la herramienta de migración es que tiene una menor cobertura para detectar si los comandos sufrirán un cambio de comportamiento. Al ser una herramienta estática, no comprueba los cambios en el comportamiento que se determinan en tiempo de ejecución.

## Elección entre el modo de depuración de actualizaciones y la herramienta de migración de la AWS CLI v1-to-v2
<a name="cliv2-migration-choosing-migration-tool"></a>

En la tabla siguiente, se destacan las principales diferencias entre el modo de depuración de actualizaciones y la herramienta de migración de la AWS CLI v1-to-v2, y se puede utilizar como guía para elegir la herramienta adecuada para su caso de uso.


| Modo de depuración de actualizaciones | Herramienta de migración de la AWS CLI v1-to-v2 | 
| --- | --- | 
| Detecta 14 de los 15 cambios importantes entre la versión 1 de la AWS CLI y la versión 2 de la AWS CLI. | Detecta 7 de los 15 cambios importantes entre la versión 1 de la AWS CLI y la versión 2 de la AWS CLI. | 
| Compatible con cualquier programa de terminal que pueda ejecutar la AWS CLI. | Solo admite linting scripts bash. | 
| Requiere la versión 1 de la AWS CLI, la versión 1.44.0 o superior. | Se ejecuta de forma independiente de la AWS CLI; no requiere que la AWS CLI esté instalada. | 
| Se deben realizar correcciones manuales para preservar el comportamiento de la versión 1 de la AWS CLI en la versión 2 de la AWS CLI. | Corrige automáticamente la mayoría de los comandos de la versión 1 de la AWS CLI que detecta que es probable que tengan un comportamiento diferente en la versión 2 de la AWS CLI. | 
| Las detecciones y las correcciones sugeridas solo son relevantes para el entorno de ejecución (es decir, la configuración de la AWS CLI) en el que se ejecutan. | Las detecciones y las correcciones sugeridas son independientes del entorno. | 
| Requiere ejecutar cada comando de la AWS CLI sometido a prueba para comprobar el cambio de comportamiento. | No requiere ejecutar ningún comando de la AWS CLI. Solo debe ejecutarse una vez por script bash. | 
| Tiene exactamente 5 casos conocidos en los que generará detecciones de falsos positivos. | Tiene exactamente 3 casos conocidos en los que generará detecciones de falsos positivos. | 

En la tabla siguiente, se muestran qué [Cambios importantes entre la AWS CLI versión 1 y la AWS CLI versión 2](cliv2-migration-changes.md#cliv2-migration-changes-breaking) son compatibles con cada una de las dos herramientas de migración.


| Cambios importantes | Detectado mediante el modo de depuración de actualizaciones | Detectado mediante la herramienta de migración de la AWS CLI v1-to-v2 | 
| --- | --- | --- | 
| [Se ha agregado una variable de entorno para establecer la codificación de los archivos de texto](cliv2-migration-changes.md#cliv2-migration-encodingenvvar) | Sí | No | 
| [Los parámetros binarios se pasan como cadenas codificadas en base64 de forma predeterminada](cliv2-migration-changes.md#cliv2-migration-binaryparam) | Sí | Sí | 
| [Mejora de la gestión de Amazon S3 de las propiedades y etiquetas de los archivos para las copias multiparte](cliv2-migration-changes.md#cliv2-migration-s3-copy-metadata) | Sí | Sí | 
| [No hay recuperación automática de las URL `http://` o `https://` para los parámetros](cliv2-migration-changes.md#cliv2-migration-paramfile) | Sí | No | 
| [Paginador usado para toda la salida de forma predeterminada](cliv2-migration-changes.md#cliv2-migration-output-pager) | Sí | Sí | 
| [Los valores de salida de la marca de tiempo están estandarizados según el formato ISO 8601](cliv2-migration-changes.md#cliv2-migration-timestamp) | Sí | No | 
| [Control mejorado de las implementaciones de CloudFormation que no producen cambios](cliv2-migration-changes.md#cliv2-migration-cfn) | Sí | Sí | 
| [Se ha cambiado el comportamiento predeterminado del punto de conexión regional de Amazon S3 para la región `us-east-1`](cliv2-migration-changes.md#cliv2-migration-s3-regional-endpoint) | Sí | No | 
| [Se ha cambiado el comportamiento predeterminado de los puntos de conexión de AWS STS regionales](cliv2-migration-changes.md#cliv2-migration-sts-regional-endpoint) | Sí | No | 
| [Se ha eliminado `ecr get-login` y se ha reemplazado por `ecr get-login-password`](cliv2-migration-changes.md#cliv2-migration-ecr-get-login) | Sí | Sí | 
| [AWS CLIEl soporte de la versión 2 de la para complementos está cambiando](cliv2-migration-changes.md#cliv2-migration-profile-plugins) | Sí | No | 
| [Se ha eliminado la compatibilidad con los alias ocultos](cliv2-migration-changes.md#cliv2-migration-aliases) | Sí | Sí | 
| [No se admite la opción `api_versions` del archivo de configuración](cliv2-migration-changes.md#cliv2-migration-api-versions) | Sí | No | 
| [La AWS CLI versión 2 solo usa Signature v4 para autenticar las solicitudes de Amazon S3](cliv2-migration-changes.md#cliv2-migration-sigv4) | Sí | No | 
| [La AWS CLI versión 2 es más coherente con los parámetros de paginación](cliv2-migration-changes.md#cliv2-migration-skeleton-paging) | Sí | Sí | 
| [La AWS CLI versión 2 proporciona códigos de retorno más coherentes en todos los comandos](cliv2-migration-changes.md#cliv2-migration-return-codes) | No | No | 

## Temas adicionales en esta sección
<a name="migrate-topics"></a>
+ [Nuevas características y cambios en la versión 2 de la AWS CLI](cliv2-migration-changes.md)
+ [Instalación de la versión 2 de la AWS CLI a partir de la versión 1 de la AWS CLI](cliv2-migration-instructions.md)
+ [Uso del modo de depuración de actualizaciones para actualizar la versión 1 de AWS CLI a la versión 2 de AWS CLI](cli-upgrade-debug-mode.md)
+ [Uso de la herramienta de migración de la AWS CLI v1-to-v2 para actualizar la versión 1 de la AWS CLI a la versión 2 de la AWS CLI](cli-migration-tool.md)

# Nuevas características y cambios en la versión 2 de la AWS CLI
<a name="cliv2-migration-changes"></a>

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.

**Topics**
+ [

## Nuevas características de AWS CLI versión 2
](#cliv2-migration-changes-features)
+ [

## Cambios importantes entre la AWS CLI versión 1 y la AWS CLI versión 2
](#cliv2-migration-changes-breaking)

## Nuevas características de AWS CLI versión 2
<a name="cliv2-migration-changes-features"></a>

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](cli-usage-wizard.md)**  
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 IAMConceptos de IAM Identity CenterTutorial: AWS IAM Identity Center y Amazon S3Ejemplos de AWS CLI](cli-configure-sso.md)**  
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](https://docs.aws.amazon.com/singlesignon/latest/userguide/manage-your-identity-source-idp.html). 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](cli-usage-parameters-prompting.md)**  
Cuando se activa, la AWS CLI versión 2 le puede pedir comandos, parámetros y recursos cuando ejecute un comando de `aws`. 

**[Ejecución de las imágenes oficiales de Amazon ECR Public o Docker para la AWS CLI](getting-started-docker.md)**  
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](cli-usage-pagination.md#cli-usage-pagination-clientside)**  
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`](cli-configure-files.md#cli-config-aws_configure_import)**  
Importe las credenciales de `.csv` generadas desde la Consola de administración de AWS. Se importa un archivo `.csv` con el nombre de perfil que coincide con el nombre de usuario de IAM. 

**[https://docs.aws.amazon.com/cli/latest/reference/configure/list-profiles.html](https://docs.aws.amazon.com/cli/latest/reference/configure/list-profiles.html)**  
Muestra los nombres de todos los perfiles que ha configurado. 

**[Formato de salida de transmisión YAML‎](cli-usage-output-format.md#yaml-stream-output)**  
Los formatos `yaml` y `yaml-stream` aprovechan el formato [YAML](https://yaml.org) a 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](https://docs.aws.amazon.com/cli/latest/reference/ddb/index.html)**  
La AWS CLI versión 2 tiene los comandos de alto nivel de Amazon DynamoDB [https://docs.aws.amazon.com/cli/latest/reference/api/latest/reference/ddb/put.html](https://docs.aws.amazon.com/cli/latest/reference/api/latest/reference/ddb/put.html) y [https://docs.aws.amazon.com/cli/latest/reference/api/latest/reference/ddb/select.html](https://docs.aws.amazon.com/cli/latest/reference/api/latest/reference/ddb/select.html). Estos comandos proporcionan una interfaz simplificada para colocar elementos en las tablas de DynamoDB y buscar en una tabla o índice de DynamoDB. 

**[https://docs.aws.amazon.com/cli/latest/reference/logs/tail.html](https://docs.aws.amazon.com/cli/latest/reference/logs/tail.html)**  
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](cli-services-s3-commands.md#using-s3-commands-before-large)**  
La AWS CLI versión 2 agrega el parámetro `--copy-props` a los comandos `s3` de alto nivel. Con este parámetro, puede configurar metadatos y etiquetas adicionales para Amazon Simple Storage Service (Amazon S3).

**[`AWS_REGION`](cli-configure-envvars.md#envvars-list-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 entorno `AWS_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
<a name="cliv2-migration-changes-breaking"></a>

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.

**Topics**
+ [

### Se ha agregado una variable de entorno para establecer la codificación de los archivos de texto
](#cliv2-migration-encodingenvvar)
+ [

### Los parámetros binarios se pasan como cadenas codificadas en base64 de forma predeterminada
](#cliv2-migration-binaryparam)
+ [

### Mejora de la gestión de Amazon S3 de las propiedades y etiquetas de los archivos para las copias multiparte
](#cliv2-migration-s3-copy-metadata)
+ [

### No hay recuperación automática de las URL `http://` o `https://` para los parámetros
](#cliv2-migration-paramfile)
+ [

### Paginador usado para toda la salida de forma predeterminada
](#cliv2-migration-output-pager)
+ [

### Los valores de salida de la marca de tiempo están estandarizados según el formato ISO 8601
](#cliv2-migration-timestamp)
+ [

### Control mejorado de las implementaciones de CloudFormation que no producen cambios
](#cliv2-migration-cfn)
+ [

### Se ha cambiado el comportamiento predeterminado del punto de conexión regional de Amazon S3 para la región `us-east-1`
](#cliv2-migration-s3-regional-endpoint)
+ [

### Se ha cambiado el comportamiento predeterminado de los puntos de conexión de AWS STS regionales
](#cliv2-migration-sts-regional-endpoint)
+ [

### Se ha eliminado `ecr get-login` y se ha reemplazado por `ecr get-login-password`
](#cliv2-migration-ecr-get-login)
+ [

### AWS CLIEl soporte de la versión 2 de la para complementos está cambiando
](#cliv2-migration-profile-plugins)
+ [

### Se ha eliminado la compatibilidad con los alias ocultos
](#cliv2-migration-aliases)
+ [

### No se admite la opción `api_versions` del archivo de configuración
](#cliv2-migration-api-versions)
+ [

### La AWS CLI versión 2 solo usa Signature v4 para autenticar las solicitudes de Amazon S3
](#cliv2-migration-sigv4)
+ [

### La AWS CLI versión 2 es más coherente con los parámetros de paginación
](#cliv2-migration-skeleton-paging)
+ [

### La AWS CLI versión 2 proporciona códigos de retorno más coherentes en todos los comandos
](#cliv2-migration-return-codes)

### Se ha agregado una variable de entorno para establecer la codificación de los archivos de texto
<a name="cliv2-migration-encodingenvvar"></a>

 De forma predeterminada, los archivos de texto de [Blob](cli-usage-parameters-types.md#parameter-type-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  [Configuración de variables de entorno para la AWS CLI](cli-configure-envvars.md) .

### Los parámetros binarios se pasan como cadenas codificadas en base64 de forma predeterminada
<a name="cliv2-migration-binaryparam"></a>

En la AWS CLI, algunos comandos requerían cadenas codificadas en [base64](https://wikipedia.org/wiki/Base64), mientras que otros requerían cadenas de bytes codificadas en UTF-8. En la AWS CLI versión 1, el paso de datos entre dos tipos de cadenas codificadas requería a menudo algún procesamiento intermedio. La AWS CLI versión 2 aumenta la coherencia de la gestión de los parámetros binarios, lo que ayuda a pasar los valores de un comando a otro de forma más fiable. 

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](cli-usage-parameters-types.md#parameter-type-blob).

Para volver al comportamiento de la AWS CLI versión 1, utilice el archivo de configuración `cli\$1binary\$1format` 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
<a name="cliv2-migration-s3-copy-metadata"></a>

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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CopyingObjctsMPUapi.html), 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](cli-services-s3-commands.md#using-s3-commands-before-tags).

### No hay recuperación automática de las URL `http://` o `https://` para los parámetros
<a name="cliv2-migration-paramfile"></a>

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
<a name="cliv2-migration-output-pager"></a>

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 [https://ss64.com/bash/less.html](https://ss64.com/bash/less.html) en Linux o macOS, y el programa [https://docs.microsoft.com/windows-server/administration/windows-commands/more](https://docs.microsoft.com/windows-server/administration/windows-commands/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 usar un programa de paginación diferente o ninguno en absoluto. Para obtener más información, consulte [Paginación del lado del cliente](cli-usage-pagination.md#cli-usage-pagination-clientside).

### Los valores de salida de la marca de tiempo están estandarizados según el formato ISO 8601
<a name="cliv2-migration-timestamp"></a>

De forma predeterminada, la AWS CLI versión 2 devuelve todos los valores de respuesta de marca temporal en [formato ISO 8601](https://wikipedia.org/wiki/ISO_8601). En la versión 1 de la AWS CLI, los comandos devolvían valores de marca temporal en el formato en el que estuviera la respuesta de la API HTTP, que podía ser diferente en cada servicio. 

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\$1timestamp\$1format`.

### Control mejorado de las implementaciones de CloudFormation que no producen cambios
<a name="cliv2-migration-cfn"></a>

De forma predeterminada, en la AWS CLI versión 1, si implementa una plantilla de 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`
<a name="cliv2-migration-s3-regional-endpoint"></a>

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
<a name="cliv2-migration-sts-regional-endpoint"></a>

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 versión antes de `1.42.0` para la versión 1 de AWS CLI envía las solicitudes de AWS STS al punto de conexión de AWS STS global. Puede controlar este comportamiento predeterminado en la versión 1 con la configuración [https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-files.html#cli-config-sts_regional_endpoints](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-files.html#cli-config-sts_regional_endpoints). 

Todas las versiones posteriores a `1.42.0` utilizan el punto de conexión regional como predeterminado. Si se migra a la versión 2 de AWS CLI desde estas versiones más recientes, este comportamiento permanece inalterado.

### Se ha eliminado `ecr get-login` y se ha reemplazado por `ecr get-login-password`
<a name="cliv2-migration-ecr-get-login"></a>

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 [https://docs.aws.amazon.com/cli/latest/reference/ecr/get-login-password.html](https://docs.aws.amazon.com/cli/latest/reference/ecr/get-login-password.html) en la *Guía de referencia de la AWS CLI versión 2*.

### AWS CLIEl soporte de la versión 2 de la para complementos está cambiando
<a name="cliv2-migration-profile-plugins"></a>

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
<a name="cliv2-migration-aliases"></a>

AWS CLILa versión 2 de la 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
<a name="cliv2-migration-api-versions"></a>

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
<a name="cliv2-migration-sigv4"></a>

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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/reference_aws-signing.html). 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
<a name="cliv2-migration-skeleton-paging"></a>

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
<a name="cliv2-migration-return-codes"></a>

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 retorno de la línea de comandos en la AWS CLI](cli-usage-returncodes.md).

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. 

# Instalación de la versión 2 de la AWS CLI a partir de la versión 1 de la AWS CLI
<a name="cliv2-migration-instructions"></a>

En este tema se ofrecen instrucciones para migrar desde la AWS CLI versión 1 a la AWS CLI versión 2.

Las versiones 1 y 2 de la AWS CLI utilizan el mismo nombre de comando de `aws`. Si tiene ambas versiones instaladas, el equipo utiliza la primera que encuentra en la ruta de búsqueda. Si ha instalado la versión 1 de la AWS CLI anteriormente, le recomendamos que realice una de las siguientes acciones para usar la versión 2 de la AWS CLI:
+ **Recomendado**: [desinstale la AWS CLI versión 1 y use solo la AWS CLI versión 2](#cliv2-migration-instructions-migrate).
+ [Para tener ambas versiones instaladas](#cliv2-migration-instructions-side-by-side), utilice la capacidad de su sistema operativo para crear un enlace simbólico (symlink) o un alias con otro nombre para uno de los dos comandos `aws`.

Para obtener información sobre los cambios notorios entre la versión 1 y la versión 2, consulte [Nuevas características y cambios en la versión 2 de la AWS CLI](cliv2-migration-changes.md).

## Reemplazo de la versión 1 por la versión 2
<a name="cliv2-migration-instructions-migrate"></a>

Siga estos pasos para reemplazar la AWS CLI versión 1 por la AWS CLI versión 2. 

**Para reemplazar la AWS CLI versión 1 por la AWS CLI versión 2**

1. Prepare los scripts existentes que tenga para la migración mediante la confirmación de confirmando los cambios importantes entre la versión 1 y la versión 2 en [Nuevas características y cambios en la versión 2 de la AWS CLI](cliv2-migration-changes.md). Puede utilizar la característica del modo de depuración de actualizaciones como guía en su preparación siguiendo las instrucciones que se indican en [Uso del modo de depuración de actualizaciones para actualizar la versión 1 de AWS CLI a la versión 2 de AWS CLI](cli-upgrade-debug-mode.md).

1. Desinstale la AWS CLI versión 1 siguiendo las instrucciones de desinstalación correspondientes a su sistema operativo en [Instalación, actualización y desinstalación de la AWS CLI versión 1](https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-install.html).

1. Confirme que la AWS CLI se ha desinstalado completamente mediante el siguiente comando.

   ```
   $ aws --version
   ```

   Complete uno de los siguientes procesos en función del resultado:
   + **No se ha devuelto ninguna versión:** ha desinstalado correctamente la AWS CLI versión 1 y continúe con el siguiente paso.
   + **Se ha devuelto una versión:** aún tiene una instalación de la AWS CLI versión 1. Para ver los pasos de solución de problemas, consulte [El comando "`aws --version`" devuelve una versión después de desinstalar la AWS CLI](cli-chap-troubleshooting.md#tshoot-uninstall-1). Realice los pasos de resolución de problemas hasta que no se reciba ninguna salida de versión.

1. Instale la AWS CLI versión 2 siguiendo las instrucciones de instalación adecuadas para su sistema operativo en [Instalación o actualización de la versión más reciente de AWS CLI](getting-started-install.md).

## Instalación en paralelo
<a name="cliv2-migration-instructions-side-by-side"></a>

Para tener ambas versiones instaladas, utilice la capacidad de su sistema operativo para crear un enlace simbólico (symlink) o un alias con otro nombre para uno de los dos comandos `aws`. 

1. Instale la AWS CLI versión 2 siguiendo las instrucciones de instalación adecuadas para su sistema operativo en [Instalación o actualización de la versión más reciente de AWS CLI](getting-started-install.md).

1. Utilice la capacidad de su sistema operativo para crear un enlace simbólico (symlink) o un alias con otro nombre para uno de los dos comandos `aws`, por ejemplo, use *`aws2`* para la AWS CLI versión 2. A continuación, se muestran ejemplos de enlaces simbólicos para la AWS CLI versión 2. Reemplace el valor de *PATH* por su ubicación de instalación.

------
#### [ Linux and macOS ]

   Puede usar un [enlace simbólico](https://www.linux.com/topic/desktop/understanding-linux-links/) o un [alias](https://www.linux.com/topic/desktop/aliases-diy-shell-commands/) en Linux y macOS.

   ```
   $ alias aws2='PATH'
   ```

------
#### [ Windows command prompt ]

   [https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/doskey](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/doskey) en Windows.

   ```
   C:\> doskey aws2=PATH
   ```

------

# Uso del modo de depuración de actualizaciones para actualizar la versión 1 de AWS CLI a la versión 2 de AWS CLI
<a name="cli-upgrade-debug-mode"></a>

En este tema, se describe el modo de depuración de actualizaciones en la versión 1 de la AWS CLI.

Recomendamos a los usuarios de la versión 1 de AWS CLI que actualicen a la versión 2 de AWS CLI para acceder a las nuevas características y al rendimiento mejorado. Hay cambios de comportamiento entre la versión 1 de AWS CLI y la versión 2 de AWS CLI que pueden requerir que actualice los scripts o comandos para conseguir el mismo comportamiento. El modo de depuración de actualizaciones de la versión 1 de AWS CLI genera advertencias cuando se utilizan características que tienen un comportamiento diferente en la versión 2 de AWS CLI. Esta característica mejora la experiencia de actualización al detectar automáticamente cuáles de los comandos de la versión 1 de AWS CLI deben modificarse antes de actualizar a la versión 2 de AWS CLI para evitar problemas inesperados.

Para obtener más información, consulte [Cambios importantes entre la AWS CLI versión 1 y la AWS CLI versión 2](cliv2-migration-changes.md#cliv2-migration-changes-breaking) en [Nuevas características y cambios en la versión 2 de la AWS CLI](cliv2-migration-changes.md).

## Requisitos previos
<a name="upgrade-mode-prerequisites"></a>

La característica del modo de depuración de actualizaciones se ingresó en la AWS CLI en la versión `1.44.0`.

Con la versión 1 de la AWS CLI, ejecute `aws --version` y compruebe que la versión de la AWS CLI sea `1.44.0` o superior.

Si la versión es inferior a `1.44.0`, consulte [Instalación, actualización y desinstalación de la AWS CLI](https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-install.html).

## Funcionamiento
<a name="upgrade-mode-how-it-works"></a>

Si está habilitado, el modo de depuración de actualizaciones detecta el uso de características que se actualizaron con cambios importantes en la versión 2 de AWS CLI. Si utiliza uno de los comandos o características mostrados en nuestro [Cambios importantes entre la AWS CLI versión 1 y la AWS CLI versión 2](cliv2-migration-changes.md#cliv2-migration-changes-breaking) después de actualizar a la versión 2 de AWS CLI, aparecerá una advertencia en el resultado. La detección de cambios importantes se basa en el comando utilizado, los argumentos proporcionados, el entorno de ejecución (por ejemplo, las variables de entorno, los ajustes de configuración, etc.) y, en algunos casos, el contenido o la configuración de los recursos de la cuenta de AWS que se está utilizando.

Las advertencias describen acciones para evitar problemas inesperados al actualizar a la versión 2 de la AWS CLI. Tras realizar los cambios recomendados en un mensaje de advertencia, puede confirmar que el comando se ha actualizado correctamente volviendo a ejecutar el comando para comprobar que la advertencia ya no aparece. La resolución de las advertencias indica que ya no es probable que el comando experimente el cambio importante descrito al actualizar a la versión 2 de la AWS CLI.

En el siguiente ejemplo, se muestra el aspecto de estas advertencias. Este comando muestra un ejemplo de advertencia. Todo el texto de advertencia comienza con “AWS CLI V2 UPGRADE WARNING”, seguido del mensaje de advertencia específico. En este caso, se muestra una advertencia porque el comando se basa en la AWS CLI para recuperar el contenido de la URL y usarlo como valor del parámetro `--template-body`, una característica eliminada en la versión 2 de la AWS CLI.

```
$ aws cloudformation create-stack \
  --stack-name "stack012345" \
  --template-body "https://s3.amazonaws.com/amzn-s3-demo-bucket/template.json"

AWS CLI v2 UPGRADE WARNING: For input parameters that have a prefix of http:// or 
https://, AWS CLI v2 will not automatically request the content of the URL for 
the parameter, and the `cli_follow_urlparam` option has been removed. See 
https://docs.aws.amazon.com/cli/latest/userguide/cliv2-migration-changes.html#cliv2-migration-paramfile.
```

La siguiente tabla muestra todos los cambios importantes y cómo evitar enfrentarse a un cambio importante en la versión 2 de AWS CLI. Las acciones correctivas que resuelven las advertencias en el modo de depuración aparecen en negrita. 


| Cambios importantes | En la versión 1, migre al comportamiento de la versión 2 | En la versión 2, retenga el comportamiento de la versión 1 | 
| --- | --- | --- | 
| [Se ha agregado una variable de entorno para establecer la codificación de los archivos de texto](cliv2-migration-changes.md#cliv2-migration-encodingenvvar) | Desactive las variables de entorno PYTHONUTF8 y PYTHONIOENCODING. | Establezca la variable de entorno AWS\$1CLI\$1FILE\$1ENCODING con la codificación especificada en la versión 1. | 
| [Los parámetros binarios se pasan como cadenas codificadas en base64 de forma predeterminada](cliv2-migration-changes.md#cliv2-migration-binaryparam) | Codifique el valor del parámetro con base64. Si el parámetro se carga desde un archivo, codifique el contenido del archivo con base64. | Ajuste la configuración cli\$1binary\$1format en raw-in-base64-out. | 
| [Mejora de la gestión de Amazon S3 de las propiedades y etiquetas de los archivos para las copias multiparte](cliv2-migration-changes.md#cliv2-migration-s3-copy-metadata) | N/A. No se puede migrar al comportamiento de la versión 2 en la versión 1. | Utilice el parámetro --copy-props none. | 
| [No hay recuperación automática de las URL `http://` o `https://` para los parámetros](cliv2-migration-changes.md#cliv2-migration-paramfile) | Utilice curl (o herramientas alternativas) para descargar el contenido de las direcciones URL a un archivo local. A continuación, cargue el contenido del archivo en el parámetro con [file://](https://docs.aws.amazon.com/cli/v1/userguide/cli-usage-parameters-file.html). Como opción alternativa, configure cli\$1follow\$1urlparam en falso para especificar la URL sin procesar como valor del parámetro. | N/A. Imposible retener el comportamiento de la versión 1 en la versión 2. | 
| [Paginador usado para toda la salida de forma predeterminada](cliv2-migration-changes.md#cliv2-migration-output-pager) | N/A. No se puede migrar al comportamiento de la versión 2 en la versión 1. | Establezca la configuración cli\$1pager o la variable AWS\$1PAGER en una cadena vacía. | 
| [Los valores de salida de la marca de tiempo están estandarizados según el formato ISO 8601](cliv2-migration-changes.md#cliv2-migration-timestamp) | Establezca la configuración de cli\$1timestamp\$1format en iso8601. | Establezca la configuración de cli\$1timestamp\$1format para conectar. | 
| [Control mejorado de las implementaciones de CloudFormation que no producen cambios](cliv2-migration-changes.md#cliv2-migration-cfn) | Use el parámetro --no-fail-on-empty-changeset. | Utilice el parámetro --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`](cliv2-migration-changes.md#cliv2-migration-s3-regional-endpoint) | Defina la variable de entorno AWS\$1ENDPOINT\$1URL\$1S3 o la opción de línea de comandos --endpoint-url en la [URL regional](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_region) us-east-1. | Use la opción de línea de comandos --region aws-global. | 
| [Se ha eliminado `ecr get-login` y se ha reemplazado por `ecr get-login-password`](cliv2-migration-changes.md#cliv2-migration-ecr-get-login) | (1.17.10 o posterior) Use [Se ha eliminado `ecr get-login` y se ha reemplazado por `ecr get-login-password`](cliv2-migration-changes.md#cliv2-migration-ecr-get-login) y canalice el resultado a un comando de docker. | N/A. Imposible retener el comportamiento de la versión 1 en la versión 2. | 
| [AWS CLIEl soporte de la versión 2 de la para complementos está cambiando](cliv2-migration-changes.md#cliv2-migration-profile-plugins) | N/A. No se puede migrar al comportamiento de la versión 2 en la versión 1. | Configure [cli\$1legacy\$1plugin\$1path](https://docs.aws.amazon.com/cli/latest/topic/config-vars.html#plugins) en la sección del archivo de configuración [plugins]. Pruebe los complementos en la versión 2, bloquee la versión 2 y pruebe los complementos cada vez que actualice. | 
| [Se ha eliminado la compatibilidad con los alias ocultos](cliv2-migration-changes.md#cliv2-migration-aliases) | Pase de usar el alias oculto obsoleto a [Se ha eliminado la compatibilidad con los alias ocultos](cliv2-migration-changes.md#cliv2-migration-aliases) que funciona en todas las versiones. | N/A. Imposible retener el comportamiento de la versión 1 en la versión 2. | 
| [No se admite la opción `api_versions` del archivo de configuración](cliv2-migration-changes.md#cliv2-migration-api-versions) | Migre y pruebe el uso de las versiones anteriores de la API a la última versión de la API y elimine [api\$1versions](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-files.html#cli-config-api_versions) de los ajustes de configuración. | N/A. Imposible retener el comportamiento de la versión 1 en la versión 2. | 
| [La AWS CLI versión 2 solo usa Signature v4 para autenticar las solicitudes de Amazon S3](cliv2-migration-changes.md#cliv2-migration-sigv4) | Especifique Signature Version en la versión 4 (consulte [Especificación de Signature Version al solicitar la autenticación)](https://docs.aws.amazon.com/AmazonS3/latest/API/specify-signature-version.html). | N/A. Imposible retener el comportamiento de la versión 1 en la versión 2. | 
| [La AWS CLI versión 2 es más coherente con los parámetros de paginación](cliv2-migration-changes.md#cliv2-migration-skeleton-paging) | Mueva los parámetros de paginación del parámetro JSON de entrada al propio comando. | Elimine los parámetros de paginación del parámetro JSON de entrada. | 
| [La AWS CLI versión 2 proporciona códigos de retorno más coherentes en todos los comandos](cliv2-migration-changes.md#cliv2-migration-return-codes) | N/A. No se puede migrar al comportamiento de la versión 2 en la versión 1. | N/A. Imposible retener el comportamiento de la versión 1 en la versión 2. | 

## Limitaciones
<a name="upgrade-mode-limitations"></a>

Recomendamos encarecidamente a los clientes que revisen nuestro [Cambios importantes entre la AWS CLI versión 1 y la AWS CLI versión 2](cliv2-migration-changes.md#cliv2-migration-changes-breaking).

### Detección de cambios importantes no compatible
<a name="upgrade-mode-limitations-unsupported-changes"></a>

La característica del modo de depuración de actualizaciones admite todos los cambios importantes excepto ese [La AWS CLI versión 2 proporciona códigos de retorno más coherentes en todos los comandos](cliv2-migration-changes.md#cliv2-migration-return-codes). Este modo no puede explicar cómo se utilizan los códigos de error devueltos por la AWS CLI posterior.

### Detección condicional de cambios importantes
<a name="upgrade-mode-limitations-condiditional-changes"></a>

La detección de [Los valores de salida de la marca de tiempo están estandarizados según el formato ISO 8601](cliv2-migration-changes.md#cliv2-migration-timestamp) es el único caso en el que la detección depende del estado de la cuenta de AWS y puede estar sujeta a cambios importantes si los recursos de la cuenta se actualizan más adelante. Si no se incluye ninguna marca temporal en la respuesta de la API del servicio, no se detectará este cambio importante.

Si confía en el formato de marca temporal devuelto por los comandos de la AWS CLI y aún no ha configurado la AWS CLI para que utilice la norma ISO 8601, tome precauciones adicionales para asegurarse de que el procesamiento de la marca temporal no se interrumpa después de actualizar a la versión 2.

### Detección de cambios importantes irresolubles
<a name="upgrade-mode-limitations-unresolvable-changes"></a>

Algunas advertencias generadas por el modo de depuración de actualizaciones no se pueden resolver modificando el comando o el entorno. En los siguientes casos, siempre se emitirán advertencias del modo de depuración de actualizaciones, siempre que se utilice la característica correspondiente:
+ [AWS CLIEl soporte de la versión 2 de la para complementos está cambiando](cliv2-migration-changes.md#cliv2-migration-profile-plugins): si confía en complementos en el [archivo de configuración](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-files.html), el modo de depuración de la actualización siempre generará una advertencia que no se podrá resolver. Este modo no puede garantizar que alguno de los complementos funcione en la versión 2 de AWS CLI.
+ [Mejora de la gestión de Amazon S3 de las propiedades y etiquetas de los archivos para las copias multiparte](cliv2-migration-changes.md#cliv2-migration-s3-copy-metadata): si `aws s3` se utiliza para realizar una copia de Amazon S3 de bucket a bucket, el modo de depuración de actualizaciones siempre generará una advertencia que no se puede resolver.

### Detecciones falsas
<a name="upgrade-mode-limitations-false-detections"></a>

Las advertencias emitidas por el modo de depuración de la actualización no garantizan que se produzcan cambios importantes tras la actualización a AWS CLI v2. A continuación, se muestran los casos en los que se generarían advertencias al actualizar el modo de depuración, a pesar de que no se haya ingresado ningún cambio importante en la AWS CLI v2:
+ [Se ha agregado una variable de entorno para establecer la codificación de los archivos de texto](cliv2-migration-changes.md#cliv2-migration-encodingenvvar): si se especifican las variables de entorno `PYTHONUTF8` y `PYTHONIOENCODING` para configurar la codificación del archivo de texto y la codificación especificada ya coincide con la configuración local instalada, la advertencia podría ser una detección falsa, ya que el modo de depuración no comprueba si la codificación coincide con la configuración local instalada.
+ [Mejora de la gestión de Amazon S3 de las propiedades y etiquetas de los archivos para las copias multiparte](cliv2-migration-changes.md#cliv2-migration-s3-copy-metadata): si `aws s3` se utiliza para realizar una copia de Amazon S3 de bucket a bucket y la copia no es multiparte debido a que el objeto de origen está por debajo del [tamaño del umbral multiparte](https://docs.aws.amazon.com/cli/latest/topic/s3-config.html#multipart-threshold), se generará una falsa detección.
+ [Los valores de salida de la marca de tiempo están estandarizados según el formato ISO 8601](cliv2-migration-changes.md#cliv2-migration-timestamp): si el ajuste de configuración cli\$1timestamp\$1format está establecido en conectar (predeterminado) y el servicio devuelve una marca temporal en formato ISO 8601.
+ [Control mejorado de las implementaciones de CloudFormation que no producen cambios](cliv2-migration-changes.md#cliv2-migration-cfn): si el indicador `--fail-on-empty-changeset` se utiliza con el comando `aws cloudformation deploy` y el conjunto de cambios resultante está vacío, se mostrará una detección falsa. Además, si el conjunto de cambios no está vacío y no se utiliza `--no-fail-on-empty-changeset`, se mostrará una detección falsa.
+ [Se ha cambiado el comportamiento predeterminado del punto de conexión regional de Amazon S3 para la región `us-east-1`](cliv2-migration-changes.md#cliv2-migration-s3-regional-endpoint): si se utiliza `aws s3` o `aws s3api` para realizar una operación de Amazon S3, y la región está configurada en `us-east-1`, la configuración de `s3.us_east_1_regional_endpoint` no está configurada como regional y el punto de conexión global de Amazon S3 se utiliza para la solicitud debido a los ajustes de [configuración de punto de conexión](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-endpoints.html#endpoints-precedence), la advertencia podría ser una detección falsa, ya que el modo de depuración no comprueba los ajustes de punto de conexión configurados.

## Configuración del modo de depuración de actualizaciones
<a name="upgrade-mode-configure"></a>

Puede habilitar o desactivar el modo de depuración de actualizaciones mediante los siguientes métodos, mostrados según el orden de prioridad:
+ Las opciones de línea de comandos habilitan o desactivan el modo de depuración de actualizaciones para un solo comando. Utilice [--v2-debug](https://docs.aws.amazon.com/cli//latest/userguide/cli-configure-options.html#cli-configure-options-v2-debug) para utilizar el modo de depuración de actualizaciones.
+ Las variables de entorno usan la variable [AWS\$1CLI\$1UPGRADE\$1DEBUG\$1MODE](https://docs.aws.amazon.com/cli//latest/userguide/cli-configure-envvars.html#envvars-list-aws_cli_upgrade_debug_mode).

# Uso de la herramienta de migración de la AWS CLI v1-to-v2 para actualizar la versión 1 de la AWS CLI a la versión 2 de la AWS CLI
<a name="cli-migration-tool"></a>

En este tema se describe la herramienta de migración de la AWS CLI v1-to-v2.

Recomendamos a los usuarios de la versión 1 de AWS CLI que actualicen a la versión 2 de AWS CLI para acceder a las nuevas características y al rendimiento mejorado. Hay cambios de comportamiento entre la versión 1 de AWS CLI y la versión 2 de AWS CLI que pueden requerir que actualice los scripts o comandos para conseguir el mismo comportamiento. La herramienta de migración de la AWS CLI v1-to-v2 analiza los scripts bash que contienen comandos de la versión 1 de la AWS CLI y detecta el uso de funciones que se han actualizado con cambios importantes en la versión 2 de la AWS CLI. Además, la herramienta puede modificar automáticamente los scripts para corregir la mayoría de los problemas que detecte. Esta herramienta mejora la experiencia de actualización al detectar y modificar automáticamente los comandos de la versión 1 de la AWS CLI en scripts bash para evitar problemas inesperados al actualizar a la versión 2.

En comparación con el modo de depuración de actualizaciones, la herramienta de migración de la AWS CLI v1-to-v2 es una herramienta independiente y no requiere la ejecución de comandos de la AWS CLI. Para obtener una comparación exhaustiva entre el modo de depuración de actualizaciones y la herramienta de migración de la AWS CLI v1-to-v2, consulte [Uso de herramientas de migración de la AWS CLI para mitigar las interrupciones](cliv2-migration.md#using-migration-tools) en [Guía de migración para la versión 2 de la AWS CLI](cliv2-migration.md).

Para obtener más información, consulte [Cambios importantes entre la AWS CLI versión 1 y la AWS CLI versión 2](cliv2-migration-changes.md#cliv2-migration-changes-breaking) en [Nuevas características y cambios en la versión 2 de la AWS CLI](cliv2-migration-changes.md).

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

La herramienta de migración de la AWS CLI v1-to-v2 es un paquete de Python capaz de linting scripts bash que utilizan la versión 1 de la AWS CLI. Al ser un linter estático, no depende de la versión 1 de la AWS CLI que haya instalado en la máquina. El linter se invoca a través de la línea de comandos, donde se proporciona como parámetro la ruta del archivo local al script bash.

La herramienta de migración también puede producir automáticamente un script bash modificado que resuelve la mayoría de los resultados que detecta modificando los comandos de la versión 1 de la AWS CLI utilizados en el script. La herramienta de migración modifica los comandos para que sean compatibles con la versión 2 de AWS y retiene el comportamiento de la versión 1.

Para algunos resultados, la herramienta de migración de la AWS CLI v1-to-v2 puede detectarlos pero no ofrecer una solución automática. En estos casos, la herramienta de migración las marca como detecciones que requieren una revisión manual.

Consulte [Limitaciones](#migration-tool-limitations) para obtener una lista exhaustiva de los cambios importantes y las correcciones automáticas que admite la herramienta de migración de la AWS CLI v1-to-v2.

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

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

Para usar esta herramienta, debe tener instalado Python 3.9 o una versión posterior.

Para comprobar que tiene instalada una versión correcta de Python, ejecute el siguiente comando en un terminal y confirme que el resultado muestra una versión de Python de al menos 3.9.

```
$ python3 --version
```

Si tiene una versión anterior de Python o no tiene Python instalado, puede descargar una versión compatible desde la [página oficial de descargas de Python](https://www.python.org/downloads/).

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

Además de tener instalada una versión compatible de Python, debe tener instalado `pip`.

Para comprobar que `pip` se ha instalado, ejecute el siguiente comando:

```
$ python3 -m pip --version
```

Si ha instalado `pip`, se mostrará un resultado similar al que se incluye a continuación:

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

Si no ha instalado `pip`, consulte [Instalar pip](https://docs.aws.amazon.com/cli/v1/userguide/install-linux.html#install-linux-pip-pip).

## Instalación
<a name="migration-tool-installation"></a>

Instale la herramienta de migración de la AWS CLI v1-to-v2 en un nuevo entorno virtual:

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

## Uso
<a name="migration-tool-usage"></a>

### Modo de prueba (predeterminado)
<a name="migration-tool-usage-dryrun"></a>

Con el modo de prueba, puede detectar automáticamente los comandos de la versión 1 de la AWS CLI que están sujetos a cambios importantes sin modificar el script de entrada:

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

### Modo de reparación automática
<a name="migration-tool-usage-autofix"></a>

Con el modo de reparación automática, puede detectar y actualizar automáticamente los comandos de la versión 1 de la AWS CLI en el script de entrada para mitigar las interrupciones causadas por los cambios ingresados en la versión 2 de la AWS CLI, siempre que sea posible:

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

si lo desea, puede proporcionar una ruta de salida mediante el parámetro `--output` para escribir el script actualizado, en lugar de actualizar el script de entrada:

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

### modo interactivo
<a name="migration-tool-usage-interactive"></a>

Con el modo interactivo, puede detectar automáticamente los comandos de la versión 1 de la AWS CLI que están sujetos a cambios importantes. La mayoría de los resultados mostrarán una solución sugerida para mitigar las interrupciones en la versión 2 de la AWS CLI. Puede revisar las correcciones sugeridas y decidir si las aplica. Si lo desea, proporcione una ruta de salida mediante el parámetro `--output` para controlar dónde escribir el script actualizado:

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

el siguiente fragmento de código resultante es un resultado de ejemplo en modo interactivo:

```
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:
```

la solución sugerida se muestra en un formato similar a un diff de Git. La herramienta de migración sugiere eliminar las líneas que comiencen con un `-` y sugiere agregar líneas que comiencen con un `+`. En el ejemplo anterior, la sugerencia puede interpretarse como la adición del parámetro `--copy-props none` al comando de la versión 1 de la AWS CLI que ejecuta una copia de Amazon S3.

Para cada corrección sugerida, puede ingresar cualquiera de los siguientes controles:
+ Ingrese `y` para aceptar la corrección sugerida.
+ Ingrese `n` para rechazar la corrección actual.
+ Ingrese `a` para aceptar todas las correcciones del mismo tipo.
+ Ingrese `r` para rechazar todas las correcciones del mismo tipo.
+ Ingrese `u` para aceptar todas las correcciones restantes.
+ Ingrese `s` para guardar y salir.
+ Ingrese `q` para salir sin guardar.

Es posible que algunos resultados estén marcados para su revisión manual sin que se sugiera una solución. Debe revisar estos resultados y comprobar si los cambios importantes a los que se hace referencia lo afectan. Si estos resultados lo afectan, debe seguir las instrucciones especificadas en la descripción del resultado para realizar los cambios necesarios a fin de evitar o prepararse para los cambios importantes ingresados en la versión 2 de la AWS CLI.

## Limitaciones
<a name="migration-tool-limitations"></a>

La herramienta de migración de la AWS CLI v1-to-v2 no admite actualmente todos los cambios importantes ingresados en la versión 2 de la AWS CLI y tiene casos de falsos positivos en los que genera detecciones de comandos incluso si no se produjeran cambios importantes.

Recomendamos encarecidamente a los clientes que entiendan [Cambios importantes entre la AWS CLI versión 1 y la AWS CLI versión 2](cliv2-migration-changes.md#cliv2-migration-changes-breaking) publicado en [Nuevas características y cambios en la versión 2 de la AWS CLI](cliv2-migration-changes.md).

### Análisis basado en texto
<a name="migration-tool-limitations-static-linter"></a>

La herramienta de migración analiza el script sin ejecutarlo. Esto limita la forma en que detecta los comandos de la AWS CLI para los cambios importantes. La herramienta de migración solo puede examinar el texto de un comando de la AWS CLI. No puede detectar los problemas que surgen en tiempo de ejecución, como almacenar parámetros obsoletos en una variable en lugar de pasarlos directamente a la AWS CLI.

### Detección de cambios importantes no compatible
<a name="migration-tool-limitations-unsupported-changes"></a>

El grado de compatibilidad con los cambios importantes en la herramienta de migración se resume en la siguiente tabla.


| Cambios importantes | Detección admitida | Compatible con la reparación automática | 
| --- | --- | --- | 
| [Se ha agregado una variable de entorno para establecer la codificación de los archivos de texto](cliv2-migration-changes.md#cliv2-migration-encodingenvvar) | No | No | 
| [Los parámetros binarios se pasan como cadenas codificadas en base64 de forma predeterminada](cliv2-migration-changes.md#cliv2-migration-binaryparam) | Sí | Sí | 
| [Mejora de la gestión de Amazon S3 de las propiedades y etiquetas de los archivos para las copias multiparte](cliv2-migration-changes.md#cliv2-migration-s3-copy-metadata) | Sí | Sí | 
| [No hay recuperación automática de las URL `http://` o `https://` para los parámetros](cliv2-migration-changes.md#cliv2-migration-paramfile) | No | No | 
| [Paginador usado para toda la salida de forma predeterminada](cliv2-migration-changes.md#cliv2-migration-output-pager) | Sí | Sí | 
| [Los valores de salida de la marca de tiempo están estandarizados según el formato ISO 8601](cliv2-migration-changes.md#cliv2-migration-timestamp) | No | No | 
| [Control mejorado de las implementaciones de CloudFormation que no producen cambios](cliv2-migration-changes.md#cliv2-migration-cfn) | Sí | Sí | 
| [Se ha cambiado el comportamiento predeterminado del punto de conexión regional de Amazon S3 para la región `us-east-1`](cliv2-migration-changes.md#cliv2-migration-s3-regional-endpoint) | No | No | 
| [Se ha cambiado el comportamiento predeterminado de los puntos de conexión de AWS STS regionales](cliv2-migration-changes.md#cliv2-migration-sts-regional-endpoint) | No | No | 
| [Se ha eliminado `ecr get-login` y se ha reemplazado por `ecr get-login-password`](cliv2-migration-changes.md#cliv2-migration-ecr-get-login) | Sí | No | 
| [AWS CLIEl soporte de la versión 2 de la para complementos está cambiando](cliv2-migration-changes.md#cliv2-migration-profile-plugins) | No | No | 
| [Se ha eliminado la compatibilidad con los alias ocultos](cliv2-migration-changes.md#cliv2-migration-aliases) | Sí | Sí | 
| [No se admite la opción `api_versions` del archivo de configuración](cliv2-migration-changes.md#cliv2-migration-api-versions) | No | No | 
| [La AWS CLI versión 2 solo usa Signature v4 para autenticar las solicitudes de Amazon S3](cliv2-migration-changes.md#cliv2-migration-sigv4) | No | No | 
| [La AWS CLI versión 2 es más coherente con los parámetros de paginación](cliv2-migration-changes.md#cliv2-migration-skeleton-paging) | Sí | No | 
| [La AWS CLI versión 2 proporciona códigos de retorno más coherentes en todos los comandos](cliv2-migration-changes.md#cliv2-migration-return-codes) | No | No | 