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 neue Funktionen und Verhaltensänderungen zwischen AWS CLI Version 1 und 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.

AWS CLI Version 2, neue Funktionen

Die AWS CLI Version 2 ist die neueste Hauptversion von 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 benötigt keine separate Installation von Python. Sie enthält eine eingebettete Version.

Assistenten

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

IAMIdentity Center-Authentifizierung

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

Automatische Eingabeaufforderung

Wenn diese Option aktiviert ist, kann AWS CLI Version 2 Sie bei der Ausführung eines aws Befehls zur Eingabe von Befehlen, Parametern und Ressourcen auffordern.

Ausführen der offiziellen Amazon ECR Public- oder Docker-Images für AWS CLI

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

Clientseitiger Pager

Die AWS CLI Version 2 bietet 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, deren Profilname dem Benutzernamen entspricht. IAM

aws configure list-profiles

Listet die Namen aller konfigurierten Profile auf.

YAMLStream-Ausgabeformat

Das yaml-stream Format yaml und nutzt die Vorteile des YAMLFormats und ermöglicht gleichzeitig eine reaktionsschnellere Anzeige großer Datensätze, indem die Daten an Sie gestreamt werden. Sie können mit dem Anzeigen und Verwenden von YAML Daten beginnen, bevor die gesamte Abfrage heruntergeladen wurde.

Neue allgemeine ddb-Befehle für DynamoDB

Die AWS CLI Version 2 enthält die Amazon DynamoDB DynamoDB-Befehle ddb putauf hoher Ebene 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 hat einen benutzerdefinierten aws logs tail Befehl, der die Protokolle für eine Amazon CloudWatch Logs-Gruppe verfolgt. Standardmäßig gibt der Befehl Protokolle aus allen zugehörigen CloudWatch Logs-Streams der letzten zehn Minuten zurück.

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

In AWS CLI Version 2 wird der --copy-props Parameter den s3 Befehlen auf hoher Ebene hinzugefügt. 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 hat eine AWS SDK -kompatible Umgebungsvariable namensAWS_REGION. Diese Variable gibt an AWS-Region , an welche Anfragen gesendet werden sollen. Sie überschreibt die Umgebungsvariable AWS_DEFAULT_REGION, die nur in der AWS CLI verfügbar ist.

Wichtigste Änderungen zwischen AWS CLI Version 1 und AWS CLI Version 2

In diesem Abschnitt werden alle Verhaltensänderungen zwischen AWS CLI Version 1 und 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 AWS CLI Version 2 eine eingebettete Version von Python verwendet, werden die Umgebungsvariablen PYTHONUTF8 und die PYTHONIOENCODING Umgebungsvariablen 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. Im folgenden Beispiel wird festgelegt AWS CLI , dass Textdateien UTF-8 unter Windows geöffnet werden sollen.

AWS_CLI_FILE_ENCODING=UTF-8

Weitere Informationen finden Sie unter Konfiguration von Umgebungsvariablen für AWS CLI.

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

In der AWS CLI erforderten einige Befehle Base64-kodierte Zeichenfolgen, während andere -8-kodierte Byte-Strings UTF erforderten. In AWS CLI Version 1 erforderte die Weitergabe von Daten zwischen zwei codierten Zeichenfolgentypen oft eine gewisse Zwischenverarbeitung. Die AWS CLI Version 2 macht den Umgang mit binären Parametern konsistenter, was dazu beiträgt, Werte zuverlässiger von einem Befehl an einen anderen zu übergeben.

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

Verwenden Sie die cli_binary_format Dateikonfiguration oder den AWS CLI Parameter, um zum Verhalten von Version 1 zurückzukehren. --cli-binary-format

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

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

