Utilizzo della sintassi abbreviata in AWS CLI - AWS Command Line Interface

Utilizzo della sintassi abbreviata in AWS CLI

AWS Command Line Interface (AWS CLI) può accettare molti parametri delle opzioni in formato JSON. Tuttavia, può essere noioso immettere lunghi elenchi o strutture JSON nella riga di comando. Per agevolare l'operazione, AWS CLI supporta anche una sintassi abbreviata che consente una rappresentazione più semplice dei parametri delle opzioni rispetto a quella che prevede l'utilizzo del formato JSON completo.

Parametri della struttura con coppie chiave-valore

La sintassi abbreviata nell'AWS CLI rende più semplice per gli utenti immettere parametri piatti (strutture non nidificate). Il formato è un elenco separato da virgole di coppie chiave-valore. Assicurati di utilizzare le regole di citazione e di escape appropriate per il tuo terminale poiché la sintassi abbreviata è costituita da stringhe.

Linux or macOS
--option key1=value1,key2=value2,key3=value3

È l’equivalente dell’esempio seguente in formato JSON.

--option '{"key1":"value1","key2":"value2","key3":"value3"}'
Windows
--option "key1=value1,key2=value2,key3=value3"

È l’equivalente dell’esempio seguente in formato JSON.

--option '{"key1":"value1","key2":"value2","key3":"value3"}'

Le coppie chiave-valore separate da virgole non devono contenere spazi vuoti. Di seguito è riportato un esempio del comando update-table di Amazon DynamoDB con l’opzione --provisioned-throughput specificata in formato abbreviato.

$ aws dynamodb update-table \ --provisioned-throughput ReadCapacityUnits=15,WriteCapacityUnits=10 \ --table-name MyDDBTable

È l'equivalente dell'esempio seguente in formato JSON.

$ aws dynamodb update-table \ --provisioned-throughput '{"ReadCapacityUnits":15,"WriteCapacityUnits":10}' \ --table-name MyDDBTable

Caricamento di un file come valore di sintassi abbreviata

Quando un valore è grande o complesso, è spesso più facile caricarlo come valore. Per caricare un file come valore di sintassi abbreviata, la formattazione cambierà leggermente. Invece di key=value, utilizzerai l’operatore @= al posto dell’operatore =. @= significa per la AWS CLI che il valore deve essere letto come un percorso di file e non come una stringa. Quando si caricano dei file in sintassi abbreviata, si applicano le normali regole di formattazione dei file AWS CLI. L’esempio seguente mostra una coppia chiave-valore che carica un file per il relativo valore.

Linux or macOS
--option key@=file://template.txt
Windows
--option "key1@=file://template.txt"

L’esempio seguente mostra il caricamento di un file di certificato per il comando aws rolesanywhere create-trust-anchor.

$ aws rolesanywhere create-trust-anchor --name TrustAnchor \ --source sourceData={x509CertificateData@=file://root-ca.crt},sourceType="CERTIFICATE_BUNDLE" \ --enabled

Utilizzo della sintassi abbreviata con l'AWS CLI

Puoi specificare i parametri di input in formato elenco in due modi: JSON o abbreviato. La sintassi abbreviata di AWS CLI è stata progettata per rendere più facile il trasferimento di elenchi di numeri, di stringhe o di strutture non nidificate.

Qui viene mostrato il formato di base,in cui i valori nell'elenco sono separati da un solo spazio.

--option value1 value2 value3

È l'equivalente dell'esempio seguente in formato JSON.

--option '[value1,value2,value3]'

Come accennato in precedenza, è possibile specificare un elenco di numeri, un elenco di stringhe o un elenco di strutture non nidificate in forato abbreviato. Di seguito viene riportato un esempio del comando stop-instances per Amazon Elastic Compute Cloud (Amazon EC2), dove il parametro di input (elenco di stringhe) per l’opzione --instance-ids viene specificato in formato abbreviato.

$ aws ec2 stop-instances \ --instance-ids i-1486157a i-1286157c i-ec3a7e87

È l'equivalente dell'esempio seguente in formato JSON.

$ aws ec2 stop-instances \ --instance-ids '["i-1486157a","i-1286157c","i-ec3a7e87"]'

L’esempio successivo mostra il comando create-tags di Amazon EC2 che utilizza un elenco di strutture non nidificate per l’opzione --tags. L'opzione --resources specifica l'ID dell'istanza da contrassegnare.

$ aws ec2 create-tags \ --resources i-1286157c \ --tags Key=My1stTag,Value=Value1 Key=My2ndTag,Value=Value2 Key=My3rdTag,Value=Value3

È l'equivalente dell'esempio seguente in formato JSON. Il parametro JSON viene scritto su più righe per maggiore leggibilità.

$ aws ec2 create-tags \ --resources i-1286157c \ --tags '[ {"Key": "My1stTag", "Value": "Value1"}, {"Key": "My2ndTag", "Value": "Value2"}, {"Key": "My3rdTag", "Value": "Value3"} ]'