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. In seguito a queste modifiche, potrebbe essere necessario aggiornare gli script o i comandi per ottenere nella versione 2 un comportamento che era previsto 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 compatibili con la versione 1 ed è necessario eseguire l’aggiornamento per accedere a tali funzionalità. Le caratteristiche principali comprendono:

Non è necessario un interprete Python

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

Procedure guidate

È possibile utilizzare una procedura guidata con la AWS CLI versione 2. La procedura guidata illustra come costruire determinati comandi.

Autenticazione in Centro identità IAM

Se la tua organizzazione utilizza AWS IAM Identity Center (IAM Identity Center), i tuoi utenti possono accedere ad Active Directory, a una directory IAM Identity Center integrata o a un altro IdP connesso a IAM Identity Center. Quindi, vengono mappati su un ruolo AWS Identity and Access Management (IAM) che consente di eseguire AWS CLI comandi.

Prompt automatico

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

Esecuzione delle immagini ufficiali di Amazon ECR Public o Docker per la AWS CLI

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 attraverso il programma pager predefinito del sistema operativo.

aws configure import

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

aws configure list-profiles

Elenca i nomi di tutti i profili che hai configurato.

Formato di output dei flussi YAML

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

Nuovi comandi ddb 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 inserire elementi nelle tabelle DynamoDB ed eseguire ricerche 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 dei metadati per i comandi s3 di alto livello

La AWS CLI versione 2 aggiunge il --copy-props parametro ai comandi di alto livello. s3 Questo parametro consente di 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 compatibile con SDK chiamata. AWS_REGION Questa variabile specifica a cui Regione AWS inviare le richieste. Sostituisce la variabile di ambiente AWS_DEFAULT_REGION, che è applicabile solo nella AWS CLI.

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

Questa sezione descrive tutte le modifiche di comportamento tra la AWS CLI versione 1 e la AWS CLI versione 2. In seguito a queste modifiche, potrebbe essere necessario aggiornare gli script o i comandi per ottenere nella versione 2 un comportamento che era previsto nella versione 1.

Aggiunta di una variabile di ambiente per impostare la codifica dei file di testo

Per impostazione predefinita, i file di testo per Blob utilizzano la stessa codifica delle impostazioni locali installate. 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 Configurazione delle variabili d’ambiente per AWS CLI.

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

In AWS CLI, alcuni comandi richiedevano stringhe di byte con codifica in base64, mentre altri richiedevano stringhe di byte con codifica UTF-8. 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 delle proprietà e dei tag dei file per copie in più parti in Amazon S3

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 chiamate AWS API all'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 un URL e passare il contenuto dell’URL come valore di un parametro, è consigliabile utilizzare curl o uno strumento simile per scaricare il contenuto dell’URL in un file locale. Quindi puoi utilizzare la sintassi file:// per leggere il contenuto di quel file e utilizzarlo 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

Per recuperare e utilizzare il contenuto di un URL Web come parametro, puoi procedere nel modo seguente 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 parametro -o indica a curl di salvare il file nella cartella corrente con lo stesso nome del file di origine. 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 tutto l’output

Per impostazione predefinita, la AWS CLI versione 2 restituisce tutto l'output tramite il programma pager predefinito del sistema operativo. Questo programma è less in Linux o macOS e more in Windows. Può essere utile per navigare in grandi 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 sul formato ISO 8601

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

Per visualizzare i timestamp nel formato restituito dalla risposta dell’API HTTP, aggiungi il valore wire 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 CloudFormation modello che non comporta modifiche, AWS CLI restituisce un codice di errore non riuscito. Questo causa problemi se non lo consideri un errore e desideri che il tuo 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.

Modifica del comportamento predefinito per l’endpoint Amazon S3 regionale per la Regione us-east-1

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

Comportamento predefinito modificato per gli endpoint regionali AWS STS

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

Per impostazione predefinita, qualsiasi versione precedente della 1.42.0 AWS CLI versione 1 invia AWS STS richieste all' AWS STS endpoint globale. È possibile controllare questo comportamento predefinito nella versione 1 utilizzando l’impostazione sts_regional_endpoints.

Tutte le versioni successive o successive 1.42.0 utilizzano l'endpoint regionale come impostazione predefinita. Se si esegue la migrazione alla AWS CLI versione 2 da queste versioni più recenti, questo comportamento rimane invariato.

ecr get-login rimosso 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 anche la compatibilità con il comando docker login per migliorare l’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 comando aws ecr get-login-password è possibile sostituire il codice seguente 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-password nella Guida di riferimento alla versione 2 della AWS CLI .

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

Rimozione del supporto per gli alias nascosti

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 che funzionano 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
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 configurazione api_versions non è supportata

La AWS CLI versione 2 non supporta la chiamata a versioni precedenti del AWS servizio APIs utilizzando l'impostazione del file api_versions di 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. Questo processo di firma avviene automaticamente a ogni richiesta Amazon S3 ed è supportato solo il processo di firma Signature Version 4. Non è possibile 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. Quando invece si specificano i parametri di paginazione utilizzando un file con il parametro ‐‐cli-input-json, la paginazione automatica non viene disattivata ed è possibile che venga generato 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. Sono anche stati aggiunti i codici di uscita 252, 253 e 254. Per ulteriori informazioni sui codici di uscita, consulta Codici restituiti dalla riga di comando in 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.