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
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, consulta Cambios importantes entre la AWS CLI versión 1 y la AWS CLI versión 2.
Al actualizar de la versión 1 a la versión 2 de AWS CLI, es posible que Cambios importantes entre la AWS CLI versión 1 y la AWS CLI versión 2 afecte a los scripts y flujos de trabajo existentes. El modo de depuración de actualizaciones lo ayuda a identificar estos problemas antes de completar la migración.
El modo de depuración de actualizaciones detecta cuándo se utilizan características que tienen cambios importantes en la versión 2 de AWS CLI. Cuando ejecuta un comando que se interrumpe tras la actualización, el modo muestra una advertencia con los pasos específicos para solucionar el problema. Esto ahorra tiempo al encontrar automáticamente los posibles problemas en lugar de buscar manualmente en el código.
Funcionamiento
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 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.
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.
En el siguiente ejemplo se muestra el aspecto de una advertencia:
$ 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 | Desactive las variables de entorno PYTHONUTF8 y PYTHONIOENCODING. |
Establezca la variable de entorno AWS_CLI_FILE_ENCODING con la codificación especificada en la versión 1. |
| Los parámetros binarios se pasan como cadenas codificadas en base64 de forma predeterminada | 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_binary_format 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 | 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 | 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://. Como opción alternativa, configure cli_follow_urlparam 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 | N/A. No se puede migrar al comportamiento de la versión 2 en la versión 1. | Establezca la configuración cli_pager o la variable AWS_PAGER en una cadena vacía. |
| Los valores de salida de la marca de tiempo están estandarizados según el formato ISO 8601 | Establezca la configuración de cli_timestamp_format en iso8601. |
Establezca la configuración de cli_timestamp_format para conectar. |
| Control mejorado de las implementaciones de CloudFormation que no producen cambios | 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 | Defina la variable de entorno AWS_ENDPOINT_URL_S3 o la opción de línea de comandos --endpoint-url en la URL regional 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 | (1.17.10 o posterior) Use Se ha eliminado ecr get-login y se ha reemplazado por ecr get-login-password 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 | N/A. No se puede migrar al comportamiento de la versión 2 en la versión 1. | Configure cli_legacy_plugin_path 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 | Pase de usar el alias oculto obsoleto a Se ha eliminado la compatibilidad con los alias ocultos 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 | Migre y pruebe el uso de las versiones anteriores de la API a la última versión de la API y elimine 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 | Especifique Signature Version en la versión 4 (consulte Especificación de Signature Version al solicitar la autenticación). | 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 | 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 | 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
Recomendamos encarecidamente a los clientes que revisen nuestro Cambios importantes entre la AWS CLI versión 1 y la AWS CLI versión 2.
Detección de cambios importantes no compatible
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. 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
La detección de Los valores de salida de la marca de tiempo están estandarizados según el formato ISO 8601 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
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: si confía en complementos en el archivo de configuración, 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 : si
aws s3se 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
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: si se especifican las variables de entorno
PYTHONUTF8yPYTHONIOENCODINGpara 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 : si
aws s3se 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, se generará una falsa detección. -
Los valores de salida de la marca de tiempo están estandarizados según el formato ISO 8601: si el ajuste de configuración cli_timestamp_format 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: si el indicador
--fail-on-empty-changesetse utiliza con el comandoaws cloudformation deployy 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: si se utiliza
aws s3oaws s3apipara realizar una operación de Amazon S3, y la región está configurada enus-east-1, la configuración des3.us_east_1_regional_endpointno 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, 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
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 para utilizar el modo de depuración de actualizaciones.
-
Las variables de entorno usan la variable AWS_CLI_UPGRADE_DEBUG_MODE.