Novos recursos e mudanças na AWS CLI versão 2 - AWS Command Line Interface

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Novos recursos e mudanças na AWS CLI versão 2

Este tópico descreve novos recursos e mudanças 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.

AWS CLI novos recursos da versão 2

A AWS CLI versão 2 é a versão principal mais recente do 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

Você pode 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.

IAMAutenticação do Identity

Se sua organização usa AWS IAM Identity Center (IAMIdentity Center), seus usuários podem entrar no Active Directory, em um diretório interno do IAM Identity Center ou em outro IdP conectado ao IAM Identity Center. Em seguida, eles são mapeados para uma função AWS Identity and Access Management (IAM) que permite executar AWS CLI comandos.

Prompt automático

Quando ativada, a AWS CLI versão 2 pode solicitar comandos, parâmetros e recursos ao executar um aws comando.

Executando as imagens oficiais do Amazon ECR Public ou Docker para o AWS CLI

A imagem oficial do Docker AWS CLI fornece isolamento, portabilidade e segurança que oferecem suporte e AWS manutenção diretos. Dessa forma, você pode 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

A AWS CLI versão 2 fornece o uso de um programa de pager do lado do cliente para 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

Importe as credenciais de .csv geradas no AWS Management Console. Um .csv arquivo é importado com o nome do perfil correspondente ao nome IAM do usuário.

aws configure list-profiles

Lista os nomes de todos os perfis que você configurou.

YAMLformato de saída de fluxo

O yaml-stream formato yaml and aproveita o YAMLformato e, ao mesmo tempo, fornece uma visualização mais responsiva de grandes conjuntos de dados, transmitindo os dados para você. Você pode começar a visualizar e usar YAML dados antes que toda a consulta seja baixada.

Novos comandos de alto nível de ddb para o DynamoDB

A AWS CLI versão 2 tem os comandos de alto nível do Amazon ddb putDynamoDB e. ddb select Esses comandos fornecem uma interface simplificada para colocar itens em tabelas do DynamoDB e para pesquisar em uma tabela ou índice do DynamoDB.

aws logs tail

A AWS CLI versão 2 tem um aws logs tail comando personalizado que rastreia os registros de um grupo Amazon CloudWatch Logs. Por padrão, o comando retorna registros de todos os fluxos de CloudWatch registros associados durante os últimos dez minutos.

Adicionado suporte a metadados para comandos de alto nível da s3

A AWS CLI versão 2 adiciona o --copy-props parâmetro aos s3 comandos de alto nível. Com esse parâmetro, é possível configurar metadados e tags adicionais para o Amazon Simple Storage Service (Amazon S3).

AWS_REGION

A AWS CLI versão 2 tem uma variável AWS SDK de ambiente compatível chamadaAWS_REGION. Essa variável especifica o Região da AWS para o qual enviar solicitações. Ela substitui a variável de ambiente da AWS_DEFAULT_REGION, que é aplicável somente na AWS CLI.

Alterações significativas entre a AWS CLI versão 1 e a AWS CLI versão 2

Esta seção descreve todas as mudanças 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.

Variável de ambiente adicionada para definir codificação de arquivo de texto

Por padrão, os arquivos de texto para 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 PYTHONIOENCODING ambiente PYTHONUTF8 e não são suportadas. 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 o AWS CLI para abrir arquivos de texto usando UTF-8 no Windows.

AWS_CLI_FILE_ENCODING=UTF-8

Para obter mais informações, consulteConfigurando variáveis de ambiente para o AWS CLI

Os parâmetros binários são passados como strings codificadas em base64, por padrão.

No AWS CLI, alguns comandos exigiam cadeias de caracteres codificadas em base64, enquanto outros UTF exigiam cadeias de bytes codificadas em -8. Na AWS CLI versão 1, passar dados entre dois tipos de string codificados geralmente exigia algum processamento intermediário. A AWS CLI versão 2 torna o tratamento 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 binários de entrada e saída binária como a string codificada em base64 blobs (objeto binário grande). Para obter mais informações, consulte Blob.

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

Manuseio aprimorado do Amazon S3 de propriedades e tags de arquivos cópias fracionadas.

Quando você usa os comandos da AWS CLI versão 1 no aws s3 namespace para copiar um arquivo de um local de bucket do S3 para outro, e essa operação usa cópia em várias partes, 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 propriedades da cópia de origem para a cópia de destino. Em comparação com a AWS CLI versão 1, isso pode resultar na realização de mais AWS API chamadas para o endpoint do Amazon S3. Para alterar o comportamento padrão dos s3 comandos na AWS CLI versão 2, use o --copy-props parâmetro.

Para obter mais informações, consulte Propriedades e tags de arquivos em cópias com várias partes.

Sem recuperação automática de http:// ou https:// URLs para parâmetros

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

Se você precisar recuperar um URL e passar o URL conteúdo para um valor de parâmetro, recomendamos que você use curl uma ferramenta semelhante para baixar o conteúdo do URL para 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 uma web URL como parâmetro, você pode 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

Por padrão, a AWS CLI versão 2 retorna toda a saída por meio do programa de pager padrão do sistema operacional. Por padrão, esse programa é o less no Linux ou no macOS, e o programa 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.

Você pode configurar a AWS CLI versão 2 para usar um programa de paginação diferente ou nenhum. Para obter mais informações, consulte Paginação do lado do cliente.

Os valores de saída do timestamp são padronizados para o formato 8601 ISO

