Neue Funktionen und Änderungen in der AWS CLI Version 2 - AWS Command Line Interface

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.

Neue Funktionen und Änderungen in der AWS CLI Version 2

In diesem Thema werden die neuen Funktionen und Verhaltensunterschiede zwischen der AWS CLI Version 1 und der AWS CLI Version 2 beschrieben. Diese Änderungen erfordern möglicherweise eine Aktualisierung Ihrer Skripts oder Befehle, damit Sie in Version 2 das gleiche Verhalten wie in Version 1 erhalten.

Neue Funktionen in der AWS CLI Version 2

Die AWS CLI Version 2 ist die neueste Hauptversion der AWS CLI und unterstützt alle aktuellen Funktionen. Einige in Version 2 eingeführte Funktionen werden nicht auf Version 1 zurückportiert und Sie müssen ein Upgrade durchführen, um auf diese Funktionen zugreifen zu können. Nachstehend sind einige dieser Features aufgeführt:

Python Interpreter nicht erforderlich

Die AWS CLI Version 2 erfordert keine separate Installation von Python. Sie enthält eine eingebettete Version.

Assistenten

Sie können einen Assistenten mit der AWS CLI Version 2 verwenden. Der Assistent leitet Sie beim Erstellen bestimmter Befehle an.

Authentifizierung von IAM Identity Center

Wenn Ihre Organisation AWS IAM Identity Center (IAM Identity Center) verwendet, können sich Ihre Benutzer bei Active Directory, einem integrierten IAM–Identity-Center-Verzeichnis oder einem anderen mit dem IAM Identity Center verbundenen IdP anmelden. Dann werden sie einer AWS Identity and Access Management (IAM)-Rolle zugeordnet, mit der Sie AWS CLI-Befehle ausführen können.

Automatische Eingabeaufforderung

Wenn dies aktiviert ist, kann die AWS CLI Version 2 Sie zur Eingabe von Befehlen, Parametern und Ressourcen auffordern, wenn Sie einen aws-Befehl ausführen.

Führen Sie die AWS CLI von den offiziellen Amazon ECR Public- oder Docker-Images aus

Das offizielle Docker-Image für die AWS CLI bietet Isolation, Portabilität und Sicherheit, die AWS direkt unterstützt und verwaltet. Auf diese Weise können Sie die AWS CLI Version 2 in einer containerbasierten Umgebung verwenden, ohne die Installation selbst verwalten zu müssen.

Clientseitiger Pager

Die AWS CLI Version 2 ermöglicht die Verwendung eines clientseitigen Pager-Programms für die Ausgabe. Standardmäßig ist diese Funktion aktiviert und gibt alle Ausgaben über das Standard-Pager-Programm Ihres Betriebssystems zurück.

aws configure import

Importieren von .csv-Anmeldeinformationen, die von der AWS Management Console generiert wurden. Es wird eine .csv-Datei importiert, wobei der Profilname mit dem IAM-Benutzernamen übereinstimmt.

aws configure list-profiles

Listet die Namen aller konfigurierten Profile auf.

YAML-Stream-Ausgabeformat

Die Formate yaml und yaml-stream nutzen das YAML-Format und bieten gleichzeitig eine reaktionsschnellere Anzeige von großen Datensätzen, indem die Daten an Sie gestreamt werden. Sie können YAML-Daten anzeigen und verwenden, bevor die gesamte Abfrage heruntergeladen wird.

Neue allgemeine ddb-Befehle für DynamoDB

Die AWS CLI Version 2 bietet die allgemeinen Amazon-DynamoDB-Befehle ddb put und ddb select. Diese Befehle stellen eine vereinfachte Schnittstelle zum Einfügen von Elementen in DynamoDB-Tabellen sowie für Suchvorgänge in einer Tabelle oder einem Index in DynamoDB bereit.

aws logs tail

Die AWS CLI Version 2 bietet den benutzerdefinierten Befehl aws logs tail, der die Protokolle für eine Gruppe in Amazon CloudWatch Logs anzeigt. Standardmäßig gibt der Befehl Protokolle aller zugehörigen CloudWatch-Logs-Streams der letzten zehn Minuten zurück.

Unterstützung von Metadaten für allgemeine s3-Befehle hinzugefügt

