Nuove funzionalità e modifiche nella AWS CLI versione 2 - AWS Command Line Interface

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Nuove funzionalità e modifiche nella AWS CLI versione 2

Questo argomento descrive le nuove funzionalità e i cambiamenti di comportamento tra la AWS CLI versione 1 e AWS CLI la versione 2. Queste modifiche potrebbero richiedere l'aggiornamento degli script o dei comandi per ottenere lo stesso comportamento nella versione 2 come nella versione 1.

AWS CLI nuove funzionalità della versione 2

La AWS CLI versione 2 è la versione principale più recente di AWS CLI e supporta tutte le funzionalità più recenti. Alcune funzionalità introdotte nella versione 2 non sono state trasferite alla versione 1 ed è necessario eseguire l'aggiornamento per accedere a tali funzionalità. Le caratteristiche principali comprendono:

Interprete Python non necessario

La AWS CLI versione 2 non richiede un'installazione separata di Python. Include una versione incorporata.

Maghi

È possibile utilizzare una procedura guidata con la AWS CLI versione 2. La procedura guidata guida l'utente nella creazione di determinati comandi.

IAMAutenticazione Identity Center

Se l'organizzazione utilizza AWS IAM Identity Center (IAMIdentity Center), gli utenti possono accedere ad Active Directory, a una directory IAM Identity Center integrata o a un altro IdP connesso a IAM Identity Center. Vengono quindi mappati su un ruolo AWS Identity and Access Management (IAM) che consente di eseguire AWS CLI comandi.

Richiesta automatica

Se abilitata, la AWS CLI versione 2 può richiedere comandi, parametri e risorse quando si esegue un aws comando.

Esegui AWS CLI da immagini ufficiali di Amazon ECR Public o Docker

L'immagine Docker ufficiale di AWS CLI fornisce isolamento, portabilità e sicurezza che supporta e mantiene AWS direttamente. In questo modo, puoi utilizzare la AWS CLI versione 2 in un ambiente basato su container senza dover gestire personalmente l'installazione.

Pager lato client

La AWS CLI versione 2 prevede l'uso di un programma pager lato client per l'output. Per impostazione predefinita, questa funzionalità è attivata e restituisce tutto l'output tramite il programma pager predefinito del sistema operativo.

aws configure import

Importa .csv le credenziali generate da. AWS Management Console Viene importato un .csv file con il nome del profilo corrispondente al nome IAM utente.

aws configure list-profiles

Elenca i nomi di tutti i profili configurati.

Formato di output dello stream YAML

Il yaml-stream formato yaml and sfrutta il formato fornendo YAMLal contempo una visualizzazione più reattiva di set di dati di grandi dimensioni mediante lo streaming dei dati all'utente. È possibile iniziare a visualizzare e utilizzare YAML i dati prima del download dell'intera query.

Nuovi ddb comandi di alto livello per DynamoDB

La AWS CLI versione 2 include i comandi Amazon ddb putddb selectDynamoDB di alto livello e. Questi comandi forniscono un'interfaccia semplificata per l'inserimento di elementi nelle tabelle DynamoDB e la ricerca in una tabella o in un indice DynamoDB.

aws logs tail

La AWS CLI versione 2 include un aws logs tail comando personalizzato che traccia i log per un gruppo Amazon CloudWatch Logs. Per impostazione predefinita, il comando restituisce i log di tutti i flussi di CloudWatch Logs associati degli ultimi dieci minuti.

È stato aggiunto il supporto per i metadati per i comandi di alto livello s3

La AWS CLI versione 2 aggiunge il --copy-props parametro ai comandi di alto livellos3. Con questo parametro, puoi configurare metadati e tag aggiuntivi per Amazon Simple Storage Service (Amazon S3).

AWS_REGION

La AWS CLI versione 2 ha una variabile di ambiente AWS SDK compatibile chiamata. AWS_REGION Questa variabile specifica a chi Regione AWS inviare le richieste. Sostituisce la variabile di AWS_DEFAULT_REGION ambiente, che è applicabile solo in. AWS CLI

Interruzione delle modifiche tra la AWS CLI versione 1 e AWS CLI la versione 2

Questa sezione descrive tutte le modifiche di comportamento tra la AWS CLI versione 1 e la AWS CLI versione 2. Queste modifiche potrebbero richiedere l'aggiornamento degli script o dei comandi per ottenere lo stesso comportamento nella versione 2 come nella versione 1.