Por padrão, a AWS CLI versão 2 retorna todos os valores de resposta do timestamp no formato ISO8601. Na AWS CLI versão 1, os comandos retornavam valores de timestamp em qualquer formato retornado pela HTTP API resposta, o que poderia variar de serviço para serviço.

Para ver os timestamps no formato retornado pela HTTP API resposta, use o wire valor em seu arquivo. config Para obter mais informações, consulte cli_timestamp_format.

Tratamento aprimorado de CloudFormation implantações que não resultam em alterações

Por padrão, na AWS CLI versão 1, se você implantar um AWS CloudFormation modelo que não resulta em alterações, ele AWS CLI retornará um código de erro com 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 a bandeira-–no-fail-on-empty-changeset, que retorna0.

Como esse é um caso de uso comum, o padrão da AWS CLI versão 2 é retornar um código de saída bem-sucedido 0 quando não há nenhuma alteração causada 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

Quando você configura a AWS CLI versão 1 para usar a us-east-1 Região, ela AWS CLI usa o s3.amazonaws.com endpoint global que está fisicamente hospedado na us-east-1 Região. 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, você pode definir a região para um comando comoaws-global.

Comportamento padrão alterado para AWS STS endpoints regionais

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

Por padrão, a AWS CLI versão 1 envia AWS STS solicitações para o AWS STS endpoint global. É possível controlar esse comportamento padrão na versão 1 usando a configuração sts_regional_endpoints.

ecr get-login removido e substituído por ecr get-login-password

A AWS CLI versão 2 substitui o comando pelo aws ecr get-login-password comando aws ecr get-login que melhora a integração automatizada com a autenticação de contêineres.

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 aws ecr get-login-password comando está disponível na AWS CLI versão 1.17.10 e posterior e na AWS CLI versão 2. O aws ecr get-login comando anterior 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 aws ecr get-login-password no Guia de referência da AWS CLI versão 2.

AWS CLI o suporte da versão 2 para plug-ins está mudando

O suporte a plug-ins na AWS CLI versão 2 é totalmente provisório e tem como objetivo ajudar os usuários a migrar da AWS CLI versão 1 até o lançamento de uma interface de plug-in estável e atualizada. Não há garantias de que um plug-in específico ou mesmo a interface do AWS CLI plug-in sejam suportados em versões futuras da AWS CLI versão 2. Se você depende de plug-ins, certifique-se de acessar uma versão específica do AWS CLI e testar a funcionalidade do seu plug-in ao fazer 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. O AWS CLI carrega cada plug-in importando plugin-module e chamando sua awscli_initialize função.

Suporte a alias oculto removido

AWS CLI a versão 2 não oferece mais suporte aos seguintes aliases ocultos que eram compatíveis com a 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 o alias que não funciona mais na AWS CLI versão 2.

Serviço de trabalho, comando e parâmetro Alias obsoleto
cognito-identity -arns create-identity-pool open-id-connect-provider open-id-connect-provider-ar-ns
storagegateway describe-tapes tape-arns tape-ar-ns
gateway de armazenamento. describe-tape-archives.tape-arns tape-ar-ns
gateway de armazenamento. describe-vtl-devices. vtl-device-arns vtl-device-ar-ns
gateway de armazenamento. describe-cached-iscsi-volumes.volume-arns volume-ar-ns
gateway de armazenamento. describe-stored-iscsi-volumes.volume-arns volume-ar-ns
route53domains.view-billing.start-time rápido
implantar. create-deployment-groupconjunto de tags.ec2 ec-2-tag-set
implantar. list-application-revisions.s3-bucket s-3-bucket
implantar. list-application-revisions.prefixo-chave s3 s-3-key-prefix
implantar. update-deployment-groupconjunto de tags.ec2 ec-2-tag-set
objetivo. enable-mfa-device.código de autenticação1 authentication-code-1
objetivo. enable-mfa-device.código de autenticação2 authentication-code-2
objetivo. resync-mfa-device.código de autenticação1 authentication-code-1
objetivo. resync-mfa-device.código de autenticação2 authentication-code-2
importação/exportação. get-shipping-label.rua 1 street-1
importação/exportação. get-shipping-label.rua 2 street-2
importação/exportação. get-shipping-label.rua 3 street-3
lambda.publish-version.code-sha256 code-sha-256
vela leve. 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 AWS CLI versão 2 não suporta a chamada de versões anteriores do AWS serviço APIs usando a api_versions configuração do arquivo de configuração. Agora, todos os AWS CLI comandos chamam a versão mais recente do serviço APIs que atualmente é suportada pelo endpoint.

AWS CLI a versão 2 usa somente o Signature v4 para autenticar solicitações do Amazon S3

A AWS CLI versão 2 não oferece suporte a algoritmos de assinatura anteriores para autenticar criptograficamente as solicitações de serviço enviadas aos 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 é compatível. Você não pode configurar a versão da assinatura. Todos os buckets pré-assinados do Amazon S3 URLs agora usam somente SigV4 e têm uma duração máxima de expiração de uma semana.

AWS CLI a versão 2 é mais consistente com os parâmetros de paginação

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.

AWS CLI a versão 2 fornece códigos de retorno mais consistentes em todos os comandos

A AWS CLI versão 2 é mais consistente em todos os comandos e retorna adequadamente um código de saída apropriado em comparação com a AWS CLI versã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 no AWS CLI.

Se você depende 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 recebendo os valores esperados.