Laden eines Parameters aus einer Datei in 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.

Laden eines Parameters aus einer Datei in AWS CLI

Einige Parameter erwarten Dateinamen als Argumente, aus denen die Daten AWS CLI geladen werden. 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 sie verstanden AWS CLI werden kann. Die Kodierung der Datei muss mit dem Standardgebietsschema des Lesesystems übereinstimmen. Sie können dies mithilfe der Python-Methode locale.getpreferredencoding() bestimmen.

Diese Methode dient zum Laden einer Datei für einen einzelnen Parameter. Hinweise zum Laden mehrerer Parameter mit einer einzigen Datei finden Sie unterAWS CLI Skelette und Eingabedateien in der AWS CLI.

Anmerkung

Standardmäßig PowerShell gibt Windows Text als UTF-16 aus, was mit der UTF-8-Kodierung kollidiert, die von JSON-Dateien und vielen Linux-Systemen verwendet wird. Wir empfehlen Ihnen, dies -Encoding ascii zusammen mit Ihren PowerShell Out-File Befehlen zu verwenden, um sicherzustellen, dass die resultierende Datei gelesen AWS CLI werden kann.

Wie lade ich einen Parameter 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 wird automatisch für Parameter deaktiviert, die bereits eine URL erwarten, z. B. für Parameter, die eine AWS CloudFormation Vorlagen-URL identifizieren. Sie können dieses Verhalten auch deaktivieren, indem Sie die cli_follow_urlparamEinstellung in Ihrer AWS CLI Konfigurationsdatei deaktivieren.

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 amzn-s3-demo-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

Das unterstützt AWS CLI auch das Laden von Parametern aus einer im Internet gehosteten Datei mit einer http:// https:// OR-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://amzn-s3-demo-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.

Laden einer Datei als Kurzsyntaxwert

Wenn Kurzsyntax verwendet wird, wenn ein Wert groß oder komplex ist, ist es oft einfacher, eine Datei als Wert zu laden. Um eine Datei als Kurzsyntaxwert zu laden, ändert sich die Formatierung geringfügig. Stattdessen verwenden key=value Sie den @= Operator anstelle des Operators. = Das @= bedeutet für sie, AWS CLI dass der Wert als Dateipfad und nicht als Zeichenfolge gelesen werden soll. Das folgende Beispiel zeigt ein Schlüssel-Wert-Paar, das eine Datei für ihren Wert lädt.

Linux or macOS
--option key@=file://template.txt
Windows
--option "key1@=file://template.txt"

Das folgende Beispiel zeigt das Laden einer Zertifikatsdatei für den aws rolesanywhere create-trust-anchor Befehl.

$ aws rolesanywhere create-trust-anchor --name TrustAnchor \ --source sourceData={x509CertificateData@=file://root-ca.crt},sourceType="CERTIFICATE_BUNDLE" \ --enabled

Weitere Informationen zur Kurzsyntax finden Sie unter. Verwendung der Kurzsyntax in der AWS CLI