Variabile di ambiente aggiunta per impostare la codifica dei file di testo

Per impostazione predefinita, i file di testo Blob utilizzano la stessa codifica della versione locale installata. Poiché la AWS CLI versione 2 utilizza una versione incorporata di Python, le variabili di PYTHONIOENCODING ambiente PYTHONUTF8 e non sono supportate. Per impostare la codifica per i file di testo in modo che sia diversa dalle impostazioni locali, utilizzare la variabile di ambiente AWS_CLI_FILE_ENCODING. L'esempio seguente imposta l'apertura AWS CLI di file di testo UTF-8 in Windows.

AWS_CLI_FILE_ENCODING=UTF-8

Per ulteriori informazioni, consulta Variabili di ambiente per configurare AWS CLI.

Per impostazione predefinita, i parametri binari vengono passati come stringhe con codifica Base64

In AWS CLI, alcuni comandi richiedevano stringhe con codifica base64, mentre altri richiedevano stringhe di byte con codifica a 8. UTF Nella AWS CLI versione 1, il passaggio di dati tra due tipi di stringhe codificate richiedeva spesso un'elaborazione intermedia. La AWS CLI versione 2 rende la gestione dei parametri binari più coerente, il che aiuta a passare i valori da un comando all'altro in modo più affidabile.

Per impostazione predefinita, la AWS CLI versione 2 passa tutti i parametri binari di input e output binari come stringa blobs con codifica Base64 (binary large object). Per ulteriori informazioni, consulta Blob.

Per ripristinare il comportamento della AWS CLI versione 1, utilizzate la configurazione del file o il cli_binary_format parametro. --cli-binary-format

Gestione migliorata in Amazon S3 delle proprietà e dei tag dei file per copie multiparte

Quando si utilizzano i comandi della AWS CLI versione 1 nello spazio dei aws s3 nomi per copiare un file da una posizione del bucket S3 a un'altra e tale operazione utilizza la copia in più parti, nessuna proprietà del file dall'oggetto di origine viene copiata nell'oggetto di destinazione.

Per impostazione predefinita, i comandi corrispondenti nella AWS CLI versione 2 trasferiscono tutti i tag e alcune proprietà dalla copia di origine a quella di destinazione. Rispetto alla AWS CLI versione 1, ciò può comportare un maggior numero di AWS API chiamate verso l'endpoint Amazon S3. Per modificare il comportamento predefinito dei s3 comandi nella AWS CLI versione 2, usa il --copy-props parametro.

Per ulteriori informazioni, consulta Proprietà e tag dei file nelle copie in più parti.

Nessun recupero automatico di http:// o per i parametri https:// URLs

La AWS CLI versione 2 non esegue un'GEToperazione quando il valore di un parametro inizia con http:// o https:// e non utilizza il contenuto restituito come valore del parametro. Di conseguenza, l'opzione della riga di comando associata cli_follow_urlparam viene rimossa dalla AWS CLI versione 2.

Se è necessario recuperare URL e passare il URL contenuto in un valore di parametro, si consiglia di utilizzare curl uno strumento simile per scaricare il contenuto di in un file locale. URL Quindi, utilizzate la file:// sintassi per leggere il contenuto di quel file e usatelo come valore del parametro.

Ad esempio, il comando seguente non tenta più di recuperare il contenuto della pagina trovata all'indirizzo http://www.example.com e passare tali contenuto come parametro. Invece, passa la stringa di testo letterale https://example.com come parametro.

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

Se è necessario recuperare e utilizzare il contenuto di un Web URL come parametro, è possibile effettuare le seguenti operazioni nella versione 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

Nell'esempio precedente, il -o parametro indica di curl salvare il file nella cartella corrente con lo stesso nome del file sorgente. Il secondo comando recupera il contenuto di tale file scaricato e lo passa come il valore di --policy-document.

Pager utilizzato per impostazione predefinita per tutti gli output

Per impostazione predefinita, la AWS CLI versione 2 restituisce tutto l'output tramite il programma pager predefinito del sistema operativo. Questo programma è il lessprogramma su Linux o macOS e il moreprogramma su Windows. Questo può aiutarti a navigare tra una grande quantità di output di un servizio visualizzando l'output una pagina alla volta.

È possibile configurare la AWS CLI versione 2 per utilizzare un programma di paging diverso o non utilizzarne affatto. Per ulteriori informazioni, consulta Pager lato client.

