Laden von AWS CLI-Parametern aus einer Datei - 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.

Laden von AWS CLI-Parametern aus einer Datei

Einige Parameter erwarten Dateinamen als Argumente, aus denen die AWS CLI Daten lädt. Mit anderen Parametern können Sie den Parameterwert als Text angeben, der in die Befehlszeile eingegeben wird oder aus einer Datei gelesen wird. Unabhängig davon, ob eine Datei erforderlich oder optional ist, müssen Sie die Datei korrekt codieren, damit die AWS CLI sie verstehen kann. Die Kodierung der Datei muss mit dem Standardgebietsschema des Lesesystems übereinstimmen. Sie können dies mithilfe der Python-Methode locale.getpreferredencoding() bestimmen.

Anmerkung

Standardmäßig gibt Windows PowerShell Text als UTF-16 aus. Dies steht mit der UTF-8-Kodierung in Konflikt, die von JSON-Dateien und vielen Linux-Systemen verwendet wird. Wir empfehlen, -Encoding ascii mit Ihren Out-File-PowerShell-Befehlen zu verwenden, um sicherzustellen, dass die AWS CLI die resultierende Datei lesen kann.

Laden von Parametern aus einer Datei

Manchmal ist es praktisch, einen Parameterwert aus einer Datei zu laden, anstatt den gesamten Wert in die Befehlszeile einzugeben, beispielsweise, wenn es sich bei dem Parameterwert um eine komplexe JSON-Zeichenfolge handelt. Um eine Datei anzugeben, die den Wert enthält, geben Sie eine Datei-URL im folgenden Format an.

file://complete/path/to/file
  • Die ersten beiden Schrägstriche "/" sind Teil der Spezifikation. Wenn der erforderliche Pfad mit einem "/" beginnt, besteht das Ergebnis aus drei Schrägstrichen: file:///folder/file.

  • Die URL gibt den Pfad zu der Datei mit dem tatsächlichen Parameterinhalt an.

  • Wenn Sie Dateien mit Leerzeichen oder Sonderzeichen verwenden, befolgen Sie die Anführungszeichen- und Escape-Regeln Ihres Terminals.

Anmerkung

Dieses Verhalten ist für Parameter, die bereits eine URL erwarten, automatisch deaktiviert, beispielsweise für einen Parameter, der eine AWS CloudFormation-Vorlagen-URL bezeichnet. Sie können dieses Verhalten auch deaktivieren, indem Sie die cli_follow_urlparamEinstellung Ihrer AWS CLI-Konfigurationsdatei verwenden.

Die Dateipfade in den folgenden Beispielen werden als relativ zum aktuellen Arbeitsverzeichnis interpretiert.

Linux or macOS
// Read from a file in the current directory $ aws ec2 describe-instances --filters file://filter.json // Read from a file in /tmp $ aws ec2 describe-instances --filters file:///tmp/filter.json // Read from a file with a filename with whitespaces $ aws ec2 describe-instances --filters 'file://filter content.json'
Windows command prompt
// Read from a file in C:\temp C:\> aws ec2 describe-instances --filters file://C:\temp\filter.json // Read from a file with a filename with whitespaces C:\> aws ec2 describe-instances --filters "file://C:\temp\filter content.json"

Die Präfixoption file:// unterstützt Erweiterungen im Unix-Stil, einschließlich "~/", "./" und "../". Unter Windows erfolgt mit dem Ausdruck "~/" die Erweiterung zu Ihrem Benutzerverzeichnis, das in der Umgebungsvariablen %USERPROFILE% gespeichert ist. Beispielsweise befindet sich das Benutzerverzeichnis in Windows 10 in der Regel unter C:\Users\UserName\.

JSON-Dokumente, die als Wert eines anderen JSON-Dokuments eingebettet sind, müssen weiterhin durch ein Escape-Zeichen geschützt werden.

$ aws sqs create-queue --queue-name my-queue --attributes file://attributes.json

attributes.json

{ "RedrivePolicy": "{\"deadLetterTargetArn\":\"arn:aws:sqs:us-west-2:0123456789012:deadletter\", \"maxReceiveCount\":\"5\"}" }

Binärdateien

Für Befehle, die Binärdaten als Parameter annehmen, geben Sie mit dem Präfix fileb:// an, dass es sich bei den Daten um binäre Inhalte handelt. Zu den Befehlen, die Binärdaten akzeptieren, zählen:

  • aws ec2 run-instances: --user-data-Parameter.

  • aws s3api put-object: --sse-customer-key-Parameter.

  • aws kms decrypt: --ciphertext-blob-Parameter.

Das folgende Beispiel generiert mit einem Linux-Befehlszeilen-Tool einen binären 256-Bit-AES-Schlüssel und stellt diesen dann in Amazon S3 bereit, um eine hochgeladene Datei serverseitig zu verschlüsseln.

$ dd if=/dev/urandom bs=1 count=32 > sse.key 32+0 records in 32+0 records out 32 bytes (32 B) copied, 0.000164441 s, 195 kB/s $ aws s3api put-object \ --bucket my-bucket \ --key test.txt \ --body test.txt \ --sse-customer-key fileb://sse.key \ --sse-customer-algorithm AES256 { "SSECustomerKeyMD5": "iVg8oWa8sy714+FjtesrJg==", "SSECustomerAlgorithm": "AES256", "ETag": "\"a6118e84b76cf98bf04bbe14b6045c6c\"" }

Remote-Dateien

Die AWS CLI unterstützt auch das Laden von Parametern aus einer im Internet gehosteten Datei mit einer http://- oder https://-URL. Im folgenden Beispiel wird eine Datei, die in einem Amazon-S3-Bucket gespeichert ist, referenziert. Auf diese Weise können Sie von jedem Computer aus auf Parameterdateien zugreifen. Dabei muss der Container öffentlich zugänglich sein.

$ aws ec2 run-instances \ --image-id ami-12345678 \ --block-device-mappings http://my-bucket.s3.amazonaws.com/filename.json

Im vorherigen Beispiel wird davon ausgegangen, dass die Datei filename.json die folgenden JSON-Daten enthält.

[ { "DeviceName": "/dev/sdb", "Ebs": { "VolumeSize": 20, "DeleteOnTermination": false, "VolumeType": "standard" } } ]

Ein weiteres Beispiel mit einem Verweis auf eine Datei mit JSON-formatierten Parametern finden Sie unter Anfügen einer IAM-verwalteten Richtlinie an einen Benutzer.