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.
Themen
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
undyaml-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 allgemeinens3
-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 UmgebungsvariableAWS_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.
Themen
- Umgebungsvariable hinzugefügt, um Textdateikodierung festzulegen
- Binäre Parameter werden standardmäßig als base64-kodierte Zeichenfolgen übergeben
- Verbesserte Verarbeitung der Dateieigenschaften und Tags durch Amazon S3 bei mehrteiligen Kopien
- Kein automatisches Abrufen von http://- oder https://-URLs für Parameter
- Standardmäßige Verwendung des Pagers für die gesamte Ausgabe
- Standardisierung der Zeitstempel-Ausgabewerte auf das Format ISO 8601
- Verbesserte Handhabung von CloudFormation-Bereitstellungen, die zu keinen Änderungen führen
- Verändertes Standardverhalten für regionale Amazon-S3-Endpunkte für die Region us-east-1
- Verändertes Standardverhalten für regionale AWS STS-Endpunkte
- ecr get-login entfernt und durch ecr get-login-password ersetzt
- Die Unterstützung von AWS CLI Version 2 für Plugins ändert sich
- Entfernung der Unterstützung für versteckte Aliasse
- Die Konfigurationsdateieinstellung api_versions wird nicht unterstützt
- Authentifizieren von Amazon-S3-Anforderungen in der AWS CLI Version 2 ausschließlich unter Verwendung von Signature Version 4
- AWS CLI Version 2 ist konsistenter mit Paginierungsparametern
- Konsistentere Rückgabecodes für alle Befehle in der AWS CLI Version 2
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
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
more
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
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
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.