AWS CLI-Skeletons und Eingabedateien in der AWS CLI - AWS Command Line Interface

Diese Dokumentation bezieht sich AWS CLI nur auf Version 1 von. Dokumentation zu Version 2 von finden Sie im Benutzerhandbuch für Version 2. AWS CLI

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

AWS CLI-Skeletons und Eingabedateien in der AWS CLI

Die meisten der AWS CLI-Befehle akzeptieren das Importieren von Parametereingaben aus einer Datei. Diese Vorlagen können mit der Option generate-cli-skeleton generiert und dann mit den Parametern --cli-input-json importiert werden.

Informationen zu AWS CLI-Skeletons und Eingabedateien

Die meisten Befehle der AWS Command Line Interface (AWS CLI) unterstützen die Möglichkeit, Parametereingaben aus einer Datei mit den Parametern --cli-input-json zu akzeptieren.

Dieselben Befehle nutzen den Parameter --generate-cli-skeleton zum Generieren einer Datei JSON- -Format mit allen Parametern, die Sie bearbeiten und füllen können. Anschließend können Sie den Befehl mit dem Parameter --cli-input-json ausführen und auf die gefüllte Datei zeigen.

Wichtig

Benutzerdefinierte AWS CLI-Befehle wie die aws s3-Befehle bieten keine Unterstützung für die in diesem Thema beschriebenen Parameter --generate-cli-skeleton oder --cli-input-json. Um zu überprüfen, ob ein bestimmter Befehl diese Parameter unterstützt, führen Sie den help-Befehl für den Befehl aus, den Sie verwenden möchten, oder schlagen Sie im Referenzhandbuch zu AWS CLI Version 1 nach.

Mit dem Befehl --generate-cli-skeleton wird eine Parametervorlage generiert und angezeigt, die Sie anpassen und als Eingabe für einen Befehl verwenden können. Die generierte Vorlage enthält alle Parameter, die der Befehl unterstützt.

Der --generate-cli-skeleton-Parameter akzeptiert einen der folgenden Werte:

  • input – Die generierte Vorlage enthält alle Eingabeparameter, die als JSON formatiert sind. Dies ist der Standardwert.

  • output – Die generierte Vorlage enthält alle Ausgabeparameter, die als JSON formatiert sind.

Da es sich bei der AWS CLI im Grunde um einen „Wrapper“ für die API des Service handelt, erwartet die Skeleton-Datei, dass Sie alle Parameter anhand des zugrunde liegenden API-Parameternamens referenzieren. Dieser unterscheidet sich wahrscheinlich vom AWS CLI-Parameternamen. Beispielsweise kann ein AWS CLI-Parameter mit dem Namen user-name dem API-Parameter des AWS-Service mit dem Namen UserName zugeordnet werden (beachten Sie hierbei die geänderte Groß- und Kleinschreibung und den fehlenden Bindestrich). Wir empfehlen, die Option --generate-cli-skeleton zu verwenden, um die Vorlage mit den „richtigen“ Parameternamen zu generieren und so Fehler zu vermeiden. Sie können das API-Referenzhandbuch zum Service nutzen, um die erwarteten Parameternamen anzuzeigen. Sie können alle Parameter aus der Vorlage löschen, die nicht erforderlich sind und für die Sie keinen Wert angeben möchten.

Wenn Sie beispielsweise den folgenden Befehl ausführen, wird die Parametervorlage für den Amazon-Elastic-Compute-Cloud (Amazon EC2)-Befehl run-instances generiert.

JSON

Das folgende Beispiel zeigt, wie eine in JSON formatierte Vorlage generiert wird, indem der Standardwert (input) für den --generate-cli-skeleton-Parameter verwendet wird.

$ 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 }

Generieren und Importieren eines Befehls-Skeletons

