AWS CLIscheletri e file di input - 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 CLIscheletri e file di input

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 .

Quindi puoi eseguire il comando con il parametro --cli-input-json appropriato e scegliere il file compilato.

Importante

https://docs.aws.amazon.com/cli/latest/reference/s3/index.html Questi comandi non supportano i parametri --generate-cli-skeleton, --cli-input-json trattati in questo argomento. Se non si sa se un comando specifico supporta tali parametri, esegui il seguente comando, sostituendo i nomi del servizio e del comando con quelli che 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 come JSON. Si tratta del valore di default.

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

Poiché l'AWS CLI è essenzialmente un "wrapper" per l'API del servizio, il file di skeleton prevede che tu faccia riferimento a tutti i parametri in base ai nomi del parametro API sottostanti. Questo è probabilmente diverso dal nome del parametro AWS CLI. Ad esempio, un parametro AWS CLI denominato user-name potrebbe essere mappato al parametro API del servizio AWS denominato UserName (nota le maiuscole 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 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 il comando seguente, viene generato il modello di parametro per il comando Amazon Elastic Compute Cloud (Amazon EC2). run-instances

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

Per generare e utilizzare un file scheletro dei parametri
  1. 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. Assicurati che il file sia ancora valido in formato 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 per utilizzare la funzionalità di funzionamento true a secco di Amazon 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 prevede l'utilizzo della regione AWS predefinita. L'AMI ami-dfc39aef è un'immagine Amazon Linux a 64 bit ospitata nella us-west-2 regione. 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. L'AWS CLI interpreta il percorso come relativo alla directory di lavoro corrente, quindi l'esempio seguente che mostra 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 il formato JSON è stato formato correttamente e che 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. Esegui il comando e avvia run-instances effettivamente un'istanza Amazon EC2 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": [ ...