AWS CLI squelettes et fichiers d'entrée dans le AWS CLI - 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 CLI squelettes et fichiers d'entrée dans le AWS CLI

La plupart des AWS CLI commandes acceptent l'importation de paramètres depuis un fichier. Ces modèles peuvent être générés à l'aide de l'generate-cli-skeletonoption, puis importés à l'aide --cli-input-json .

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

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

Ces mêmes commandes utilisent le --generate-cli-skeleton paramètre pour générer un fichier au format JSON avec tous les paramètres que vous pouvez modifier et renseigner. Vous pouvez ensuite exécuter la commande avec le --cli-input-yaml paramètre --cli-input-json et pointer sur le fichier rempli.

Important

Les AWS CLI commandes personnalisées, telles que les aws s3, ne prennent en charge ni les paramètres --generate-cli-skeleton or ni --cli-input-json paramètres décrits dans cette rubrique. Pour vérifier si une commande spécifique prend en charge ces paramètres, exécutez la helpcommande que vous souhaitez utiliser ou reportez-vous au guide de référence AWS CLI version 1 AWS CLI .

--generate-cli-skeletonGénère et affiche un modèle de paramètres que vous pouvez personnaliser et utiliser comme entrée dans une commande. 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 il AWS CLI s'agit essentiellement d'une « enveloppe » autour de l'API du service, le fichier squelette s'attend à ce que vous référenciez tous les paramètres par leurs noms de paramètres d'API sous-jacents. Il est probablement différent du nom du AWS CLI paramètre. Par exemple, un AWS CLI paramètre nommé user-name peut être mappé au paramètre d'API du AWS service nommé UserName (notez la modification des majuscules et l'absence du tiret). 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 consulter le guide de référence des API du service pour connaître 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 et importation 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. Vérifiez 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é Amazon EC2 Dry Run. 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 valeur par défaut Région AWS. 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. Le chemin AWS CLI est interprété comme étant relatif à votre répertoire de travail actuel. L'exemple suivant AWS CLI recherche le fichier 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 EC2 instance Amazon et affichez les détails générés 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": [ ...

Combinaison de fichiers d'entrée et de paramètres de ligne de commande

Un fichier d'entrée peut être utilisé pour tous les paramètres ou peut être combiné avec les paramètres spécifiés dans le AWS CLI. Vous pouvez utiliser cette fonctionnalité pour les paramètres que vous réutilisez fréquemment dans un fichier d'entrée, tout en conservant vos paramètres individuels dans la commande elle-même.

Les aws ec2 run-instances exemples suivants combinent l'utilisation d'un fichier d'entrée et de paramètres. Nous indiquons le type d'instance, le nom de clé, le groupe de sécurité, l'identifiant de l'Amazon Machine Image (AMI) à utiliser et nous supposons qu'il s'agit de l'image par défaut Région AWS. 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

Contenu du fichier JSON :

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

L'exemple suivant utilise le fichier d'entrée en combinaison avec le --dry-run paramètre pour exécuter à sec la commande afin de confirmer si vous disposez des autorisations requises et si vous avez rempli le fichier avec des valeurs valides.

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'exemple suivant utilise ensuite le même fichier d'entrée, mais avec le --no-dry-run paramètre permettant d'exécuter la commande dans son intégralité.

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