So generieren und verwenden Sie eine Parameter-Skeleton-Datei
  1. Führen Sie den Befehl mit dem --generate-cli-skeleton-Parameter aus, um JSON zu erzeugen, und leiten Sie die Ausgabe an eine Datei, um sie zu speichern.

    JSON
    $ aws ec2 run-instances --generate-cli-skeleton input > ec2runinst.json
  2. Öffnen Sie die Parameter-Skeleton-Datei in Ihrem Texteditor und entfernen Sie alle Parameter, die Sie nicht benötigen. Beispielsweise können Sie die Vorlage auf Folgendes beschränken. Stellen Sie sicher, dass die Datei noch immer das gültige JSON-Format aufweist, nachdem Sie die Elemente entfernt haben, die Sie nicht benötigen.

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

    In diesem Beispiel lassen wir den DryRun-Parameter auf true eingestellt, um die Amazon-EC2-DryRun-Funktion zu verwenden. Mit dieser Funktion können Sie den Befehl sicher testen, ohne tatsächlich Ressourcen zu erstellen oder zu ändern.

  3. Füllen Sie den Rest mit Werten auf, die sich für Ihr Szenario eignen. In diesem Beispiel stellen wir den Instance-Typ, den Schlüsselnamen, die Sicherheitsgruppe und die ID des zu verwendenden Amazon Machine Image (AMI) bereit. In diesem Beispiel wird davon ausgegangen, dass die standardmäßige AWS-Region verwendet wird. Das AMI ami-dfc39aef ist ein 64-Bit-Amazon-Linux-Image, das in der Region us-west-2 gehostet ist. Wenn Sie eine andere Region verwenden, müssen Sie die richtige AMI-ID finden.

    JSON
    { "DryRun": true, "ImageId": "ami-dfc39aef", "KeyName": "mykey", "SecurityGroups": [ "my-sg" ], "InstanceType": "t2.micro", "Monitoring": { "Enabled": true } }
  4. Führen Sie den Befehl mit den abgeschlossenen Parametern aus, indem Sie die fertige Vorlagendatei mit dem --cli-input-json-Präfix an den Parameter cli-input-yaml übergeben. In der AWS CLI wird der Pfad als relativ zum aktuellen Arbeitsverzeichnis interpretiert. Im folgenden Beispiel wird in der AWS CLI nach der Datei im aktuellen Arbeitsverzeichnis gesucht.

    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.

    Die Probelauf-Fehlermeldung gibt an, dass der JSON-Code korrekt formatiert wird und die Parameterwerte gültig sind. Wenn andere Probleme in der Ausgabe gemeldet werden, beheben Sie sie und wiederholen Sie den vorherigen Schritt, bis die Meldung „Request would have succeeded“ angezeigt wird.

  5. Jetzt können Sie den Parameter DryRun auf false setzen, um den Probelauf zu deaktivieren.

    JSON
    { "DryRun": false, "ImageId": "ami-dfc39aef", "KeyName": "mykey", "SecurityGroups": [ "my-sg" ], "InstanceType": "t2.micro", "Monitoring": { "Enabled": true } }
  6. Führen Sie den Befehl aus. run-instances startet eine Amazon-EC2-Instance und zeigt die Details an, die durch den erfolgreichen Start generiert wurden. Das Format der Ausgabe wird vom --output-Parameter unabhängig vom Format Ihrer Eingabeparametervorlage gesteuert.

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

Kombinieren von Eingabedateien und Befehlszeilenparametern

Eine Eingabedatei kann für alle Parameter verwendet oder mit den in der AWS CLI angegebenen Parametern kombiniert werden. Sie können diese Funktion für Einstellungen verwenden, die Sie häufig in einer Eingabedatei wiederverwenden, während Sie Ihre individuellen Einstellungen im Befehl selbst beibehalten.

In den folgenden Beispielen für aws ec2 run-instances wird die Verwendung einer Eingabedatei mit Parametern kombiniert. In diesem Beispiel stellen wir den Instance-Typ, den Schlüsselnamen, die Sicherheitsgruppe und die ID des zu verwendenden Amazon Machine Image (AMI) bereit und gehen von der standardmäßigen AWS-Region aus. Das AMI ami-dfc39aef ist ein 64-Bit-Amazon-Linux-Image, das in der Region us-west-2 gehostet ist. Wenn Sie eine andere Region verwenden, müssen Sie die richtige AMI-ID finden.

JSON

Inhalt der JSON-Datei:

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

Im folgenden Beispiel wird anhand der Eingabedatei in Kombination mit dem Parameter --dry-run ein Probelauf des Befehls durchgeführt, um zu überprüfen, ob Sie über die erforderlichen Berechtigungen verfügen und die Datei mit gültigen Werten ausgefüllt haben.

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.

Im folgenden Beispiel wird dann dieselbe Eingabedatei, jedoch mit dem Parameter --no-dry-run verwendet, um den Befehl vollständig auszuführen.

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