AWS CLIsquelettes et fichiers d'entrée - AWS Command Line Interface

Cette documentation concerne AWS CLI uniquement la version 1 du. Pour la documentation relative à la version 2 du AWS CLI, consultez le guide de l'utilisateur de la version 2.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

AWS CLIsquelettes et fichiers d'entrée

La plupart des AWS CLI commandes acceptent toutes les entrées de paramètres d'un fichier. Ces modèles peuvent être générés à l'aide de l'generate-cli-skeletonoption.

À propos des AWS CLI squelettes et des fichiers d'entrée

La plupart des commandes AWS Command Line Interface (AWS CLI) permettent d'accepter toutes les entrées de paramètres d'un fichier à l'aide du --cli-input-yaml paramètre --cli-input-json s.

Ces mêmes commandes fournissent le --generate-cli-skeleton paramètre permettant de générer un fichier au format JSON avec tous les paramètres que vous pouvez modifier et renseigner. Ensuite, vous pouvez exécuter la commande avec le paramètre --cli-input-json et pointer vers le fichier rempli.

Important

Plusieurs AWS CLI commandes ne sont pas directement associées à des opérations d'AWSAPI individuelles, telles que aws s3les aws s3 . Celles-ci ne prennent pas en charge les paramètres --generate-cli-skeleton ni --cli-input-json présentés dans cette rubrique. Pour savoir si une commande spécifique prend en charge ces paramètres, exécutez la commande suivante en remplaçant les noms de service et de commande par ceux qui vous intéressent :

$ aws service command help

La sortie inclut une section Synopsis qui indique les paramètres pris en charge par la commande spécifiée.

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

Le paramètre --generate-cli-skeleton entraîne la non-exécution de la commande, mais à la place génère et affiche un modèle de paramètre que vous pouvez personnaliser, puis utiliser comme entrée sur une commande ultérieure. Le modèle généré inclut tous les paramètres pris en charge par la commande.

Le paramètre --generate-cli-skeleton accepte l'une des valeurs suivantes :

  • input— Le modèle généré inclut tous les paramètres d'entrée au format JSON. C’est la valeur par défaut.

  • output— Le modèle généré inclut tous les paramètres de sortie au format JSON.

Comme l'AWS CLI est essentiellement un « wrapper » autour de l'API du service, le fichier de squelette s'attend à ce que vous référenciez tous les paramètres par leur nom de paramètre d'API sous-jacent. Ceci est probablement différent du nom du paramètre AWS CLI. Par exemple, un paramètre AWS CLI appelé user-name peut être mappé au paramètre d'API du service AWS nommé UserName (notez les majuscules modifiées et le tiret manquant). Nous vous recommandons d'utiliser l'option --generate-cli-skeleton pour générer le modèle avec les noms de paramètres « corrects » afin d'éviter des erreurs. Vous pouvez également consulter le Guide de référence de l'API pour le service afin d'afficher les noms de paramètres attendus. Vous pouvez supprimer dans le modèle tous les paramètres qui ne sont pas obligatoires et pour lesquels vous ne souhaitez pas fournir de valeur.

Par exemple, si vous exécutez la commande suivante, elle génère le modèle de paramètres pour la commande Amazon Elastic Compute Cloud (Amazon EC2). run-instances

JSON

L'exemple suivant montre comment générer un modèle formaté en JSON à l'aide de la valeur par défaut (input) pour le paramètre --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 }

Génération d'un squelette de commande

Pour générer et utiliser un fichier de squelette de paramètre
  1. Exécutez la commande avec le --generate-cli-skeleton paramètre pour produire du JSON et dirigez la sortie vers un fichier pour l'enregistrer.

    JSON
    $ aws ec2 run-instances --generate-cli-skeleton input > ec2runinst.json
  2. Ouvrez le fichier de squelette de paramètre dans votre éditeur de texte et supprimez les paramètres dont vous n'avez pas besoin. Par exemple, vous pouvez supprimer le modèle comme suit. Assurez-vous que le fichier est toujours valide en JSON après avoir supprimé les éléments dont vous n'avez pas besoin.

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

    Dans cet exemple, nous laissons le DryRun paramètre défini sur true pour utiliser la fonctionnalité d'essai à sec d'Amazon EC2. Cette fonctionnalité vous permet de tester la commande en toute sécurité sans créer ou modifier de ressources.

  3. Remplissez les valeurs restantes avec les valeurs appropriées pour votre scénario. Dans cet exemple, nous fournissons le type d'instance, le nom de la clé, le groupe de sécurité et l'identificateur de l'AMI à utiliser. Cet exemple suppose la région AWS par défaut. L'AMI ami-dfc39aef est une image Amazon Linux 64 bits hébergée dans la us-west-2 région. Si vous utilisez une autre région, vous devez identifier le bon ID d'AMI à utiliser.

    JSON
    { "DryRun": true, "ImageId": "ami-dfc39aef", "KeyName": "mykey", "SecurityGroups": [ "my-sg" ], "InstanceType": "t2.micro", "Monitoring": { "Enabled": true } }
  4. Exécutez la commande avec les paramètres complétés en transmettant le fichier modèle terminé cli-input-yaml paramètre --cli-input-json en utilisant le file:// préfixe. L'AWS CLI interprète le chemin relatif à votre répertoire de travail actuel et, par conséquent l'exemple suivant, qui affiche uniquement le nom de fichier sans chemin, est recherché directement dans le répertoire de travail actuel.

    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'erreur d'exécution à sec indique que le JSON est correctement formé et que les valeurs des paramètres sont valides. Si d'autres problèmes sont signalés dans la sortie, corrigez-les et répétez l'étape précédente jusqu'à ce que le message Request would have succeeded s'affiche.

  5. Vous pouvez maintenant définir le paramètre DryRun comme false pour désactiver l'essai.

    JSON
    { "DryRun": false, "ImageId": "ami-dfc39aef", "KeyName": "mykey", "SecurityGroups": [ "my-sg" ], "InstanceType": "t2.micro", "Monitoring": { "Enabled": true } }
  6. Exécutez la commande, lancez run-instances réellement une instance Amazon EC2 et affichez les informations générées par le lancement réussi. Le format de la sortie est contrôlé par le paramètre --output, séparément du format de votre modèle de paramètre d'entrée.

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