I valori di output del timestamp sono standardizzati nel formato 8601 ISO

Per impostazione predefinita, la AWS CLI versione 2 restituisce tutti i valori di risposta del timestamp nel ISO formato 8601. Nella AWS CLI versione 1, i comandi restituivano i valori del timestamp nel formato restituito dalla HTTP API risposta, che poteva variare da servizio a servizio.

Per visualizzare i timestamp nel formato restituito dalla HTTP API risposta, utilizzate il wire valore nel file. config Per ulteriori informazioni, consulta cli_timestamp_format.

Migliore gestione delle CloudFormation distribuzioni che non comportano modifiche

Per impostazione predefinita, nella AWS CLI versione 1, se si distribuisce un AWS CloudFormation modello che non comporta modifiche, AWS CLI restituisce un codice di errore non riuscito. Ciò causa problemi se non lo consideri un errore e desideri che lo script continui. È possibile ovviare a questo problema nella AWS CLI versione 1 aggiungendo il flag-–no-fail-on-empty-changeset, che restituisce0.

Poiché si tratta di un caso d'uso comune, la AWS CLI versione 2 restituisce per impostazione predefinita un codice di uscita corretto, vale a dire 0 quando non vi sono modifiche causate da una distribuzione e l'operazione restituisce un set di modifiche vuoto.

Per ripristinare il comportamento originale, aggiungi il flag. --fail-on-empty-changeset

Comportamento predefinito modificato per l'endpoint Amazon S3 regionale per regione us-east-1

Quando configuri la AWS CLI versione 1 per utilizzare la us-east-1 regione, AWS CLI utilizza l's3.amazonaws.comendpoint globale che è fisicamente ospitato nella regione. us-east-1 La AWS CLI versione 2 utilizza il vero endpoint regionale s3.us-east-1.amazonaws.com quando viene specificata quella regione. Per forzare la AWS CLI versione 2 a utilizzare l'endpoint globale, puoi impostare la Regione per un comando su. aws-global

È stato modificato il comportamento predefinito per gli endpoint regionali AWS STS

Per impostazione predefinita, la AWS CLI versione 2 invia tutte le AWS Security Token Service (AWS STS) API richieste all'endpoint regionale per quello attualmente configurato. Regione AWS

Per impostazione predefinita, la AWS CLI versione 1 invia AWS STS le richieste all' AWS STS endpoint globale. È possibile controllare questo comportamento predefinito nella versione 1 utilizzando l'sts_regional_endpointsimpostazione.

ecr get-loginrimosso e sostituito con ecr get-login-password

La AWS CLI versione 2 sostituisce il comando aws ecr get-login con il aws ecr get-login-password comando che migliora l'integrazione automatica con l'autenticazione dei contenitori.

Il comando aws ecr get-login-password riduce il rischio di esporre le credenziali nell'elenco dei processi, nella cronologia della shell o in altri file di log. Migliora inoltre la compatibilità con il docker login comando per una migliore automazione.

Il aws ecr get-login-password comando è disponibile nella AWS CLI versione 1.17.10 e successive e nella AWS CLI versione 2. Il aws ecr get-login comando precedente è ancora disponibile nella AWS CLI versione 1 per motivi di compatibilità con le versioni precedenti.

Con il aws ecr get-login-password comando, è possibile sostituire il seguente codice che recupera una password.

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

Per ridurre il rischio di esporre la password alla cronologia o ai log della shell, utilizza invece il seguente comando di esempio. In questo esempio, la password viene reindirizzata direttamente al comando docker login, dove viene assegnata al parametro password tramite l'opzione --password-stdin.

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

Per ulteriori informazioni, consulta aws ecr get-login-passwordla Guida di riferimento della AWS CLI versione 2.

AWS CLI il supporto della versione 2 per i plugin sta cambiando

Il supporto per i plugin nella AWS CLI versione 2 è completamente provvisorio e ha lo scopo di aiutare gli utenti a migrare dalla AWS CLI versione 1 fino al rilascio di un'interfaccia plugin stabile e aggiornata. Non ci sono garanzie che un particolare plug-in o l'interfaccia del AWS CLI plug-in siano supportati nelle future versioni della AWS CLI versione 2. Se ti affidi ai plugin, assicurati di collegarti a una versione particolare del plug-in AWS CLI e di testarne la funzionalità quando esegui l'aggiornamento.

Per abilitare il supporto plugin, crea una sezione [plugins] in ~/.aws/config.

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

