

# Guia de migração para a AWS CLI versão 2
<a name="cliv2-migration"></a>

Esta seção contém instruções para atualizar oAWS CLIversion 1 paraAWS CLIversão 2. A versão 2 da AWS CLI se baseia na versão 1 da AWS CLI e inclui recursos e aprimoramentos com base no feedback da comunidade. A AWS CLI versão 2 é a versão principal mais recente da AWS CLI e oferece suporte a todos os recursos mais recentes. Alguns recursos introduzidos na versão 2 não são compatíveis com a versão 1, e você deve fazer a atualização para acessá-los. 

Para evitar problemas inesperados, antes de migrar para a versão 2, [saiba mais sobre as diferenças entre as versões](cliv2-migration-changes.md). A versão 2 da AWS CLI inclui novos recursos e outras alterações que podem exigir que você atualize seus scripts ou comandos para compatibilidade com versões anteriores.

As versões 1 e 2 da AWS CLI usam o mesmo nome de comando da `aws`. Se você tiver as duas versões instaladas, o computador usará a primeira encontrada no caminho de pesquisa. Isso pode fazer com que seu nome de comando `aws` chame sua versão da AWS CLI antiga, mesmo quando você tem a nova instalada.

Para atualizar para a AWS CLI versão 2, siga uma das instruções abaixo:
+ Se você instalou a versão 1 da AWS CLI, siga as instruções em [Instalando a AWS CLI versão 2 a partir da AWS CLI versão 1](cliv2-migration-instructions.md).
+ Se você ainda não instalou a versão 1 da AWS CLI, siga as instruções em [Conceitos básicos da AWS CLI](cli-chap-getting-started.md). 

## Usar ferramentas de migração da AWS CLI para mitigar falhas
<a name="using-migration-tools"></a>

Há alterações no comportamento entre a AWS CLI versão 1 e a AWS CLI versão 2 que podem exigir que você atualize seus scripts ou comandos. Se você fizer a atualização para a AWS CLI versão 2 sem verificar se seus scripts existentes foram migrados com segurança, correrá o risco de encontrar efeitos inesperados ao executar os scripts com a AWS CLI versão 2, como alterações indesejadas em recursos de suas contas da AWS.

