Caricamento dei parametri da un file in AWS CLI - AWS Command Line Interface

Questa documentazione è valida AWS CLI solo per la versione 1. Per la documentazione relativa alla versione 2 di AWS CLI, consulta la Guida per l'utente della versione 2.

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à.

Caricamento dei parametri da un file in AWS CLI

Alcuni parametri prevedono i nomi dei file come argomenti, dai quali vengono AWS CLI caricati i dati. Altri parametri consentono di specificare il valore del parametro come testo digitato sulla riga di comando o letto da un file. Indipendentemente dal fatto che un file sia obbligatorio o facoltativo, è necessario codificarlo correttamente in modo che AWS CLI possano 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 restituisce il testo come UTF -16, il che è in conflitto con la codifica UTF -8 utilizzata dai JSON file e da molti sistemi Linux. Si consiglia di utilizzarlo -Encoding ascii con i PowerShell Out-File comandi per assicurarsi che siano in AWS CLI grado di leggere il file risultante.

Come caricare i parametri da un file

A volte è conveniente caricare il valore di un parametro da un file anziché provare a digitarlo tutto come valore di parametro della riga di comando, ad esempio quando il parametro è una JSON stringa complessa. Per specificare un file che contiene il valore, specificate un file URL 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.

  • URLfornisce il percorso del file che contiene il contenuto effettivo dei parametri.

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

Nota

Questo comportamento è disabilitato automaticamente per i parametri che già prevedono unURL, ad esempio il parametro che identifica un modello. AWS CloudFormation URL Puoi anche disabilitare questo comportamento disabilitando l'cli_follow_urlparamimpostazione nel tuo AWS CLI file di configurazione.

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\.

È comunque necessario evitare JSON i documenti incorporati come valore di un altro JSON documento.

$ 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 AES chiave 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 amzn-s3-demo-bucket \ --key test.txt \ --body test.txt \ --sse-customer-key fileb://sse.key \ --sse-customer-algorithm AES256 { "SSECustomerKeyMD5": "iVg8oWa8sy714+FjtesrJg==", "SSECustomerAlgorithm": "AES256", "ETag": "\"a6118e84b76cf98bf04bbe14b6045c6c\"" }

File remoti

Supporta AWS CLI anche il caricamento dei parametri da un file ospitato su Internet con un or. http:// https:// URL L'esempio seguente fa riferimento a un file archiviato in un bucket Amazon S3. Questo consente di accedere ai file di parametri da qualsiasi computer, ma richiede che il container sia accessibile pubblicamente.

$ aws ec2 run-instances \ --image-id ami-12345678 \ --block-device-mappings http://amzn-s3-demo-bucket.s3.amazonaws.com/filename.json

L'esempio precedente presuppone che il file filename.json contenga i seguenti dati. JSON

[ { "DeviceName": "/dev/sdb", "Ebs": { "VolumeSize": 20, "DeleteOnTermination": false, "VolumeType": "standard" } } ]

Per un altro esempio di riferimento a un file contenente parametri JSON -formatted, vedere. Allegare una politica IAM gestita a un utente