Die AWS CLI Version 2 fügt den Parameter --copy-props den allgemeinen s3-Befehlen hinzu. Mit diesem Parameter können Sie zusätzliche Metadaten und Tags für Amazon Simple Storage Service (Amazon S3) konfigurieren.

AWS_REGION

Die AWS CLI Version 2 bietet die mit AWS SDK kompatible Umgebungsvariable AWS_REGION. Diese Variable gibt die AWS-Region an, an die Anfragen gesendet werden sollen. Sie überschreibt die Umgebungsvariable AWS_DEFAULT_REGION, die nur in der AWS CLI verfügbar ist.

Grundlegende Änderungen zwischen der AWS CLI Version 1 und der AWS CLI Version 2

In diesem Thema werden alle Verhaltensunterschiede zwischen der AWS CLI Version 1 und der AWS CLI Version 2 beschrieben. Diese Änderungen erfordern möglicherweise eine Aktualisierung Ihrer Skripts oder Befehle, damit Sie in Version 2 das gleiche Verhalten wie in Version 1 erhalten.

Umgebungsvariable hinzugefügt, um Textdateikodierung festzulegen

Standardmäßig verwenden Textdateien für Blob die gleiche Kodierung wie das installierte Gebietsschema. Da die AWS CLI Version 2 eine eingebettete Version von Python verwendet, werden die Umgebungsvariablen PYTHONUTF8 und PYTHONIOENCODING nicht unterstützt. Verwenden Sie die Umgebungsvariable AWS_CLI_FILE_ENCODING, um die Kodierung für Textdateien so festzulegen, dass sie sich vom Gebietsschema unterscheiden. Das folgende Beispiel legt fest, dass die AWS CLI Textdateien unter Windows mit UTF-8 öffnet.

AWS_CLI_FILE_ENCODING=UTF-8

Weitere Informationen finden Sie unter Umgebungsvariablen zur Konfiguration der AWS CLI.

Binäre Parameter werden standardmäßig als base64-kodierte Zeichenfolgen übergeben

In der AWS CLI erforderten einige Befehle base64-kodierte Zeichenfolgen und andere UTF-8-kodierte Byte-Zeichenfolgen. In der AWS CLI Version 1 war für die Datenübergabe zwischen zwei kodierten Zeichenfolgentypen oft eine Zwischenverarbeitung erforderlich. Die AWS CLI Version 2 gestaltet die Handhabung von Binärparametern konsistenter, was eine zuverlässigere Übergabe von Werten von einem Befehl an einen anderen ermöglicht.

Standardmäßig übergibt die AWS CLI Version 2 alle binären Eingabe- und Ausgabeparameter als base64-kodierte Zeichenfolge-blobs (Binary Large Object). Weitere Informationen finden Sie unter Blob.

Wenn Sie das Verhalten der AWS CLI Version 1 wiederherstellen möchten, verwenden Sie die Dateikonfiguration cli_binary_format oder den Parameter --cli-binary-format.

Verbesserte Verarbeitung der Dateieigenschaften und Tags durch Amazon S3 bei mehrteiligen Kopien

Wenn Sie die Befehle der AWS CLI Version 1 im aws s3-Namespace verwenden, um eine Datei von einem S3-Bucket-Speicherort an einen anderen zu kopieren, und diese Operation eine mehrteilige Kopie verwendet, werden keine Dateieigenschaften aus dem Quellobjekt in das Zielobjekt kopiert.

Standardmäßig übertragen die entsprechenden Befehle in der AWS CLI Version 2 alle Tags und einige Eigenschaften von der Quelle auf die Zielkopie. Dies kann dazu führen, dass im Vergleich mit der AWS CLI Version 1 mehr AWS-API-Aufrufe an den Amazon-S3-Endpunkt erfolgen. Verwenden Sie den Parameter --copy-props, um das Standardverhalten für s3-Befehle in der AWS CLI Version 2 zu ändern.

Weitere Informationen finden Sie unter Dateieigenschaften und Tags in mehrteiligen Kopien.

Kein automatisches Abrufen von http://- oder https://-URLs für Parameter

Die AWS CLI Version 2 führt keine GET-Operation mehr durch, wenn ein Parameterwert mit http:// oder https:// beginnt, und sie verwendet den zurückgegebenen Inhalt nicht als Parameterwert. Daher wurde die zugehörige Befehlszeilenoption cli_follow_urlparam in der AWS CLI Version 2 entfernt.

