AWS CLI scheletri e file di input nel AWS CLI - AWS Command Line Interface

Questa documentazione è valida AWS CLI solo per la versione 1.

Abbiamo annunciato l' end-of-supportimminente rilascio della AWS CLI versione 1. Ti consigliamo di migrare alla AWS CLI versione 2. Per date, dettagli aggiuntivi e informazioni su come effettuare la migrazione, consulta l'annuncio. 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à.

AWS CLI scheletri e file di input nel AWS CLI

La maggior parte dei AWS CLI comandi accetta l'importazione di input di parametri da un file. Questi modelli possono essere generati utilizzando l’opzione generate-cli-skeleton e quindi importati utilizzando i parametri --cli-input-json.

Informazioni sugli AWS CLI scheletri e sui file di input

La maggior parte dei comandi AWS Command Line Interface (AWS CLI) supporta la possibilità di accettare input di parametri da un file utilizzando il --cli-input-yaml parametro --cli-input-json .

Questi stessi comandi utilizzano il parametro --generate-cli-skeleton per generare un file in formato JSON con tutti i parametri che può essere modificato e compilato. Quindi puoi eseguire il comando con il parametro --cli-input-json e scegliere il file compilato.

Importante

AWS CLI Per verificare se un comando specifico supporta questi parametri, esegui il helpcomando relativo al comando che desideri utilizzare o consulta la guida di riferimento per la AWS CLI versione 1, la guida di riferimento per la .

Il comando --generate-cli-skeleton genera e visualizza un modello di parametri che è possibile personalizzare e utilizzare come input per un comando. Il modello generato include tutti i parametri supportati dal comando.

Il parametro --generate-cli-skeleton accetta uno dei seguenti valori:

  • input - Il modello generato include tutti i parametri di input formattati come JSON. Si tratta del valore di default.

  • output - Il modello generato include tutti i parametri di output formattati come JSON.

Poiché AWS CLI è essenzialmente un «wrapper» attorno all'API del servizio, il file skeleton si aspetta che tu faccia riferimento a tutti i parametri tramite i nomi dei parametri API sottostanti. Probabilmente è diverso dal nome del parametro. AWS CLI Ad esempio, un AWS CLI parametro denominato user-name potrebbe essere mappato al parametro API del AWS servizio denominato UserName (notate le maiuscole alterate e il trattino mancante). Ti consigliamo di utilizzare l'opzione --generate-cli-skeleton per generare il modello con i nomi di parametro "corretti" per evitare errori. Puoi fare riferimento alla Guida di riferimento delle API per il servizio per visualizzare i nomi dei parametri previsti. Puoi eliminare dal modello tutti i parametri che non sono obbligatori e per i quali non desideri fornire un valore.

Ad esempio, se esegui questo comando, viene generato il modello di parametri per il comando run-instances di Amazon Elastic Compute Cloud (Amazon EC2).

JSON

Nell'esempio seguente viene illustrato come generare un modello formattato in JSON utilizzando il valore predefinito (input) per il parametro --generate-cli-skeleton.

$ aws ec2 run-instances --generate-cli-skeleton
{ "DryRun": true, "ImageId": "", "MinCount": 0, "MaxCount": 0, "KeyName": "", "SecurityGroups": [ "" ], "SecurityGroupIds": [ "" ], "UserData": "", "InstanceType": "", "Placement": { "AvailabilityZone": "", "GroupName": "", "Tenancy": "" }, "KernelId": "", "RamdiskId": "", "BlockDeviceMappings": [ { "VirtualName": "", "DeviceName": "", "Ebs": { "SnapshotId": "", "VolumeSize": 0, "DeleteOnTermination": true, "VolumeType": "", "Iops": 0, "Encrypted": true }, "NoDevice": "" } ], "Monitoring": { "Enabled": true }, "SubnetId": "", "DisableApiTermination": true, "InstanceInitiatedShutdownBehavior": "", "PrivateIpAddress": "", "ClientToken": "", "AdditionalInfo": "", "NetworkInterfaces": [ { "NetworkInterfaceId": "", "DeviceIndex": 0, "SubnetId": "", "Description": "", "PrivateIpAddress": "", "Groups": [ "" ], "DeleteOnTermination": true, "PrivateIpAddresses": [ { "PrivateIpAddress": "", "Primary": true } ], "SecondaryPrivateIpAddressCount": 0, "AssociatePublicIpAddress": true } ], "IamInstanceProfile": { "Arn": "", "Name": "" }, "EbsOptimized": true }

Generazione e importazione di uno skeleton di comandi