Nella [plugins] sezione, definisci la cli_legacy_plugin_path variabile e imposta il suo valore sul percorso dei pacchetti del sito Python in cui si trova il modulo del plugin. Quindi, puoi configurare un plugin fornendo un nome per il plugin (plugin-name) e il nome del file del modulo Python (plugin-module) che contiene il codice sorgente del tuo plugin. AWS CLI Carica ogni plugin importandone plugin-module e chiamando la sua funzione. awscli_initialize

Il supporto per gli alias nascosti è stato rimosso

AWS CLI la versione 2 non supporta più i seguenti alias nascosti che erano supportati nella versione 1.

Nella tabella seguente, la prima colonna mostra il servizio, il comando e il parametro che funzionano in tutte le versioni, inclusa la AWS CLI versione 2. La seconda colonna mostra l'alias che non funziona più nella AWS CLI versione 2.

Servizio, comando e parametro funzionanti 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 di archiviazione. describe-tape-archives.tape-arns tape-ar-ns
gateway di archiviazione. describe-vtl-devices. vtl-device-arns vtl-device-ar-ns
gateway di archiviazione. describe-cached-iscsi-volumes.volume-arns volume-ar-ns
gateway di archiviazione. describe-stored-iscsi-volumes.volume-arns volume-ar-ns
route53domains.view-billing.start-time rapida
dispiegare. create-deployment-group.ec2-tag-set ec-2-tag-set
dispiegare. list-application-revisions.s3-bucket s-3-bucket
dispiegare. list-application-revisions.prefisso a 3 chiavi s-3-key-prefix
distribuire. update-deployment-group.ec2-tag-set ec-2-tag-set
obiettivo. enable-mfa-device.codice di autenticazione1 authentication-code-1
io. enable-mfa-device.codice di autenticazione2 authentication-code-2
io. resync-mfa-device.codice di autenticazione1 authentication-code-1
io. resync-mfa-device.codice di autenticazione2 authentication-code-2
importare/esportare. get-shipping-label.via 1 street-1
importazione/esportazione. get-shipping-label.strada 2 street-2
importazione/esportazione. get-shipping-label.strada 3 street-3
lambda.publish-version.code-sha256 code-sha-256
vela leggera. import-key-pair. public-key-base64 public-key-base-64
opsworks.register-volume.ec2-volume-id ec-2-volume-id

L'impostazione del file di api_versions configurazione non è supportata

La AWS CLI versione 2 non supporta la chiamata a versioni precedenti del AWS servizio APIs utilizzando l'impostazione del file di api_versions configurazione. Tutti AWS CLI i comandi ora richiamano la versione più recente del servizio APIs attualmente supportata dall'endpoint.

AWS CLI la versione 2 utilizza solo Signature v4 per autenticare le richieste Amazon S3

La AWS CLI versione 2 non supporta algoritmi di firma precedenti per autenticare crittograficamente le richieste di servizio inviate agli endpoint Amazon S3. Questa firma avviene automaticamente con ogni richiesta Amazon S3 ed è supportato solo il processo di firma Signature Version 4. Non puoi configurare la versione della firma. Tutti i bucket Amazon S3 predefiniti URLs ora utilizzano solo SigV4 e hanno una durata di scadenza massima di una settimana.

AWS CLI la versione 2 è più coerente con i parametri di paging

Nella AWS CLI versione 1, se si specificano i parametri di impaginazione sulla riga di comando, l'impaginazione automatica viene disattivata come previsto. Tuttavia, quando si specificano i parametri di impaginazione utilizzando un file con il ‐‐cli-input-json parametro, l'impaginazione automatica non è stata disattivata, il che potrebbe causare un output imprevisto. La AWS CLI versione 2 disattiva l'impaginazione automatica indipendentemente dal modo in cui vengono forniti i parametri.

AWS CLI la versione 2 fornisce codici di ritorno più coerenti per tutti i comandi

La AWS CLI versione 2 è più coerente tra tutti i comandi e restituisce correttamente un codice di uscita appropriato rispetto alla AWS CLI versione 1. Abbiamo anche aggiunto i codici di uscita 252, 253 e 254. Per ulteriori informazioni sui codici di uscita, vedereCodici di restituzione dal AWS CLI.

Se dipendi dal modo in cui la AWS CLI versione 1 utilizza i valori del codice di ritorno, ti consigliamo di controllare i codici di uscita per assicurarti di ottenere i valori previsti.