Wenn Sie eine URL abrufen und den URL-Inhalt in einen Parameterwert übergeben müssen, empfehlen wir, curl oder ein ähnliches Tool zu verwenden, um den Inhalt der URL in eine lokale Datei herunterzuladen. Verwenden Sie dann die Syntax file://, um den Inhalt dieser Datei zu lesen und als Parameterwert zu verwenden.

Mit dem folgenden Befehl wird beispielsweise nicht mehr versucht, den Inhalt der Seite abzurufen, der unter http://www.example.com gefunden wird, und diesen Inhalt als Parameter zu übergeben. Stattdessen wird die literale Textzeichenfolge https://example.com als Parameter übergeben.

$ aws ssm put-parameter \ --value http://www.example.com \ --name prod.microservice1.db.secret \ --type String 2

Wenn Sie den Inhalt einer Web-URL als Parameter abrufen und verwenden möchten, können Sie in Version 2 Folgendes tun.

$ curl https://my.example.com/mypolicyfile.json -o mypolicyfile.json $ aws iam put-role-policy \ --policy-document file://./mypolicyfile.json \ --role-name MyRole \ --policy-name MyReadOnlyPolicy

Im vorherigen Beispiel weist der Parameter -o curl an, die Datei im aktuellen Ordner mit demselben Namen wie die Quelldatei zu speichern. Der zweite Befehl ruft den Inhalt dieser heruntergeladenen Datei ab und übergibt den Inhalt als Wert von --policy-document.

Standardmäßige Verwendung des Pagers für die gesamte Ausgabe

Standardmäßig gibt die AWS CLI Version 2 die gesamte Ausgabe über das Standard-Pager-Programm Ihres Betriebssystems zurück. Dieses Programm ist das less-Programm unter Linux und macOS und das more-Programm unter Windows. Dies kann Ihnen dabei helfen, durch eine umfangreiche Ausgabe eines Services zu navigieren, indem Sie diese Ausgabe seitenweise anzeigen.

Sie können die AWS CLI Version 2 so konfigurieren, dass sie ein anderes oder gar kein Paginierungs-Programm verwendet. Weitere Informationen finden Sie unter Clientseitiger Pager.

Standardisierung der Zeitstempel-Ausgabewerte auf das Format ISO 8601

Die AWS CLI Version 2 gibt standardmäßig alle Zeitstempel-Antwortwerte im Format ISO 8601 zurück. In AWS CLI Version 1 gaben Befehle Zeitstempelwerte in einem Format zurück, das von der HTTP-API-Antwort zurückgegeben wurde, was von Service zu Service variieren konnte.

Wenn Sie Zeitstempel im Format anzeigen möchten, das von der HTTP-API-Antwort zurückgegeben wird, verwenden Sie in Ihrer config-Datei den Wert wire. Weitere Informationen finden Sie unter cli_timestamp_format.

Verbesserte Handhabung von CloudFormation-Bereitstellungen, die zu keinen Änderungen führen

Wenn Sie in der AWS CLI Version 1 eine AWS CloudFormation-Vorlage bereitstellen, die zu keinen Änderungen führt, gibt die AWS CLI standardmäßig einen Fehlercode zurück. Dies führt zu Problemen, wenn Sie es nicht als Fehler betrachten und möchten, dass Ihr Skript fortgesetzt wird. Sie können dies in der AWS CLI Version 1 umgehen, indem Sie das Flag -–no-fail-on-empty-changeset hinzufügen. Dadurch wird 0 zurückgegeben.

Da dies ein übliches Fallszenario ist, gibt die AWS CLI Version 2 standardmäßig den Code 0 für eine erfolgreiche Beendigung zurück, wenn durch die Bereitstellung keine Änderung bewirkt wurde und die Operation einen leeren Änderungssatz zurückgibt.

Fügen Sie das Flag --fail-on-empty-changeset hinzu, um das ursprüngliche Verhalten wiederherzustellen.

Verändertes Standardverhalten für regionale Amazon-S3-Endpunkte für die Region us-east-1