Standardmäßig übertragen die entsprechenden Befehle in AWS CLI Version 2 alle Tags und einige Eigenschaften von der Quell- auf die Zielkopie. Im Vergleich zur AWS CLI Version 1 kann dies dazu führen, dass mehr AWS API Aufrufe an den Amazon S3 S3-Endpunkt getätigt werden. Verwenden Sie den --copy-props Parameter, um das Standardverhalten für s3 Befehle in 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

AWS CLI Version 2 führt keine GET Operation durch, wenn ein Parameterwert mit http:// oder beginnthttps://, und verwendet den zurückgegebenen Inhalt nicht als Parameterwert. Aus diesem Grund wurde die zugehörige Befehlszeilenoption cli_follow_urlparam aus AWS CLI Version 2 entfernt.

Wenn Sie einen abrufen URL und den URL Inhalt an einen Parameterwert übergeben müssen, empfehlen wir Ihnen, den Inhalt von curl oder ein ähnliches Tool zu verwenden, URL um den Inhalt von 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 Website abrufen und URL als Parameter verwenden müssen, können Sie in Version 2 wie folgt vorgehen.

$ 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 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 AWS CLI Version 2 so konfigurieren, dass ein anderes Paging-Programm oder gar kein Paging-Programm verwendet wird. Weitere Informationen finden Sie unter Clientseitiger Pager.

Die Timestamp-Ausgabewerte sind auf das 8601-Format standardisiert ISO

Standardmäßig gibt AWS CLI Version 2 alle Zeitstempel-Antwortwerte im ISO8601-Format zurück. In AWS CLI Version 1 gaben Befehle Zeitstempelwerte in dem Format zurück, das von der HTTP API Antwort zurückgegeben wurde, was von Dienst zu Dienst variieren kann.

Verwenden Sie den wire Wert in Ihrer config Datei, um Zeitstempel in dem von der HTTP API Antwort zurückgegebenen Format anzuzeigen. Weitere Informationen finden Sie unter cli_timestamp_format.

Verbesserter Umgang mit CloudFormation Bereitstellungen, die zu keinen Änderungen führen

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

Da dies ein häufiger Anwendungsfall ist, gibt AWS CLI Version 2 standardmäßig einen erfolgreichen Exit-Code zurück, 0 wenn keine Änderung durch eine Bereitstellung vorgenommen wurde und der Vorgang ein leeres Changeset 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 us-east-1 Region konfigurieren, AWS CLI verwendet die den globalen s3.amazonaws.com Endpunkt, der physisch in der Region gehostet wird. us-east-1 AWS CLI Version 2 verwendet den echten regionalen Endpunkt, s3.us-east-1.amazonaws.com wenn diese Region angegeben ist. Um zu erzwingen, dass AWS CLI Version 2 den globalen Endpunkt verwendet, können Sie die Region für einen Befehl auf festlegenaws-global.

Das Standardverhalten für regionale AWS STS Endpunkte wurde geändert

Standardmäßig sendet AWS CLI Version 2 alle AWS Security Token Service (AWS STS) API -Anfragen an den regionalen Endpunkt für den aktuell konfigurierten AWS-Region Endpunkt.

Standardmäßig sendet AWS CLI Version 1 AWS STS Anfragen an den globalen 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 aws ecr get-login-password Befehl, der die automatisierte Integration mit der Container-Authentifizierung 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 aws ecr get-login-password Befehl ist in AWS CLI Version 1.17.10 und höher sowie in AWS CLI Version 2 verfügbar. Der frühere aws ecr get-login Befehl ist aus Gründen der Abwärtskompatibilität weiterhin in 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.

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

Die Plugin-Unterstützung in AWS CLI Version 2 ist völlig vorläufig und soll Benutzern helfen, von AWS CLI Version 1 zu migrieren, bis eine stabile, aktualisierte Plugin-Oberfläche veröffentlicht wird. Es gibt keine Garantie dafür, dass ein bestimmtes Plugin oder sogar die AWS CLI Plugin-Schnittstelle in future Versionen der AWS CLI Version 2 unterstützt wird. Wenn Sie sich auf Plugins verlassen, achten Sie darauf, dass Sie sich auf eine bestimmte Version von AWS CLI festlegen und die Funktionalität Ihres Plugins testen, 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. Das AWS CLI lädt jedes Plugin, indem es es importiert plugin-module und seine awscli_initialize Funktion aufruft.

