Caricare AWS CLI i parametri da un file - 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à.

Caricare AWS CLI i parametri da un file

Alcuni parametri si aspettano nomi di file come argomenti, grazie ai quali l'AWS CLI carica i dati. Altri parametri consentono di specificare il valore del parametro come testo digitato sulla riga di comando o letto da un file. Se un file è obbligatorio o facoltativo, è necessario codificare correttamente il file in modo che l'AWS CLI possa comprenderlo. La codifica del file deve corrispondere alle impostazioni locali predefinite del sistema di lettura. È possibile determinarlo utilizzando il metodo Pythonlocale.getpreferredencoding().

Nota

Per impostazione predefinita, Windows PowerShell emette il testo come UTF-16, il che è in conflitto con la codifica UTF-8 utilizzata dai file JSON e da molti sistemi Linux. Si consiglia di utilizzarlo -Encoding ascii con i PowerShell Out-File comandi per assicurarsi che siano in grado di leggere il file risultante. AWS CLI

Come caricare i parametri da un file

In alcuni casi, ad esempio quando il parametro è una stringa JSON complessa, è utile caricare il valore di un parametro da un file anziché provare a digitarlo come valore di parametro della riga di comando. Per specificare un file che contiene il valore, specifica un URL di file nel formato seguente:

file://complete/path/to/file
  • I primi due caratteri di barra" /" fanno parte della specifica. Se il percorso richiesto inizia con "/", il risultato conterrà tre caratteri di barra: file:///folder/file.

  • L'URL fornisce il percorso del file con il contenuto del parametro effettivo.

  • Quando usate file con spazi o caratteri speciali, seguite le regole di virgolette ed escape previste dal vostro terminale.

I percorsi di file specificati nei seguenti esempi vengono interpretati come relativi alla directory di lavoro corrente.

Linux or macOS
// Read from a file in the current directory $ aws ec2 describe-instances --filters file://filter.json // Read from a file in /tmp $ aws ec2 describe-instances --filters file:///tmp/filter.json // Read from a file with a filename with whitespaces $ aws ec2 describe-instances --filters 'file://filter content.json'
Windows command prompt
// Read from a file in C:\temp C:\> aws ec2 describe-instances --filters file://C:\temp\filter.json // Read from a file with a filename with whitespaces C:\> aws ec2 describe-instances --filters "file://C:\temp\filter content.json"

L'opzione del prefisso file:// supporta le espansioni in stile Unix, tra cui "~/", "./" e "../". In Windows l'espressione "~/" si espande alla directory utente, archiviata nella variabile di ambiente %USERPROFILE%. Ad esempio, in Windows 10 in genere è presente una directory utente in C:\Users\UserName\.

Nei documenti JSON incorporati come valore di un altro documento JSON deve essere comunque inserito il carattere di escape.

$ aws sqs create-queue --queue-name my-queue --attributes file://attributes.json

attributes.json

{ "RedrivePolicy": "{\"deadLetterTargetArn\":\"arn:aws:sqs:us-west-2:0123456789012:deadletter\", \"maxReceiveCount\":\"5\"}" }

File binari

Per i comandi che richiedono dati binari come parametro, è necessario specificare che i dati sono contenuto binario mediante il prefisso fileb://. I comandi che accettano i dati binari includono:

  • aws ec2 run-instances:--user-dataparametro.

  • aws s3api put-object:--sse-customer-keyparametro.

  • aws kms decrypt:--ciphertext-blobparametro.

L'esempio seguente genera una chiave AES binaria a 256 bit utilizzando uno strumento da riga di comando Linux, quindi la fornisce ad Amazon S3 per crittografare un file caricato lato server.

$ dd if=/dev/urandom bs=1 count=32 > sse.key 32+0 records in 32+0 records out 32 bytes (32 B) copied, 0.000164441 s, 195 kB/s $ aws s3api put-object \ --bucket my-bucket \ --key test.txt \ --body test.txt \ --sse-customer-key fileb://sse.key \ --sse-customer-algorithm AES256 { "SSECustomerKeyMD5": "iVg8oWa8sy714+FjtesrJg==", "SSECustomerAlgorithm": "AES256", "ETag": "\"a6118e84b76cf98bf04bbe14b6045c6c\"" }

Per un altro esempio di riferimento a un file contenente parametri in formato JSON, vedi. Allega una policy gestita da IAM a un utente