Wenn Sie AWS CLI Version 1 für die Verwendung der Region us-east-1 konfigurieren, verwendet die AWS CLI den globalen Endpunkt s3.amazonaws.com, der physisch in der Region us-east-1 gehostet wird. Die AWS CLI Version 2 verwendet den echten regionalen Endpunkt s3.us-east-1.amazonaws.com, wenn diese Region angegeben ist. Um die AWS CLI Version 2 dazu zu zwingen, den globalen Endpunkt zu verwenden, können Sie die Region für einen Befehl auf aws-global setzen.

Verändertes Standardverhalten für regionale AWS STS-Endpunkte

Die AWS CLI Version 2 sendet standardmäßig alle API-Anforderungen von AWS Security Token Service (AWS STS) an den regionalen Endpunkt für die aktuell konfigurierte AWS-Region.

Die AWS CLI Version 1 sendet standardmäßig alle AWS STS-Anforderungen an den regionalen AWS STS-Endpunkt. Sie können dieses Standardverhalten in Version 1 mithilfe der Einstellung sts_regional_endpoints steuern.

ecr get-login entfernt und durch ecr get-login-password ersetzt

Die AWS CLI Version 2 ersetzt den Befehl aws ecr get-login durch den Befehl aws ecr get-login-password, der die automatisierte Integration mit der Containerauthentifizierung verbessert.

Der Befehl aws ecr get-login-password verringert das Risiko, dass Ihre Anmeldeinformationen in der Prozessliste, dem Shellverlauf oder anderen Protokolldateien offengelegt werden. Er verbessert außerdem die Kompatibilität mit dem Befehl docker login, um die Automatisierung zu optimieren.

Der Befehl aws ecr get-login-password ist in AWS CLI Version 1.17.10 und höher und AWS CLI Version 2 verfügbar. Der frühere Befehl aws ecr get-login ist aus Gründen der Abwärtskompatibilität weiterhin in der AWS CLI Version 1 verfügbar.

Mit dem Befehl aws ecr get-login-password können Sie den folgenden Code ersetzen, mit dem ein Passwort abgerufen wird.

$ (aws ecr get-login --no-include-email)

Verwenden Sie stattdessen den folgenden Beispielbefehl, um das Risiko zu verringern, das Passwort für den Shellverlauf oder die Protokolle offenzulegen. In diesem Beispiel wird das Kennwort direkt an den Befehl docker login übergeben, wo es durch die Option --password-stdin dem Passwort-Parameter zugewiesen wird.

$ aws ecr get-login-password | docker login --username AWS --password-stdin MY-REGISTRY-URL

Weitere Informationen finden Sie unter aws ecr get-login-password im Referenzhandbuch zur AWS CLI Version 2.

Die Unterstützung von AWS CLI Version 2 für Plugins ändert sich

Der Plugin-Support in der AWS CLI Version 2 ist vollständig provisorisch und soll Benutzer bei der Migration von der AWS CLI Version 1 unterstützen, bis eine stabile, aktualisierte Plugin-Schnittstelle veröffentlicht wird. Es gibt keine Garantie dafür, dass ein bestimmtes Plugin oder selbst die AWS CLI-Plugin-Schnittstelle in zukünftigen Versionen der AWS CLI Version 2 unterstützt wird. Wenn Sie sich auf Plugins stützen, legen Sie sich auf eine bestimmte Version der AWS CLI fest und testen Sie die Funktionalität Ihres Plugins, wenn Sie ein Upgrade durchführen.

Um Plug-In-Support zu aktivieren, erstellen Sie einen [plugins]-Abschnitt in Ihrer ~/.aws/config.

[plugins] cli_legacy_plugin_path = <path-to-plugins>/python3.7/site-packages <plugin-name> = <plugin-module>

Definieren Sie im Abschnitt [plugins] die Variable cli_legacy_plugin_path und setzen Sie den Wert auf den Pfad der Python-Websitepakete, in dem sich Ihr Plugin-Modul befindet. Dann können Sie ein Plugin konfigurieren, indem Sie einen Namen für das Plugin (plugin-name) und den Dateinamen des Python-Moduls (plugin-module) angeben, das den Quellcode für das Plugin enthält. Die AWS CLI lädt jedes Plugin, indem sie sein plugin-module importiert und seine awscli_initialize-Funktion aufruft.

Entfernung der Unterstützung für versteckte Aliasse

AWS CLI Version 2 unterstützt die folgenden versteckten Aliase nicht mehr, die in Version 1 unterstützt wurden.

