AWS CLI scheletri e file di input nel 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à.

AWS CLI scheletri e file di input nel AWS CLI

La maggior parte dei AWS CLI comandi accetta tutti gli input di parametri da un file. Questi modelli possono essere generati utilizzando l'generate-cli-skeletonopzione.

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 tutti gli input di parametri da un file utilizzando il --cli-input-yaml parametro --cli-input-json .

Questi stessi comandi forniscono utilmente il --generate-cli-skeleton parametro per generare un file in in un YAML formato con tutti i parametri che è possibile modificare e compilare. Quindi puoi eseguire il comando con il parametro --cli-input-json appropriato e scegliere il file compilato.

Importante

Diversi AWS CLI comandi non sono mappati direttamente alle singole AWS API operazioni, come i aws s3. Questi comandi non supportano i parametri --generate-cli-skeleton, --cli-input-json trattati in questo argomento. Se non sai se un comando specifico supporta questi parametri, esegui il comando seguente, sostituendo il service e command nomi con quelli che ti interessano.

$ aws service command help

L'output include una sezione Synopsis che mostra i parametri supportati dal comando specificato.

$ aws iam list-users help ... SYNOPSIS list-users ... [--cli-input-json] ... [--generate-cli-skeleton <value>] ...

Il parametro --generate-cli-skeleton impedisce l'esecuzione del comando, generando e visualizzando invece un modello di parametri personalizzabile che può essere utilizzato come input in un secondo momento. 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 comeJSON. Si tratta del valore di default.

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

Poiché AWS CLI è essenzialmente un «involucro» attorno al servizioAPI, il file skeleton si aspetta che tu faccia riferimento a tutti i parametri tramite i nomi dei parametri sottostanti. API Probabilmente è diverso dal nome del parametro. AWS CLI Ad esempio, un AWS CLI parametro denominato user-name potrebbe essere mappato al API parametro denominato del AWS servizio 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 anche fare riferimento alla Guida API di riferimento per il servizio per vedere 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 il comando seguente, viene generato il modello di parametro per il comando run-instances Amazon Elastic Compute Cloud (AmazonEC2).

JSON

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

$ 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 di uno scheletro di comandi

Per generare e utilizzare un file scheletro dei parametri
  1. Esegui il comando con il --generate-cli-skeleton parametro per produrre e indirizza l'output su 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. Assicuratevi che il file sia ancora valido JSON dopo aver rimosso gli elementi non necessari.

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

    In questo esempio, lasciamo il DryRun parametro impostato true per utilizzare la funzionalità Amazon EC2 dry run. 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 di Amazon Machine Image (AMI) da utilizzare. Questo esempio presuppone la regione predefinita AWS . AMIami-dfc39aefÈ un'immagine Amazon Linux a 64 bit ospitata nella us-west-2 regione. Se utilizzi una regione diversa, devi trovare l'AMIID corretto da utilizzare.

    JSON
    { "DryRun": true, "ImageId": "ami-dfc39aef", "KeyName": "mykey", "SecurityGroups": [ "my-sg" ], "InstanceType": "t2.micro", "Monitoring": { "Enabled": true } }
  4. AWS CLI Interpreta il percorso in modo che sia relativo alla directory di lavoro corrente, quindi nell'esempio seguente, che visualizza solo il nome del file senza percorso, cerca il file direttamente 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 dry run indica che JSON è formato correttamente e che i valori del parametro 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. Esegui il comando e avvia run-instances effettivamente un'EC2istanza Amazon e visualizza i dettagli generati dal lancio riuscito. 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": [ ...