Per generare e utilizzare un file scheletro dei parametri
  1. Eseguire il comando con il parametro --generate-cli-skeleton per produrre JSON e indirizzare l’output a un file per salvarlo.

    JSON
    $ aws ec2 run-instances --generate-cli-skeleton input > ec2runinst.json
  2. Apri il file scheletro dei parametri nell'editor di testo e rimuovi qualsiasi parametro non necessario. Ad esempio, è possibile eliminare il modello fino al seguente. Conferma che il file sia ancora nel formato JSON valido dopo aver rimosso gli elementi non necessari.

    JSON
    { "DryRun": true, "ImageId": "", "KeyName": "", "SecurityGroups": [ "" ], "InstanceType": "", "Monitoring": { "Enabled": true } }

    In questo esempio, il parametro DryRun viene lasciato impostato su true per utilizzare la funzionalità di test EC2. Questa funzione consente di testare in modo sicuro il comando senza creare o modificare effettivamente alcuna risorsa.

  3. Compila i valori rimanenti con valori appropriati per il tuo scenario. In questo esempio, forniamo il tipo di istanza, il nome della chiave, il gruppo di sicurezza e l'identificatore dell'Amazon Machine Image (AMI) da utilizzare. Questo esempio presuppone l'impostazione predefinita. Regione AWS L’AMI ami-dfc39aef è un’immagine a 64 bit Amazon Linux ospitata nella Regione us-west-2. Se utilizzi un'altra regione, devi trovare l'ID AMI corretto da utilizzare.

    JSON
    { "DryRun": true, "ImageId": "ami-dfc39aef", "KeyName": "mykey", "SecurityGroups": [ "my-sg" ], "InstanceType": "t2.micro", "Monitoring": { "Enabled": true } }
  4. Eseguire il comando con i parametri completati passando il file modello completato al parametro --cli-input-json utilizzando il prefisso file://. AWS CLI Interpreta il percorso in modo che sia relativo alla directory di lavoro corrente. L'esempio seguente AWS CLI cerca il file nella directory di lavoro corrente.

    JSON
    $ aws ec2 run-instances --cli-input-json file://ec2runinst.json
    A client error (DryRunOperation) occurred when calling the RunInstances operation: Request would have succeeded, but DryRun flag is set.

    L’errore in fase di test indica che la formattazione del JSON è corretta e i valori dei parametri sono validi. Se nell'output vengono segnalati altri problemi, correggerli e ripetere la fase precedente fino a quando non viene visualizzato il messaggio"Request would have succeeded".

  5. Ora puoi impostare il parametro DryRun su false per disabilitare il test.

    JSON
    { "DryRun": false, "ImageId": "ami-dfc39aef", "KeyName": "mykey", "SecurityGroups": [ "my-sg" ], "InstanceType": "t2.micro", "Monitoring": { "Enabled": true } }
  6. Eseguire il comando, e run-instances avvia effettivamente un’istanza Amazon EC2 e visualizza tutte le informazioni generate dal lancio corretto. Il formato dell'output è controllato dal parametro --output, separatamente dal formato del modello di parametro di input.

    JSON
    $ aws ec2 run-instances --cli-input-json file://ec2runinst.json --output json
    { "OwnerId": "123456789012", "ReservationId": "r-d94a2b1", "Groups": [], "Instances": [ ...

Combinazione di file di input e parametri della riga di comando

Un file di input può essere utilizzato per tutti i parametri o può essere combinato con i parametri specificati in AWS CLI. È possibile utilizzare questa funzionalità per le impostazioni che si riutilizzano frequentemente in un file di input, mantenendo le impostazioni individuali nel comando stesso.

Negli esempi seguenti aws ec2 run-instances combinano l’uso di un file di input e di parametri. Forniamo il tipo di istanza, il nome della chiave, il gruppo di sicurezza, l'identificatore dell'Amazon Machine Image (AMI) da utilizzare e assumiamo quello predefinito Regione AWS. L’AMI ami-dfc39aef è un’immagine a 64 bit Amazon Linux ospitata nella Regione us-west-2. Se utilizzi un'altra regione, devi trovare l'ID AMI corretto da utilizzare.

JSON

Contenuto del file JSON:

{ "ImageId": "ami-dfc39aef", "KeyName": "mykey", "SecurityGroups": [ "my-sg" ], "InstanceType": "t2.micro", "Monitoring": { "Enabled": true } }

L’esempio seguente utilizza il file di input in combinazione con il parametro --dry-run per eseguire una prova del comando per confermare se si dispone delle autorizzazioni richieste e se il file è stato compilato con valori validi.

JSON
$ aws ec2 run-instances --cli-input-json file://ec2runinst.json --dry-run
A client error (DryRunOperation) occurred when calling the RunInstances operation: Request would have succeeded, but DryRun flag is set.

L’esempio seguente utilizza quindi lo stesso file di input, ma con il parametro --no-dry-run per eseguire il comando per intero.

JSON
$ aws ec2 run-instances --cli-input-json file://ec2runinst.json --no-dry-run --output json
{ "OwnerId": "123456789012", "ReservationId": "r-d94a2b1", "Groups": [], "Instances": [ ...