In der folgenden Tabelle werden in der ersten Spalte Service, Befehl und Parameter angezeigt, die in allen Versionen funktionieren, einschließlich der AWS CLI Version 2. In der zweiten Spalte wird der Alias angezeigt, der in der AWS CLI Version 2 nicht mehr funktioniert.

Funktionierender Service, Befehl und Parameter Veralteter Alias
cognito-identity create-identity-pool open-id-connect-provider-arns open-id-connect-provider-ar-ns
storagegateway describe-tapes tape-arns tape-ar-ns
storagegateway.describe-tape-archives.tape-arns tape-ar-ns
storagegateway.describe-vtl-devices.vtl-device-arns vtl-device-ar-ns
storagegateway.describe-cached-iscsi-volumes.volume-arns volume-ar-ns
storagegateway.describe-stored-iscsi-volumes.volume-arns volume-ar-ns
route53domains.view-billing.start-time start
deploy.create-deployment-group.ec2-tag-set ec-2-tag-set
deploy.list-application-revisions.s3-bucket s-3-bucket
deploy.list-application-revisions.s3-key-prefix s-3-key-prefix
deploy.update-deployment-group.ec2-tag-set ec-2-tag-set
iam.enable-mfa-device.authentication-code1 authentication-code-1
iam.enable-mfa-device.authentication-code2 authentication-code-2
iam.resync-mfa-device.authentication-code1 authentication-code-1
iam.resync-mfa-device.authentication-code2 authentication-code-2
importexport.get-shipping-label.street1 street-1
importexport.get-shipping-label.street2 street-2
importexport.get-shipping-label.street3 street-3
lambda.publish-version.code-sha256 code-sha-256
lightsail.import-key-pair.public-key-base64 public-key-base-64
opsworks.register-volume.ec2-volume-id ec-2-volume-id

Die Konfigurationsdateieinstellung api_versions wird nicht unterstützt

Die AWS CLI Version 2 unterstützt das Aufrufen früherer Versionen von AWS-Service-APIs mithilfe der Konfigurationsdateieinstellung api_versions nicht. Alle AWS CLI-Befehle rufen nun die neueste Version der Service-APIs auf, die derzeit vom Endpunkt unterstützt werden.

Authentifizieren von Amazon-S3-Anforderungen in der AWS CLI Version 2 ausschließlich unter Verwendung von Signature Version 4

Die AWS CLI Version 2 unterstützt keine früheren Signaturalgorithmen zur kryptografischen Authentifizierung von Serviceanforderungen, die an Amazon-S3-Endpunkte gesendet werden. Diese Signatur erfolgt automatisch bei jeder Amazon-S3-Anforderung und es wird nur der Signaturprozess mit Signature Version 4 unterstützt. Sie können die Signaturversion nicht konfigurieren. Alle vorsignierten URLs von Amazon-S3-Buckets verwenden jetzt ausschließlich Signature Version 4 und weisen eine maximale Ablaufzeit von einer Woche auf.

AWS CLI Version 2 ist konsistenter mit Paginierungsparametern

Wenn Sie in der AWS CLI Version 1 Paginierungsparameter in der Befehlszeile angeben, wird die automatische Paginierung wie erwartet deaktiviert. Wenn Sie jedoch Paginierungsparameter unter Verwendung einer Datei mit dem Parameter ‐‐cli-input-json angeben, wird die automatische Paginierung nicht deaktiviert. Dies kann zu einer unerwarteten Ausgabe führen. In der AWS CLI Version 2 wird die automatische Paginierung unabhängig davon deaktiviert, auf welche Weise Sie die Parameter angeben.

Konsistentere Rückgabecodes für alle Befehle in der AWS CLI Version 2

Die AWS CLI Version 2 ist über alle Befehle hinweg konsistenter und gibt im Vergleich zur AWS CLI Version 1 ordnungsgemäß einen angemessenen Beendigungscode zurück. Wir haben außerdem die Beendigungscodes 252, 253 und 254 ergänzt. Weitere Informationen zu Beendigungscodes finden Sie unter Rückgabecodes von der AWS CLI.

Wenn eine Abhängigkeit davon besteht, wie die AWS CLI Version 1 Rückgabecodewerte verwendet, empfehlen wir, anhand einer Überprüfung der Beendigungscodes sicherzustellen, dass Sie die erwarteten Werte erhalten.