Entfernung der Unterstützung für versteckte Aliasse

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

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

Funktionierender Service, Befehl und Parameter Veralteter Alias
Cognito-Identity -arns create-identity-pool open-id-connect-provider open-id-connect-provider-ar-ns
storagegateway describe-tapes tape-arns tape-ar-ns
Speicher-Gateway. describe-tape-archives.band-arns tape-ar-ns
Speicher-Gateway. describe-vtl-devices. vtl-device-arns vtl-device-ar-ns
StorageGateway. describe-cached-iscsi-volumes.volume-arns volume-ar-ns
Speicher-Gateway. describe-stored-iscsi-volumes.volume-arns volume-ar-ns
route53domains.view-billing.start-time start
bereitstellen. create-deployment-group.ec2-Tag-Set ec-2-tag-set
bereitstellen. list-application-revisions.s3-Bucket s-3-bucket
bereitstellen. list-application-revisions.s3-Schlüsselpräfix s-3-key-prefix
bereitstellen. update-deployment-group.ec2-Tag-Set ec-2-tag-set
bin. enable-mfa-device.Authentifizierungscode1 authentication-code-1
bin. enable-mfa-device.Authentifizierungscode2 authentication-code-2
bin. resync-mfa-device.Authentifizierungscode1 authentication-code-1
bin. resync-mfa-device.Authentifizierungscode2 authentication-code-2
importieren/exportieren. get-shipping-label. Straße 1 street-1
importieren/exportieren. get-shipping-label. Straße 2 street-2
importieren/exportieren. get-shipping-label. Straße 3 street-3
lambda.publish-version.code-sha256 code-sha-256
Lichtsegel. 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

AWS CLI Version 2 unterstützt das Aufrufen früherer Versionen des AWS Dienstes APIs mithilfe der Einstellung der api_versions Konfigurationsdatei nicht. Alle AWS CLI Befehle rufen jetzt die neueste Version des Dienstes aufAPIs, die derzeit vom Endpunkt unterstützt wird.

AWS CLI Version 2 verwendet nur Signature v4 zur Authentifizierung von Amazon S3 S3-Anfragen

Die AWS CLI Version 2 unterstützt keine früheren Signaturalgorithmen zur kryptografischen Authentifizierung von Serviceanfragen, die an Amazon S3 S3-Endpunkte gesendet wurden. 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 Amazon S3 S3-Buckets verwenden URLs jetzt nur SigV4 und haben eine maximale Ablaufdauer von einer Woche.

AWS CLI Version 2 ist konsistenter mit den Paging-Parametern

Wenn Sie in AWS CLI Version 1 Paginierungsparameter in der Befehlszeile angeben, ist die automatische Paginierung erwartungsgemäß 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 AWS CLI Version 2 wird die automatische Paginierung unabhängig davon, wie Sie die Parameter angeben, deaktiviert.

AWS CLI Version 2 bietet konsistentere Rückgabecodes für alle Befehle

Die AWS CLI Version 2 ist bei allen Befehlen konsistenter und gibt im Vergleich zur AWS CLI Version 1 ordnungsgemäß einen entsprechenden Exit-Code zurück. Wir haben außerdem die Beendigungscodes 252, 253 und 254 ergänzt. Weitere Informationen zu Beendigungscodes finden Sie unter Befehlszeilen-Rückgabecodes in der AWS CLI.

Wenn Sie davon abhängig sind, wie AWS CLI Version 1 Rückgabecodewerte verwendet, empfehlen wir, die Exit-Codes zu überprüfen, um sicherzustellen, dass Sie die erwarteten Werte erhalten.