Há duas ferramentas de propriedade da AWS que podem ser usadas para orientar sua migração. Independentemente da ferramenta usada, é recomendável consultar [Alterações de última hora entre a AWS CLI versão 1 e a AWS CLI versão 2](cliv2-migration-changes.md#cliv2-migration-changes-breaking) no guia [Novos atributos e alterações na AWS CLI versão 2](cliv2-migration-changes.md).

### Modo de depuração de atualização
<a name="cliv2-migration-upgrade-debug-mode"></a>

O modo de depuração de atualização é um recurso da AWS CLI versão 1 que está disponível na `1.44.0` e em versões posteriores. Quando esse recurso é habilitado, cada comando executado da AWS CLI é verificado para determinar se é provável que tenha um comportamento diferente na AWS CLI versão 2, supondo que o ambiente de execução permaneça o mesmo. Se um comando executado tiver um comportamento diferente na AWS CLI versão 2, será mostrado um aviso ao lado da saída do comando com ações sugeridas que podem ser executadas para preservar o comportamento da AWS CLI versão 1 na AWS CLI versão 2.

O principal motivo para usar o modo de depuração de atualização para orientar a migração é que ele oferece ampla cobertura para detectar se os comandos enfrentarão uma mudança de comportamento. Catorze das quinze alterações que causam incompatibilidade descritas em [Alterações de última hora entre a AWS CLI versão 1 e a AWS CLI versão 2](cliv2-migration-changes.md#cliv2-migration-changes-breaking) podem ser detectadas com o modo de depuração de atualização. Consulte [Limitações](cli-upgrade-debug-mode.md#upgrade-mode-limitations) em [Usar o modo de depuração de atualização para atualizar a AWS CLI versão 1 para a AWS CLI versão 2](cli-upgrade-debug-mode.md) para ver quais são as limitações desse recurso. Entretanto, a principal desvantagem do modo de depuração de atualização é que a saída que ele apresenta só é relevante no respectivo ambiente de execução. Se alguma configuração da AWS CLI mudar no ambiente após a migração para a AWS CLI versão 2, ainda assim poderá haver alterações que causam incompatibilidade, caso em que será necessário verificar novamente usando o modo de depuração de atualização no ambiente atualizado.

### Usar a Ferramenta de Migração da AWS CLI v1 para v2
<a name="cliv2-migration-migration-tool"></a>

A Ferramenta de Migração da AWS CLI v1 para v2 é uma ferramenta independente que pode ser usada com o Python 3.9 e posterior. Essa ferramenta é um linter estático que é executado independentemente da AWS CLI. Ela vincula scripts bash que contêm comandos da AWS CLI versão 1 que podem ter um comportamento diferente na AWS CLI versão 2. Com relação à maioria dos comandos que ela detecta como prováveis de ter um comportamento diferente na AWS CLI versão 2, ela pode atualizar automaticamente o comando dentro do script para preservar o comportamento da AWS CLI versão 1 na AWS CLI versão 2.

A Ferramenta de Migração da AWS CLI v1 para v2 deve ser usada para orientar a migração principalmente porque ela pode atualizar automaticamente seus scripts para preservar o comportamento da CLI AWS versão 1 na AWS CLI versão 2, economizando para você o tempo e esforço necessários para fazer as atualizações por conta própria. Entretanto, a principal desvantagem da ferramenta de migração é que ela oferece uma cobertura menor para detectar se os comandos enfrentarão uma mudança de comportamento. Por ser uma ferramenta estática, ela não verifica alterações no comportamento que são determinadas no runtime.

## Escolher entre o modo de depuração de atualização e a Ferramenta de Migração da AWS CLI v1 para v2
<a name="cliv2-migration-choosing-migration-tool"></a>

A tabela a seguir destaca as principais diferenças entre o modo de depuração de atualização e a Ferramenta de Migração da AWS CLI v1 para v2 e pode ser usada para ajudar você a escolher a ferramenta certa para seu caso de uso.


| Modo de depuração de atualização | Usar a Ferramenta de Migração da AWS CLI v1 para v2 | 
| --- | --- | 
| Detecta 14 das 15 alterações que causam incompatibilidade entre a AWS CLI versão 1 e a AWS CLI versão 2. | Detecta 7 das 15 alterações que causam incompatibilidade entre a AWS CLI versão 1 e a AWS CLI versão 2. | 
| Compatível com qualquer programa de terminal que possa executar a AWS CLI. | Só permite aplicar lint em scripts bash. | 
| Requer a AWS CLI versão 1, versão 1.44.0 ou posterior. | É executada independentemente da AWS CLI; não exige que a AWS CLI seja instalada. | 
| Correções manuais devem ser feitas para preservar o comportamento da AWS CLI versão 1 na AWS CLI versão 2. | Corrige automaticamente a maioria dos comandos da AWS CLI versão 1 que ela detecta como prováveis de ter um comportamento diferente na CLI AWS versão 2. | 
| As detecções e correções sugeridas são relevantes apenas para o ambiente de execução (isto é, a configuração da AWS CLI) em que ele é executado. | As detecções e correções sugeridas são independentes do ambiente. | 
| Requer a execução de cada comando da AWS CLI em teste para mudança de comportamento. | Não requer a execução de nenhum comando da AWS CLI. Só precisa ser executada uma vez por script bash. | 
| Tem exatamente cinco casos conhecidos em que produzirá detecções de falso-positivos. | Tem exatamente três casos conhecidos em que produzirá detecções de falso-positivos. | 

A tabela a seguir mostra quais [Alterações de última hora entre a AWS CLI versão 1 e a AWS CLI versão 2](cliv2-migration-changes.md#cliv2-migration-changes-breaking) cada uma das duas ferramentas de migração detecta.


| Alterações que causam incompatibilidade | Detectada pelo modo de depuração de atualização | Detectada pela Ferramenta de Migração da AWS CLI v1 para v2 | 
| --- | --- | --- | 
| [Variável de ambiente adicionada para definir codificação de arquivo de texto](cliv2-migration-changes.md#cliv2-migration-encodingenvvar) | Sim | Não | 
| [Os parâmetros binários são passados como strings codificadas em base64, por padrão.](cliv2-migration-changes.md#cliv2-migration-binaryparam) | Sim | Sim | 
| [Manuseio aprimorado do Amazon S3 de propriedades e tags de arquivos cópias fracionadas.](cliv2-migration-changes.md#cliv2-migration-s3-copy-metadata) | Sim | Sim | 
| [Nenhuma recuperação automática de URLs `http://` ou `https://` para parâmetros](cliv2-migration-changes.md#cliv2-migration-paramfile) | Sim | Não | 
| [Pager usado para todas as saídas por padrão](cliv2-migration-changes.md#cliv2-migration-output-pager) | Sim | Sim | 
| [Os valores de saída de carimbo de timestamp são padronizados para o formato ISO 8601](cliv2-migration-changes.md#cliv2-migration-timestamp) | Sim | Não | 
| [Manuseio aprimorado das implantações do CloudFormation que resulta em nenhuma alteração](cliv2-migration-changes.md#cliv2-migration-cfn) | Sim | Sim | 
| [Comportamento padrão alterado para endpoint do Amazon S3 regional para a região `us-east-1`](cliv2-migration-changes.md#cliv2-migration-s3-regional-endpoint) | Sim | Não | 
| [Comportamento padrão alterado para endpoints regionais do AWS STS](cliv2-migration-changes.md#cliv2-migration-sts-regional-endpoint) | Sim | Não | 
| [`ecr get-login` removido e substituído por `ecr get-login-password`](cliv2-migration-changes.md#cliv2-migration-ecr-get-login) | Sim | Sim | 
| [AWS CLIO suporte da versão 2 a plugins está sendo alterado](cliv2-migration-changes.md#cliv2-migration-profile-plugins) | Sim | Não | 
| [Suporte a alias oculto removido](cliv2-migration-changes.md#cliv2-migration-aliases) | Sim | Sim | 
| [A configuração do arquivo de configuração `api_versions` não é compatível](cliv2-migration-changes.md#cliv2-migration-api-versions) | Sim | Não | 
| [A AWS CLI versão 2 usa apenas o Signature v4 para autenticar solicitações do Amazon S3.](cliv2-migration-changes.md#cliv2-migration-sigv4) | Sim | Não | 
| [A AWS CLI versão 2 é mais consistente com os parâmetros de paginação](cliv2-migration-changes.md#cliv2-migration-skeleton-paging) | Sim | Sim | 
| [A AWS CLI versão 2 fornece códigos de retorno mais consistentes em todos os comandos](cliv2-migration-changes.md#cliv2-migration-return-codes) | Não | Não | 

## Tópicos adicionais nesta seção
<a name="migrate-topics"></a>
+ [Novos atributos e alterações na AWS CLI versão 2](cliv2-migration-changes.md)
+ [Instalando a AWS CLI versão 2 a partir da AWS CLI versão 1](cliv2-migration-instructions.md)
+ [Usar o modo de depuração de atualização para atualizar a AWS CLI versão 1 para a AWS CLI versão 2](cli-upgrade-debug-mode.md)
+ [Usar a Ferramenta de Migração da AWS CLI v1 para v2 para atualizar a AWS CLI versão 1 para a AWS CLI versão 2](cli-migration-tool.md)

# Novos atributos e alterações na AWS CLI versão 2
<a name="cliv2-migration-changes"></a>

Este tópico descreve os novos recursos e as alterações no comportamento entre a AWS CLI versão 1 e a AWS CLI versão 2. Essas alterações podem exigir que você atualize seus scripts ou comandos para obter o mesmo comportamento na versão 2 que tinha na versão 1.

**Topics**
+ [

## Novos recursos da AWS CLI versão 2
](#cliv2-migration-changes-features)
+ [

## Alterações de última hora entre a AWS CLI versão 1 e a AWS CLI versão 2
](#cliv2-migration-changes-breaking)

## Novos recursos da AWS CLI versão 2
<a name="cliv2-migration-changes-features"></a>

A AWS CLI versão 2 é a versão principal mais recente da AWS CLI e oferece suporte a todos os recursos mais recentes. Alguns recursos apresentados na versão 2 não são compatíveis com a versão 1, e você deve fazer a atualização para acessá-los. Esses recursos incluem o seguinte:

**O intérprete Python não é necessário**  
A AWS CLI versão 2 não precisa de uma instalação separada do Python. Ela inclui uma versão incorporada.

**[Assistentes](cli-usage-wizard.md)**  
É possível usar um assistente com a AWS CLI versão 2. O assistente orienta você ao longo do processo para a construção de determinados comandos.

**[Autenticação do IAM Identity CenterConceitos do Centro de Identidade do IAMTutorial: Centro de Identidade do AWS IAM e Amazon S3Exemplos da AWS CLI](cli-configure-sso.md)**  
Se sua organização usar o Centro de Identidade do AWS IAM ](IAM Identity Center), os usuários poderão entrar no Active Directory, um diretório integrado do IAM Identity Center, ou em [outro IdP conectado ao IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/manage-your-identity-source-idp.html). Eles são mapeados para um perfil do AWS Identity and Access Management (IAM) que permite executar comandos da AWS CLI.

**[Prompt automático](cli-usage-parameters-prompting.md)**  
Quando habilitada, a AWS CLI versão 2 pode solicitar comandos, parâmetros e recursos quando você executa um comando da `aws`. 

**[Executar as imagens oficiais do Amazon ECR Public ou do Docker para a AWS CLI](getting-started-docker.md)**  
As imagens oficiais do Docker da AWS CLI fornecem isolamento, portabilidade e segurança com os a AWS é compatível e mantém diretamente. Dessa forma, é possível usar a AWS CLI versão 2 em um ambiente baseado em contêiner sem precisar gerenciar a instalação sozinho. 

**[Paginação do lado do cliente](cli-usage-pagination.md#cli-usage-pagination-clientside)**  
A AWS CLI versão 2 fornece um programa de paginação do lado do cliente para uso na saída. Por padrão, esse recurso está ativado e retorna toda a saída pelo programa de pager padrão do sistema operacional.

**[`aws configure import`](cli-configure-files.md#cli-config-aws_configure_import)**  
Importe as credenciais de `.csv` geradas no Console de gerenciamento da AWS. Um arquivo `.csv` é importado com o nome do perfil correspondente ao nome do usuário do 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)**  
Lista os nomes de todos os perfis que você configurou. 

**[Formato da saída de fluxo do YAML](cli-usage-output-format.md#yaml-stream-output)**  
Os formatos `yaml` e `yaml-stream` se beneficiam do formato [YAML](https://yaml.org) e oferecem uma visualização mais responsiva de grandes conjuntos de dados ao fazer streaming de dados para você. Você pode começar a visualizar e usar dados de YAML antes do download de toda a consulta. 

**[Novos comandos de alto nível de `ddb` para o DynamoDB](https://docs.aws.amazon.com/cli/latest/reference/ddb/index.html)**  
A AWS CLI versão 2 tem os comandos do Amazon DynamoDB de alto nível [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) e [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). Esses comandos fornecem uma interface simplificada para colocar itens em tabelas do DynamoDB e para pesquisar em uma tabela ou índice do DynamoDB. 

**[https://docs.aws.amazon.com/cli/latest/reference/logs/tail.html](https://docs.aws.amazon.com/cli/latest/reference/logs/tail.html)**  
A AWS CLI versão 2 tem um comando `aws logs tail` que acompanha os logs de um grupo do Amazon CloudWatch Logs. Por padrão, o comando retorna logs de todos os fluxos de logs associados do CloudWatch durante os últimos dez minutos.

**[Adicionado suporte a metadados para comandos de alto nível da `s3`](cli-services-s3-commands.md#using-s3-commands-before-large)**  
A AWS CLI versão 2 adiciona o parâmetro `--copy-props` ao comando de alto nível `s3`. Com esse parâmetro, é possível configurar metadados e tags adicionais para o Amazon Simple Storage Service (Amazon S3).

**[`AWS_REGION`](cli-configure-envvars.md#envvars-list-AWS_REGION)**  
A AWS CLI versão 2 tem uma variável de ambiente compatível com SDK da AWS chamada `AWS_REGION`. Essa variável especifica a Região da AWS para a qual enviar solicitações. Ela substitui a variável de ambiente da `AWS_DEFAULT_REGION`, que é aplicável somente na AWS CLI.

## Alterações de última hora entre a AWS CLI versão 1 e a AWS CLI versão 2
<a name="cliv2-migration-changes-breaking"></a>

Este seção descreve as alterações no comportamento entre a AWS CLI versão 1 e a AWS CLI versão 2. Essas alterações podem exigir que você atualize seus scripts ou comandos para obter o mesmo comportamento na versão 2 que tinha na versão 1.

**Topics**
+ [

### Variável de ambiente adicionada para definir codificação de arquivo de texto
](#cliv2-migration-encodingenvvar)
+ [

### Os parâmetros binários são passados como strings codificadas em base64, por padrão.
](#cliv2-migration-binaryparam)
+ [

### Manuseio aprimorado do Amazon S3 de propriedades e tags de arquivos cópias fracionadas.
](#cliv2-migration-s3-copy-metadata)
+ [

### Nenhuma recuperação automática de URLs `http://` ou `https://` para parâmetros
](#cliv2-migration-paramfile)
+ [

### Pager usado para todas as saídas por padrão
](#cliv2-migration-output-pager)
+ [

### Os valores de saída de carimbo de timestamp são padronizados para o formato ISO 8601
](#cliv2-migration-timestamp)
+ [

### Manuseio aprimorado das implantações do CloudFormation que resulta em nenhuma alteração
](#cliv2-migration-cfn)
+ [

### Comportamento padrão alterado para endpoint do Amazon S3 regional para a região `us-east-1`
](#cliv2-migration-s3-regional-endpoint)
+ [

### Comportamento padrão alterado para endpoints regionais do AWS STS
](#cliv2-migration-sts-regional-endpoint)
+ [

### `ecr get-login` removido e substituído por `ecr get-login-password`
](#cliv2-migration-ecr-get-login)
+ [

### AWS CLIO suporte da versão 2 a plugins está sendo alterado
](#cliv2-migration-profile-plugins)
+ [

### Suporte a alias oculto removido
](#cliv2-migration-aliases)
+ [

### A configuração do arquivo de configuração `api_versions` não é compatível
](#cliv2-migration-api-versions)
+ [

### A AWS CLI versão 2 usa apenas o Signature v4 para autenticar solicitações do Amazon S3.
](#cliv2-migration-sigv4)
+ [

### A AWS CLI versão 2 é mais consistente com os parâmetros de paginação
](#cliv2-migration-skeleton-paging)
+ [

### A AWS CLI versão 2 fornece códigos de retorno mais consistentes em todos os comandos
](#cliv2-migration-return-codes)

### Variável de ambiente adicionada para definir codificação de arquivo de texto
<a name="cliv2-migration-encodingenvvar"></a>

 Por padrão, os arquivos de texto para [BLOB](cli-usage-parameters-types.md#parameter-type-blob) usam a mesma codificação que o locale instalado. Como a AWS CLI versão 2 usa uma versão incorporada do Python, as variáveis de ambiente `PYTHONUTF8` e `PYTHONIOENCODING` não são compatíveis. Para definir uma codificação para arquivos de texto diferente da localidade, use a variável de ambiente `AWS_CLI_FILE_ENCODING`. O exemplo a seguir define a AWS CLI para abrir arquivos de texto usando o `UTF-8` do Windows.

```
AWS_CLI_FILE_ENCODING=UTF-8
```

Para ter mais informações, consulte [Configurar variáveis de ambiente para a AWS CLI](cli-configure-envvars.md) .

### Os parâmetros binários são passados como strings codificadas em base64, por padrão.
<a name="cliv2-migration-binaryparam"></a>

Na AWS CLI, alguns comandos exigiam strings codificadas em [base64](https://wikipedia.org/wiki/Base64), enquanto outras exigiam strings de bytes codificadas em UTF-8. Na AWS CLI versão 1, passar dados entre dois tipos de string codificados, muitas vezes exigia algum processamento intermediário. A AWS CLI versão 2 torna o manuseio de parâmetros binários mais consistente, o que ajuda a passar valores de um comando para outro de forma mais confiável. 

Por padrão, a AWS CLI versão 2 passa todos os parâmetros de entrada e saída binária como strings codificadas em base64 `blobs` (objeto binário grande). Para obter mais informações, consulte [BLOB](cli-usage-parameters-types.md#parameter-type-blob).

Para reverter para o comportamento da AWS CLI versão 1, use a configuração de arquivo `cli\$1binary\$1format` ou o parâmetro `--cli-binary-format`.

### Manuseio aprimorado do Amazon S3 de propriedades e tags de arquivos cópias fracionadas.
<a name="cliv2-migration-s3-copy-metadata"></a>

Quando você usa os comandos da AWS CLI versão 1 no namespace do `aws s3` para copiar um arquivo de um local de bucket do S3 para outro, e essa operação usa [multipart copy](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CopyingObjctsMPUapi.html), nenhuma propriedade de arquivo do objeto de origem é copiada para o objeto de destino.

Por padrão, os comandos correspondentes na AWS CLI versão 2 transferem todas as tags e algumas das propriedades da origem para a cópia de destino. Em comparação com a AWS CLI versão 1, isso pode resultar em mais chamadas da API da AWS sendo feitas para o endpoint do Amazon S3. Para alterar o comportamento padrão dos comandos do `s3` na AWS CLI versão 2, use o parâmetro `--copy-props`.

Para obter mais informações, consulte [Propriedades e tags de arquivos em cópias com várias partes](cli-services-s3-commands.md#using-s3-commands-before-tags).

### Nenhuma recuperação automática de URLs `http://` ou `https://` para parâmetros
<a name="cliv2-migration-paramfile"></a>

A AWS CLI versão 2 não executa uma operação `GET` quando um valor de parâmetro começa com `http://` ou `https://` e não usa o conteúdo retornado como o valor do parâmetro. Como resultado, a opção de linha do comando associado `cli_follow_urlparam` é removida da AWS CLI versão 2.

Se você precisar recuperar um URL e passar o conteúdo desse URL como o valor de um parâmetro, recomendamos usar `curl` ou uma ferramenta semelhante para baixar o conteúdo do URL em um arquivo local. A seguir, use a sintaxe `file://` para ler o conteúdo desse arquivo e usá-lo como o valor do parâmetro. 

Por exemplo, o comando a seguir não tenta mais recuperar o conteúdo da página encontrada em `http://www.example.com` e passar esses conteúdos como o parâmetro. Em vez disso, ele passa a string de texto literal `https://example.com` como o parâmetro.

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

Se precisar recuperar e usar o conteúdo de um URL da web como um parâmetro, você poderá fazer o seguinte na versão 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
```

No exemplo anterior, o parâmetro `-o` diz ao `curl` para salvar o arquivo na pasta atual com o mesmo nome que o arquivo de origem. O segundo comando recupera o conteúdo desse arquivo baixado e passa-o como o valor de `--policy-document`.

### Pager usado para todas as saídas por padrão
<a name="cliv2-migration-output-pager"></a>

Por padrão, a AWS CLI versão 2 retorna toda a saída pelo programa de paginação padrão do sistema operacional. Por padrão, esse programa é o [https://ss64.com/bash/less.html](https://ss64.com/bash/less.html) no Linux ou no macOS, e o programa [https://docs.microsoft.com/windows-server/administration/windows-commands/more](https://docs.microsoft.com/windows-server/administration/windows-commands/more) no Windows. Isso ajuda na navegação de uma grande quantidade de saída de um serviço, exibindo essa saída uma página de cada vez. 

É possível configurar a AWS CLI versão 2 para usar um programa de paginação diferente, ou não usar nenhum. Para obter mais informações, consulte [Paginação do lado do cliente](cli-usage-pagination.md#cli-usage-pagination-clientside).

### Os valores de saída de carimbo de timestamp são padronizados para o formato ISO 8601
<a name="cliv2-migration-timestamp"></a>

Por padrão, a AWS CLI versão 2 retorna todos os valores de resposta de timestamp no [formato ISO 8601](https://wikipedia.org/wiki/ISO_8601). Na AWS CLI versão 1, os comandos retornavam valores de marca de data e hora em qualquer formato que era retornado pela resposta da API HTTP, que poderia variar de serviço para serviço. 

Para ver timestamps no formato retornado pela resposta da API HTTP, use o valor `wire` no arquivo de `config`. Para obter mais informações, consulte `cli\$1timestamp\$1format`.

### Manuseio aprimorado das implantações do CloudFormation que resulta em nenhuma alteração
<a name="cliv2-migration-cfn"></a>

Na AWS CLI versão 1, se você implantava um modelo do CloudFormation que resultava em nenhuma alteração, por padrão, a AWS CLI retornava um código de erro de falha. Isso causa problemas se você não considerar isso como um erro e quiser que o script continue. Você pode contornar isso na AWS CLI versão 1 adicionando o sinalizador `-–no-fail-on-empty-changeset`, que retorna `0`.

Como esse é o cenário de caso comum, a AWS CLI versão 2 padroniza o retorno de um código de saída bem-sucedido de `0` quando não há alterações causadas por uma implantação e a operação retorna um conjunto de alterações vazio.

Para reverter para o comportamento original, adicione o sinalizador `--fail-on-empty-changeset`.

### Comportamento padrão alterado para endpoint do Amazon S3 regional para a região `us-east-1`
<a name="cliv2-migration-s3-regional-endpoint"></a>

Ao configurar a AWS CLI versão 1 para usar a região `us-east-1`, a região AWS CLI usa o endpoint global da `s3.amazonaws.com`, que estava fisicamente hospedado na região `us-east-1`. A AWS CLI versão 2 usa o verdadeiro endpoint regional `s3.us-east-1.amazonaws.com` quando essa região é especificada. Para forçar a AWS CLI versão 2 a usar o endpoint global, é possível definir a região para um comando como `aws-global`.

### Comportamento padrão alterado para endpoints regionais do AWS STS
<a name="cliv2-migration-sts-regional-endpoint"></a>

Por padrão, a AWS CLI versão 2 envia todas as solicitações de API do AWS Security Token Service (AWS STS) para o endpoint regional da Região da AWS atualmente configurada. 

Por padrão, qualquer versão anterior à `1.42.0` da AWS CLI versão 1 envia solicitações do AWS STS ao endpoint global do AWS STS. É possível controlar esse comportamento padrão na versão 1 usando a configuração [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). 

Qualquer versão a partir da `1.42.0` usa o endpoint regional como padrão. Se você estiver migrando para a AWS CLI versão 2 dessas versões mais recentes, esse comportamento permanecerá inalterado.

### `ecr get-login` removido e substituído por `ecr get-login-password`
<a name="cliv2-migration-ecr-get-login"></a>

A AWS CLI versão 2 substitui o comando `aws ecr get-login` pelo novo comando `aws ecr get-login-password` para melhorar a integração automatizada com a autenticação do contêiner. 

O comando `aws ecr get-login-password` reduz o risco de exposição das suas credenciais na lista de processos, histórico de shell ou outros arquivos de log. Também melhora a compatibilidade com o comando `docker login` para oferecer uma melhor automação.

O comando `aws ecr get-login-password` está disponível na AWS CLI versão 1.17.10 e posterior e a AWS CLI versão 2. O comando `aws ecr get-login` mais antigo ainda está disponível na AWS CLI versão 1 para compatibilidade com versões anteriores. 

Com o comando `aws ecr get-login-password`, é possível substituir o seguinte código para recuperar uma senha.

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

Para reduzir o risco de exposição de senhas no histórico do shell ou logs, use o comando de exemplo a seguir. Neste exemplo, a senha é canalizada diretamente para o comando `docker login`, em que é atribuída ao parâmetro de senha pela opção `--password-stdin`.

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

Para obter mais informações, 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) no *Guia de referência da AWS CLI versão 2*.

### AWS CLIO suporte da versão 2 a plugins está sendo alterado
<a name="cliv2-migration-profile-plugins"></a>

O suporte a plug-ins na AWS CLI versão 2 é completamente provisório e destina-se a ajudar os usuários a migrar da AWS CLI versão 1 até que uma interface estável e atualizada de plug-ins seja liberada. Não há garantia de que um plug-in específico ou até mesmo a interface de plug-ins da AWS CLI será compatível em versões futuras da AWS CLI versão 2. Se você depender de plug-ins, restrinja o seu uso a uma versão específica da AWS CLI e teste a funcionalidade do plug-in após a atualização.

Para habilitar o suporte a plugins, crie uma seção `[plugins]` no `~/.aws/config`.

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

Na seção `[plugins]`, defina a variável `cli_legacy_plugin_path` e seu valor para o caminho dos pacotes do site do Python em que se encontra o módulo do plugin. Depois, é possível configurar um plug-in fornecendo um nome a ele (`plugin-name`) e o nome do arquivo do módulo Python, (`plugin-module`), que contém o código-fonte do plug-in. A AWS CLI carrega cada plug-in importando sua `plugin-module` e chamando a função `awscli_initialize`.

### Suporte a alias oculto removido
<a name="cliv2-migration-aliases"></a>

AWS CLIA versão 2 não oferece mais suporte aos aliases ocultos a seguir que eram compatíveis na versão 1. 

Na tabela a seguir, a primeira coluna exibe o serviço, o comando e o parâmetro que funcionam em todas as versões, incluindo a AWS CLI versão 2. A segunda coluna exibe os alias que não funciona mais na AWS CLI versão 2.


| Serviço de trabalho, comando e parâmetro | 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 | rápido | 
| 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 | 

### A configuração do arquivo de configuração `api_versions` não é compatível
<a name="cliv2-migration-api-versions"></a>

A AWS CLI versão 2 não oferece mais suporte a chamadas a versões mais antigas das APIs de serviço da AWS usando a definição do arquivo de configuração `api_versions`. Todos os comandos da AWS CLI agora chamam a versão mais recente das APIs de serviço atualmente suportadas pelo endpoint.

### A AWS CLI versão 2 usa apenas o Signature v4 para autenticar solicitações do Amazon S3.
<a name="cliv2-migration-sigv4"></a>

A AWS CLI versão 2 não oferece suporte a algoritmos de assinatura anteriores para autenticar criptograficamente solicitações de serviço enviadas para endpoints do Amazon S3. Essa assinatura acontece automaticamente com todas as solicitações do Amazon S3 e somente o [processo de assinatura do Signature versão 4](https://docs.aws.amazon.com/AmazonS3/latest/userguide/reference_aws-signing.html) é compatível. Você não pode configurar a versão da assinatura. Todos os URLs pré-assinados de bucket do Amazon S3 agora usam apenas o SigV4 e têm uma duração máxima de expiração de uma semana.

### A AWS CLI versão 2 é mais consistente com os parâmetros de paginação
<a name="cliv2-migration-skeleton-paging"></a>

Na AWS CLI versão 1, se você especificar parâmetros de paginação na linha de comando, a paginação automática será desativada conforme o esperado. No entanto, quando você especifica parâmetros de paginação usando um arquivo com o parâmetro `‐‐cli-input-json`, a paginação automática não foi desativada, o que poderia resultar em uma saída inesperada. A AWS CLI versão 2 desativa a paginação automática, independentemente de como você fornece os parâmetros.

### A AWS CLI versão 2 fornece códigos de retorno mais consistentes em todos os comandos
<a name="cliv2-migration-return-codes"></a>

A AWS CLI versão 2 é mais consistente em todos os comandos e retorna corretamente um código de saída apropriado em comparação com a AWS CLIversão 1. Também adicionamos os códigos de saída 252, 253 e 254. Para obter mais informações sobre códigos de saída, consulte [Códigos de retorno da linha de comando na AWS CLI](cli-usage-returncodes.md).

Se você tiver uma dependência de como a AWS CLI versão 1 usa valores de código de retorno, recomendamos verificar os códigos de saída para garantir que você esteja obtendo os valores esperados. 

# Instalando a AWS CLI versão 2 a partir da AWS CLI versão 1
<a name="cliv2-migration-instructions"></a>

Este tópico fornece instruções para a migração da AWS CLI versão 1 para a AWS CLI versão 2.

As versões 1 e 2 da AWS CLI usam o mesmo nome de comando da `aws`. Se você tiver as duas versões instaladas, o computador usará a primeira encontrada no caminho de pesquisa. Se você já instalou a AWS CLI versão 1, recomendamos executar um dos seguintes procedimentos para usar a AWS CLI versão 2:
+  **Recomendado**: [desinstale a AWS CLI versão 1 e use apenas a AWS CLI versão 2](#cliv2-migration-instructions-migrate).
+ [Para ter as duas versões instaladas](#cliv2-migration-instructions-side-by-side), use a capacidade do sistema operacional de criar um link simbólico (symlink) ou um alias com um nome diferente para um dos dois comandos da `aws`.

Para obter informações sobre as principais diferenças entre a versão 1 e a versão 2, consulte [Novos atributos e alterações na AWS CLI versão 2](cliv2-migration-changes.md).

## Substituindo a versão 1 pela versão 2
<a name="cliv2-migration-instructions-migrate"></a>

Siga estes passos para substituir a AWS CLI versão 1 pela AWS CLI versão 2. 

**Como substituir a AWS CLI versão 1 pela AWS CLI versão 2**

1. Prepare todos os scripts existentes para a migração, confirmando quaisquer todas as últimas alterações entre a versão 1 e a versão 2 na [Novos atributos e alterações na AWS CLI versão 2](cliv2-migration-changes.md). É possível usar o recurso do modo de depuração de atualização para orientar sua preparação seguindo as instruções em [Usar o modo de depuração de atualização para atualizar a AWS CLI versão 1 para a AWS CLI versão 2](cli-upgrade-debug-mode.md).

1. Desinstale a AWS CLI versão 1 seguindo as instruções de desinstalação do seu sistema operacional em [Instalar, atualizar e desinstalar a AWS CLI versão 1](https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-install.html).

1. Confirme que a AWS CLI está completamente desinstalada usando o comando a seguir.

   ```
   $ aws --version
   ```

   Conclua uma das seguintes opções com base na saída:
   + **Nenhuma versão retornada:** você desinstalou com sucesso a AWS CLIVersão 1 e pode prosseguir para o próximo passo.
   + **Uma versão é retornada:** você ainda tem uma instalação da AWS CLI versão 1. Para obter etapas sobre a solução de problemas, consulte [O comando “`aws --version`” retorna uma versão após a desinstalação da AWS CLI](cli-chap-troubleshooting.md#tshoot-uninstall-1). Execute os passos de solução de problemas até que nenhuma saída de versão seja recebida.

1. Instale a AWS CLI versão 2 seguindo as instruções de instalação apropriadas do seu sistema operacional em [Instalar ou atualizar a versão mais recente da AWS CLI](getting-started-install.md).

## Instalação lado a lado
<a name="cliv2-migration-instructions-side-by-side"></a>

Para ter as duas versões instaladas, use a capacidade do sistema operacional de criar um link simbólico (symlink) ou um alias com um nome diferente para um de dois comandos da `aws`. 

1. Instale a AWS CLI versão 2 seguindo as instruções de instalação apropriadas do seu sistema operacional em [Instalar ou atualizar a versão mais recente da AWS CLI](getting-started-install.md).

1. Use a capacidade do seu sistema operacional para criar um alias ou um symlink com um nome diferente para um de dois comandos da `aws`, como usar *`aws2`* para a AWS CLI versão 2. A seguir estão exemplos de symlinks para a AWS CLI versão 2. Substitua o *CAMINHO* com pelo seu local de instalação.

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

   Você pode usar um [link simbólico](https://www.linux.com/topic/desktop/understanding-linux-links/) ou um [alias](https://www.linux.com/topic/desktop/aliases-diy-shell-commands/) no Linux e no 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) no Windows.

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

------

# Usar o modo de depuração de atualização para atualizar a AWS CLI versão 1 para a AWS CLI versão 2
<a name="cli-upgrade-debug-mode"></a>

Este tópico descreve o modo de depuração de atualização na AWS CLI versão 1.

Recomendamos que os usuários da AWS CLI versão 1 atualizem para a AWS CLI versão 2 para acessar novos recursos e obter desempenho aprimorado. Há alterações no comportamento entre a AWS CLI versão 1 e a AWS CLI versão 2 que podem exigir que você atualize seus scripts ou comandos para obter o mesmo comportamento. O modo de depuração de atualização na AWS CLI versão 1 emite avisos quando você usa recursos que têm comportamento diferente na AWS CLI versão 2. Para evitar problemas inesperados, esse recurso melhora a experiência de atualização ao detectar automaticamente quais comandos da AWS CLI versão 1 precisam ser modificados antes da atualização para a AWS CLI versão 2.

Para ver mais detalhes, consulte [Alterações de última hora entre a AWS CLI versão 1 e a AWS CLI versão 2](cliv2-migration-changes.md#cliv2-migration-changes-breaking) em [Novos atributos e alterações na AWS CLI versão 2](cliv2-migration-changes.md).

## Pré-requisitos
<a name="upgrade-mode-prerequisites"></a>

O recurso do modo de depuração de atualização foi introduzido na AWS CLI na versão `1.44.0`.

Usando a AWS CLI versão 1, execute `aws --version` e verifique se a versão da AWS CLI é `1.44.0` ou posterior.

Se a versão for anterior à `1.44.0`, consulte [Instalar, atualizar e desinstalar a AWS CLI](https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-install.html).

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

Se habilitado, o modo de depuração de atualização detecta o uso de recursos que foram atualizados com alterações que causam incompatibilidade na AWS CLI versão 2. Se você usar um comando ou recurso listado em [Alterações de última hora entre a AWS CLI versão 1 e a AWS CLI versão 2](cliv2-migration-changes.md#cliv2-migration-changes-breaking) após a atualização para a AWS CLI versão 2, será mostrado um aviso na saída. A detecção de alterações que causam incompatibilidade é baseada no comando usado, nos argumentos fornecidos, no ambiente de execução (p. ex., variáveis de ambiente, definições de configuração etc.) e, em alguns casos, no conteúdo ou na configuração de recursos na conta da AWS que está sendo usada.

Os avisos descrevem ações para evitar problemas inesperados de atualização para a AWS CLI versão 2. Depois de fazer as alterações recomendadas por uma mensagem de aviso, é possível confirmar se o comando foi atualizado com êxito executando-o novamente para verificar se o aviso não é mais exibido. Os avisos que estão sendo resolvidos indicam que não é mais provável que a respectiva alteração que causa incompatibilidade interfira no comando ao atualizar para a AWS CLI versão 2.

O exemplo a seguir demonstra como são esses avisos. Este comando demonstra um exemplo de aviso. Todo texto de aviso começa com “AWSCLI V2 UPGRADE WARNING”, seguido pela mensagem de aviso específica. Nesse caso, um aviso é emitido porque o comando depende da AWS CLI para recuperar o conteúdo do URL e usar o conteúdo como o valor de parâmetro `--template-body`, que foi um recurso removido na AWS CLI versão 2.

```
$ 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.
```

A tabela a seguir mostra todas as alterações que causam incompatibilidade e como evitar enfrentá-las na AWS CLI versão 2. As ações de correção que resolvem os avisos no modo de depuração estão em negrito. 


| Alterações que causam incompatibilidade | Na v1, migre para o comportamento da v2 | Na v2, mantenha o comportamento da v1 | 
| --- | --- | --- | 
| [Variável de ambiente adicionada para definir codificação de arquivo de texto](cliv2-migration-changes.md#cliv2-migration-encodingenvvar) | Apague as variáveis de ambiente PYTHONUTF8 e PYTHONIOENCODING. | Defina a variável de ambiente AWS\$1CLI\$1FILE\$1ENCODING com a codificação especificada na v1. | 
| [Os parâmetros binários são passados como strings codificadas em base64, por padrão.](cliv2-migration-changes.md#cliv2-migration-binaryparam) | Codifique o valor do parâmetro em base64. Se o parâmetro estiver sendo carregado de um arquivo, codifique o conteúdo do arquivo em base64. | Defina a configuração cli\$1binary\$1format como raw-in-base64-out. | 
| [Manuseio aprimorado do Amazon S3 de propriedades e tags de arquivos cópias fracionadas.](cliv2-migration-changes.md#cliv2-migration-s3-copy-metadata) | N/A. Não é possível migrar para o comportamento da versão 2 na versão 1. | Use o parâmetro --copy-props none. | 
| [Nenhuma recuperação automática de URLs `http://` ou `https://` para parâmetros](cliv2-migration-changes.md#cliv2-migration-paramfile) | Use curl (ou ferramentas alternativas) para baixar o conteúdo dos URLs em um arquivo local. Em seguida, carregue o conteúdo do arquivo no parâmetro com [file://](https://docs.aws.amazon.com/cli/v1/userguide/cli-usage-parameters-file.html). Uma alternativa é configurar cli\$1follow\$1urlparam como false para especificar o URL bruto como o valor do parâmetro. | N/A. Impossível manter o comportamento da versão 1 na versão 2. | 
| [Pager usado para todas as saídas por padrão](cliv2-migration-changes.md#cliv2-migration-output-pager) | N/A. Não é possível migrar para o comportamento da versão 2 na versão 1. | Definir a configuração cli\$1pager ou a variável AWS\$1PAGER como uma string vazia. | 
| [Os valores de saída de carimbo de timestamp são padronizados para o formato ISO 8601](cliv2-migration-changes.md#cliv2-migration-timestamp) | Defina a configuração cli\$1timestamp \$1format como iso8601. | Defina a configuração cli\$1timestamp\$1format como wire. | 
| [Manuseio aprimorado das implantações do CloudFormation que resulta em nenhuma alteração](cliv2-migration-changes.md#cliv2-migration-cfn) | Use o parâmetro --no-fail-on-empty-changeset. | Use o parâmetro --fail-on-empty-changeset. | 
| [Comportamento padrão alterado para endpoint do Amazon S3 regional para a região `us-east-1`](cliv2-migration-changes.md#cliv2-migration-s3-regional-endpoint) | Defina a variável de ambiente AWS\$1ENDPOINT\$1URL\$1S3 ou a opção de linha de comandos --endpoint-url como o [URL regional](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_region) de us-east-1. | Use a opção de linha de comandos --region aws-global. | 
| [`ecr get-login` removido e substituído por `ecr get-login-password`](cliv2-migration-changes.md#cliv2-migration-ecr-get-login) | (1.17.10 ou posterior) Use [`ecr get-login` removido e substituído por `ecr get-login-password`](cliv2-migration-changes.md#cliv2-migration-ecr-get-login) e canalize a saída para um comando do Docker. | N/A. Impossível manter o comportamento da versão 1 na versão 2. | 
| [AWS CLIO suporte da versão 2 a plugins está sendo alterado](cliv2-migration-changes.md#cliv2-migration-profile-plugins) | N/A. Não é possível migrar para o comportamento da versão 2 na versão 1. | Configure o [cli\$1legacy\$1plugin\$1path](https://docs.aws.amazon.com/cli/latest/topic/config-vars.html#plugins) para a seção [plugins] do arquivo de configuração. Teste os plug-ins na versão 2, bloqueie sua versão 2 e teste seus plug-ins sempre que fizer uma atualização. | 
| [Suporte a alias oculto removido](cliv2-migration-changes.md#cliv2-migration-aliases) | Deixe de usar o alias oculto obsoleto e passe a usar um que funcione em todas as versões, como descrito em [Suporte a alias oculto removido](cliv2-migration-changes.md#cliv2-migration-aliases). | N/A. Impossível manter o comportamento da versão 1 na versão 2. | 
| [A configuração do arquivo de configuração `api_versions` não é compatível](cliv2-migration-changes.md#cliv2-migration-api-versions) | Migre para a versão mais recente da API, teste o uso de suas versões mais antigas da API e remova [api\$1versions](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-files.html#cli-config-api_versions) das suas configurações. | N/A. Impossível manter o comportamento da versão 1 na versão 2. | 
| [A AWS CLI versão 2 usa apenas o Signature v4 para autenticar solicitações do Amazon S3.](cliv2-migration-changes.md#cliv2-migration-sigv4) | Especifique o Signature Version como versão 4 (consulte [Especificar o Signature Version na solicitação de autenticação)](https://docs.aws.amazon.com/AmazonS3/latest/API/specify-signature-version.html). | N/A. Impossível manter o comportamento da versão 1 na versão 2. | 
| [A AWS CLI versão 2 é mais consistente com os parâmetros de paginação](cliv2-migration-changes.md#cliv2-migration-skeleton-paging) | Mova os parâmetros de paginação no parâmetro JSON de entrada para o próprio comando. | Remova os parâmetros de paginação do parâmetro JSON de entrada. | 
| [A AWS CLI versão 2 fornece códigos de retorno mais consistentes em todos os comandos](cliv2-migration-changes.md#cliv2-migration-return-codes) | N/A. Não é possível migrar para o comportamento da versão 2 na versão 1. | N/A. Impossível manter o comportamento da versão 1 na versão 2. | 

## Limitações
<a name="upgrade-mode-limitations"></a>

Recomendamos enfaticamente que os clientes analisem a seção [Alterações de última hora entre a AWS CLI versão 1 e a AWS CLI versão 2](cliv2-migration-changes.md#cliv2-migration-changes-breaking).

### Alterações significativas que não é possível detectar
<a name="upgrade-mode-limitations-unsupported-changes"></a>

O recurso do modo de depuração de atualização atende a todas as alterações que causam incompatibilidade, exceto quanto ao que está descrito em [A AWS CLI versão 2 fornece códigos de retorno mais consistentes em todos os comandos](cliv2-migration-changes.md#cliv2-migration-return-codes). Esse modo não consegue responder a como você usa os códigos de erro exibidos pela AWS CLI subsequentemente.

### Detecção condicional de alterações que causam incompatibilidade
<a name="upgrade-mode-limitations-condiditional-changes"></a>

A detecção descrita em [Os valores de saída de carimbo de timestamp são padronizados para o formato ISO 8601](cliv2-migration-changes.md#cliv2-migration-timestamp) é o único caso em que a detecção depende do estado da conta da AWS e pode estar sujeita a alterações que causam incompatibilidade se os recursos da conta forem atualizados posteriormente. Se nenhum carimbo de data/hora for incluído na resposta da API do serviço, nenhuma detecção será feita para essa alteração que causa incompatibilidade.

Se você usa o formato de carimbo de data/hora exibido pelos comandos da AWS CLI e ainda não configurou a AWS CLI para usar o padrão ISO 8601, tome cuidado redobrado para garantir que o processamento do carimbo de data/hora não seja interrompido após a atualização para a versão 2.

### Detecção de alterações que causam incompatibilidade não resolvidas
<a name="upgrade-mode-limitations-unresolvable-changes"></a>

Alguns avisos emitidos pelo modo de depuração de atualização não podem ser resolvidos modificando o comando ou o ambiente. Os seguintes casos são casos em que os avisos sempre serão emitidos pelo modo de depuração de atualização desde que você use o recurso correspondente:
+ [AWS CLIO suporte da versão 2 a plugins está sendo alterado](cliv2-migration-changes.md#cliv2-migration-profile-plugins): se você conta com plug-ins em seu [arquivo de configuração](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-files.html), o modo de depuração de atualização sempre emitirá um aviso que não pode ser resolvido. Esse modo não pode garantir se algum de seus plug-ins funcionará na AWS CLI versão 2.
+ [Manuseio aprimorado do Amazon S3 de propriedades e tags de arquivos cópias fracionadas.](cliv2-migration-changes.md#cliv2-migration-s3-copy-metadata): se o `aws s3` for usado para executar uma cópia de bucket para bucket do Amazon S3, o modo de depuração de atualização sempre emitirá um aviso que não pode ser resolvido.

### Falsas detecções
<a name="upgrade-mode-limitations-false-detections"></a>

Os avisos emitidos pelo modo de depuração de atualização não garantem que haverá alterações que causam incompatibilidade após a atualização para a CLI AWS v2. Abaixo são apresentados os casos em que o modo de depuração de atualização emitirá avisos mesmo que não haja nenhuma alteração que causa incompatibilidade na AWS CLI v2:
+ [Variável de ambiente adicionada para definir codificação de arquivo de texto](cliv2-migration-changes.md#cliv2-migration-encodingenvvar): se as variáveis de ambiente `PYTHONIOENCODING` ou `PYTHONUTF8` forem especificadas para definir a codificação do arquivo de texto e a codificação especificada já corresponder à localidade instalada, o aviso poderá ser uma detecção falsa, pois o modo de depuração não verifica se a codificação corresponde à localidade instalada.
+ [Manuseio aprimorado do Amazon S3 de propriedades e tags de arquivos cópias fracionadas.](cliv2-migration-changes.md#cliv2-migration-s3-copy-metadata): se o `aws s3` for usado para realizar uma cópia de bucket para bucket do Amazon S3 e a cópia não for de várias partes devido ao objeto de origem estar abaixo do [tamanho limite de várias partes](https://docs.aws.amazon.com/cli/latest/topic/s3-config.html#multipart-threshold), uma falsa detecção será gerada.
+ [Os valores de saída de carimbo de timestamp são padronizados para o formato ISO 8601](cliv2-migration-changes.md#cliv2-migration-timestamp): se a configuração cli\$1timestamp\$1format estiver definida como wire (padrão) e um carimbo de data/hora no formato ISO 8601 for exibido pelo serviço.
+ [Manuseio aprimorado das implantações do CloudFormation que resulta em nenhuma alteração](cliv2-migration-changes.md#cliv2-migration-cfn): se o sinalizador `--fail-on-empty-changeset` for usado com o comando `aws cloudformation deploy` e o conjunto de alterações resultante estiver vazio, uma detecção falsa será gerada. Além disso, se o conjunto de alterações não estiver vazio e `--no-fail-on-empty-changeset` não for usado, uma detecção falsa será gerada.
+ [Comportamento padrão alterado para endpoint do Amazon S3 regional para a região `us-east-1`](cliv2-migration-changes.md#cliv2-migration-s3-regional-endpoint): se `aws s3` ou `aws s3api` for usado para realizar uma operação do Amazon S3, a região estiver configurada como `us-east-1`, a configuração `s3.us_east_1_regional_endpoint` não estiver definida como regional e o endpoint global do Amazon S3 for usado para a solicitação devido às [configurações do endpoint](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-endpoints.html#endpoints-precedence), o aviso poderá ser uma detecção falsa, pois o modo de depuração não verifica as definições de endpoint configuradas.

## Configurar o modo de depuração de atualização
<a name="upgrade-mode-configure"></a>

Você pode habilitar ou desabilitar o modo de depuração de atualização usando os seguintes métodos, listados em ordem de precedência:
+ As opções de linha de comandos habilitam ou desabilitam o modo de depuração de atualização para um único comando. Use [--v2-debug](https://docs.aws.amazon.com/cli//latest/userguide/cli-configure-options.html#cli-configure-options-v2-debug) para usar o modo de depuração de atualização.
+ As variáveis de ambiente usam a variável [AWS\$1CLI\$1UPGRADE\$1DEBUG\$1MODE](https://docs.aws.amazon.com/cli//latest/userguide/cli-configure-envvars.html#envvars-list-aws_cli_upgrade_debug_mode).

# Usar a Ferramenta de Migração da AWS CLI v1 para v2 para atualizar a AWS CLI versão 1 para a AWS CLI versão 2
<a name="cli-migration-tool"></a>

Este tópico descreve a Ferramenta de Migração da AWS CLI v1 para v2.

Recomendamos que os usuários da AWS CLI versão 1 atualizem para a AWS CLI versão 2 para acessar novos recursos e obter desempenho aprimorado. Há alterações no comportamento entre a AWS CLI versão 1 e a AWS CLI versão 2 que podem exigir que você atualize seus scripts ou comandos para obter o mesmo comportamento. A Ferramenta de Migração da AWS CLI v1 para v2 analisa scripts bash que contêm comandos da AWS CLI versão 1 e detecta o uso de recursos que foram atualizados com alterações significativas na AWS CLI versão 2. Além disso, a ferramenta pode modificar automaticamente os scripts para corrigir a maioria dos problemas detectados. Essa ferramenta aprimora a experiência de atualização ao detectar e modificar automaticamente comandos da AWS CLI versão 1 em scripts bash para evitar problemas inesperados na atualização para a versão 2.

Em comparação com o modo de depuração de atualização, a Ferramenta de Migração da AWS CLI v1 para v2 é autônoma e não requer a execução de comandos da AWS CLI. Para ver uma comparação completa entre o modo de depuração de atualização e a Ferramenta de Migração da AWS CLI v1 para v2, consulte [Usar ferramentas de migração da AWS CLI para mitigar falhas](cliv2-migration.md#using-migration-tools) no [Guia de migração para a AWS CLI versão 2](cliv2-migration.md).

Para ver mais detalhes, consulte [Alterações de última hora entre a AWS CLI versão 1 e a AWS CLI versão 2](cliv2-migration-changes.md#cliv2-migration-changes-breaking) em [Novos atributos e alterações na AWS CLI versão 2](cliv2-migration-changes.md).

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

A Ferramenta de Migração da AWS CLI v1 para v2 é um pacote Python capaz de aplicar lint em scripts bash que usam a AWS CLI versão 1. Por ser um linter estático, a ferramenta não depende da versão da AWS CLI versão 1 que você tenha instalado em sua máquina. O linter é invocado por meio da linha de comandos e o caminho do arquivo local para o script bash é fornecido como um parâmetro.

A ferramenta de migração também pode produzir automaticamente um script bash modificado que resolve a maioria das descobertas detectadas modificando os comandos da AWS CLI versão 1 usados no script. A ferramenta de migração modifica os comandos para que sejam compatíveis com a AWS CLI versão 2 e mantenha o comportamento da versão 1.

Com relação a algumas descobertas, a Ferramenta de Migração da AWS CLI v1 para v2 pode detectá-las, mas não oferece uma correção automática. Nesses casos, a ferramenta de migração as sinaliza como detecções que exigem análise manual.

Consulte [Limitações](#migration-tool-limitations) para ver uma lista completa das alterações que causam incompatibilidade e das correções automáticas permitidas pela Ferramenta de Migração da AWS CLI v1 para v2.

## Pré-requisitos
<a name="migration-tool-prerequisites"></a>

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

Para usar essa ferramenta, é necessário ter o Python 3.9 ou posterior instalado.

Para verificar se você tem uma versão correta do Python instalada, execute o comando a seguir em um terminal e confirme se a saída mostra uma versão do Python que seja pelo menos 3.9.

```
$ python3 --version
```

Se você tem uma versão mais antiga do Python ou não tem o Python instalado, baixe uma versão compatível na página oficial de download do [Python](https://www.python.org/downloads/).

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

Além de ter uma versão compatível do Python instalada, é necessário ter o `pip` instalado.

Para verificar se o `pip` está instalado, execute o seguinte comando:

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

Se você tiver o `pip` instalado, verá uma saída semelhante à seguinte:

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

Se você não tiver o `pip` instalado, consulte [Instalar o pip](https://docs.aws.amazon.com/cli/v1/userguide/install-linux.html#install-linux-pip-pip).

## Instalação
<a name="migration-tool-installation"></a>

Instale a Ferramenta de Migração da AWS CLI v1 para v2 em um novo ambiente virtual:

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

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

### Modo de simulação (padrão)
<a name="migration-tool-usage-dryrun"></a>

Com o modo de simulação, é possível detectar automaticamente os comandos da AWS CLI versão 1 sujeitos a alterações que causam incompatibilidade sem modificar o script de entrada:

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

### Modo de correção automática
<a name="migration-tool-usage-autofix"></a>

Com o modo de correção automática, você pode detectar e atualizar automaticamente os comandos da AWS CLI versão 1 no script de entrada para mitigar falhas causadas por alterações introduzidas na AWS CLI versão 2, quando possível:

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

Opcionalmente, é possível fornecer um caminho de saída por meio do parâmetro `--output` para gravar o script atualizado, em vez de atualizar o script de entrada:

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

### Modo interativo
<a name="migration-tool-usage-interactive"></a>

Com o modo interativo, é possível detectar automaticamente os comandos da AWS CLI versão 1 sujeitos a alterações que causam incompatibilidade. A maioria das descobertas mostrará uma correção sugerida para mitigar falhas na AWS CLI versão 2. Você pode analisar as correções sugeridas e decidir se deseja aplicá-las. Opcionalmente, forneça um caminho de saída por meio do parâmetro `--output` para controlar onde gravar o script atualizado:

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

O seguinte trecho de saída é um exemplo de descoberta no modo interativo:

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

A correção sugerida é mostrada em um formato semelhante a um Git diff. A ferramenta de migração sugere a remoção de linhas que começam com `-` e sugere a adição de linhas que começam com `+`. No exemplo anterior, a sugestão pode ser interpretada como a adição do parâmetro `--copy-props none` ao comando da AWS CLI versão 1 que executa uma cópia do Amazon S3.

Para cada correção sugerida, é possível inserir qualquer um dos seguintes controles:
+ Digite `y` para aceitar a correção sugerida.
+ Digite `n` para rejeitar a correção atual.
+ Digite `a` para aceitar todas as correções do mesmo tipo.
+ Digite `r` para rejeitar todas as correções do mesmo tipo.
+ Digite `u` para aceitar todas as correções restantes.
+ Digite `s` para salvar e sair.
+ Digite `q` para sair sem salvar.

Algumas descobertas podem ser marcadas para análise manual sem uma sugestão de correção. É necessário analisar essas descobertas e verificar se essas alterações que causam incompatibilidade se aplicam ao seu caso. Se essas descobertas se aplicarem ao seu caso, você deverá seguir as orientações especificadas na descrição da descoberta para fazer as alterações necessárias e evitar ou se preparar para alterações introduzidas na AWS CLI versão 2 que causam incompatibilidade.

## Limitações
<a name="migration-tool-limitations"></a>

No momento, a Ferramenta de Migração da AWS CLI v1 para v2 não detecta todas as alterações introduzidas na AWS CLI versão 2 que causam incompatibilidade e há casos de falso-positivos em que ela apresenta detecções para comandos mesmo que nenhuma alteração desse tipo seja realmente enfrentada.

Recomendamos enfaticamente que os clientes entendam as [Alterações de última hora entre a AWS CLI versão 1 e a AWS CLI versão 2](cliv2-migration-changes.md#cliv2-migration-changes-breaking) publicadas em [Novos atributos e alterações na AWS CLI versão 2](cliv2-migration-changes.md).

### Análise baseada em texto
<a name="migration-tool-limitations-static-linter"></a>

A ferramenta de migração analisa seu script sem o executar. Isso limita a forma como ela detecta comandos da AWS CLI para alterações que causam incompatibilidade. A ferramenta de migração pode examinar somente o texto de um comando da AWS CLI. Ela não consegue detectar problemas que surgem no runtime, como armazenar parâmetros obsoletos em uma variável em vez de transmiti-los diretamente à AWS CLI.

### Alterações significativas que não é possível detectar
<a name="migration-tool-limitations-unsupported-changes"></a>

A extensão do suporte da ferramenta de migração a alterações que causam incompatibilidade é resumida na tabela a seguir.


| Alterações que causam incompatibilidade | Possibilidade de detecção | Possibilidade de correção automática | 
| --- | --- | --- | 
| [Variável de ambiente adicionada para definir codificação de arquivo de texto](cliv2-migration-changes.md#cliv2-migration-encodingenvvar) | Não | Não | 
| [Os parâmetros binários são passados como strings codificadas em base64, por padrão.](cliv2-migration-changes.md#cliv2-migration-binaryparam) | Sim | Sim | 
| [Manuseio aprimorado do Amazon S3 de propriedades e tags de arquivos cópias fracionadas.](cliv2-migration-changes.md#cliv2-migration-s3-copy-metadata) | Sim | Sim | 
| [Nenhuma recuperação automática de URLs `http://` ou `https://` para parâmetros](cliv2-migration-changes.md#cliv2-migration-paramfile) | Não | Não | 
| [Pager usado para todas as saídas por padrão](cliv2-migration-changes.md#cliv2-migration-output-pager) | Sim | Sim | 
| [Os valores de saída de carimbo de timestamp são padronizados para o formato ISO 8601](cliv2-migration-changes.md#cliv2-migration-timestamp) | Não | Não | 
| [Manuseio aprimorado das implantações do CloudFormation que resulta em nenhuma alteração](cliv2-migration-changes.md#cliv2-migration-cfn) | Sim | Sim | 
| [Comportamento padrão alterado para endpoint do Amazon S3 regional para a região `us-east-1`](cliv2-migration-changes.md#cliv2-migration-s3-regional-endpoint) | Não | Não | 
| [Comportamento padrão alterado para endpoints regionais do AWS STS](cliv2-migration-changes.md#cliv2-migration-sts-regional-endpoint) | Não | Não | 
| [`ecr get-login` removido e substituído por `ecr get-login-password`](cliv2-migration-changes.md#cliv2-migration-ecr-get-login) | Sim | Não | 
| [AWS CLIO suporte da versão 2 a plugins está sendo alterado](cliv2-migration-changes.md#cliv2-migration-profile-plugins) | Não | Não | 
| [Suporte a alias oculto removido](cliv2-migration-changes.md#cliv2-migration-aliases) | Sim | Sim | 
| [A configuração do arquivo de configuração `api_versions` não é compatível](cliv2-migration-changes.md#cliv2-migration-api-versions) | Não | Não | 
| [A AWS CLI versão 2 usa apenas o Signature v4 para autenticar solicitações do Amazon S3.](cliv2-migration-changes.md#cliv2-migration-sigv4) | Não | Não | 
| [A AWS CLI versão 2 é mais consistente com os parâmetros de paginação](cliv2-migration-changes.md#cliv2-migration-skeleton-paging) | Sim | Não | 
| [A AWS CLI versão 2 fornece códigos de retorno mais consistentes em todos os comandos](cliv2-migration-changes.md#cliv2-migration-return-codes) | Não | Não | 