AWS Command Line Interface
Benutzerhandbuch

Konfigurations- und Anmeldeinformationsdatei-Einstellungen

Sie können Ihre häufig verwendeten Konfigurationseinstellungen und Anmeldeinformationen in Dateien speichern, die von der AWS CLIverwaltet werden. Die Dateien werden in Abschnitte eingeteilt, auf die anhand des Namens verwiesen werden kann. Dies sind die sogenannten „Profile”. Sofern nichts anderes angeben, verwendet die CLI die Einstellungen aus dem Profil mit dem Namen default. Wenn Sie alternative Einstellungen verwenden möchten, können Sie zusätzliche Profile erstellen und referenzieren. Sie können auch eine einzelne Einstellung überschreiben, indem Sie entweder eine der unterstützten Umgebungsvariablen definieren oder einen Befehlszeilenparameter verwenden.

Wo werden die Konfigurationseinstellungen gespeichert?

Die AWS CLI speichert die Anmeldeinformationen, die Sie mit aws configure angeben, in einer lokalen Datei namens credentials in einem Ordner namens .aws in Ihrem Stammverzeichnis. Die anderen Konfigurationsoptionen, die Sie mit aws configure angeben, werden in einer lokalen Datei namens config sowie im Ordner .aws Ihres Stammverzeichnisses gespeichert. Der Speicherort Ihres Stammverzeichnis hängt vom Betriebssystem ab. Die folgenden Umgebungsvariablen verweisen auf dieses: %UserProfile% in Windows und $HOME oder ~ (Tilde) in Unix-basierten Systemen.

Mit den folgenden Befehlen werden beispielsweise die Inhalte des .aws Ordners aufgelistet.

Linux, macOS, or Unix

$ ls ~/.aws

Windows

C:\> dir "%UserProfile%\.aws"

Die AWS CLI verwendet zwei Dateien, um die sensiblen Anmeldeinformationen (in ~/.aws/credentials) getrennt von den weniger sensiblen Konfigurationsoptionen (in ~/.aws/config) zu speichern.

Sie können auch einen Nicht-Standard-Speicherort für die Datei config angeben, indem Sie die Umgebungsvariable AWS_CONFIG_FILE auf einen anderen lokalen Pfad setzen. Details dazu finden Sie unter Umgebungsvariablen.

Speichern von Anmeldeinformationen in der Konfigurationsdatei

Die AWS CLI liest auch Anmeldeinformationen aus der Datei config. Sie können all Ihre Profileinstellungen in einer einzigen Datei speichern. Sollte es für ein Profil Anmeldeinformationen an beiden Speicherorten geben (wenn Sie beispielsweise aws configure verwendet haben, um die Profilschlüssel zu aktualisieren), haben die Schlüssel in der Anmeldeinformationsdatei Vorrang.

Diese Dateien werden auch von den Software Development Kits (SDKs) für verschiedene Sprachen verwendet. Wenn Sie zusätzlich zur AWS CLI eines der SDKs verwenden, erhalten Sie möglicherweise weitere Warnungen, wenn Anmeldeinformationen nicht in ihrer eigenen Datei gespeichert werden.

Die von der CLI generierten Dateien für das im vorherigen Abschnitt konfigurierte Profil sehen so aus.

~/.aws/credentials

[default] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

~/.aws/config

[default] region=us-west-2 output=json

Anmerkung

Die vorstehenden Beispiele zeigen die Dateien mit einem einzigen Standardprofil. Beispiele für Dateien mit mehreren benannten Profilen finden Sie unter Benannte Profile.

Wenn Sie ein freigegebenes Profil verwenden, das eine IAM-Rolle angibt, ruft die AWS CLI die AWS STS-Operation AssumeRole auf, um temporäre Anmeldeinformationen abzurufen. Diese Anmeldeinformationen werden dann (in ~/.aws/cli/cache) gespeichert. Nachfolgende AWS CLI-Befehle verwenden die zwischengespeicherten temporären Anmeldeinformationen, bis sie ablaufen. Dann aktualisiert die AWS CLI automatisch die Anmeldeinformationen.

Unterstützte Einstellungen in der config-Datei

Die folgenden Einstellungen werden in der config-Datei unterstützt. Es werden die Werte in dem angegebenen Profil (oder dem Standardprofil) verwendet, es sei denn, sie werden durch eine gleichnamige Umgebungsvariable oder eine gleichnamige Befehlszeilenoption überschrieben.

Sie können diese Einstellungen konfigurieren, indem Sie die Konfigurationsdatei direkt in einem Text-Editor oder mithilfe des Befehls aws configure set bearbeiten. Geben Sie das Profil an, das Sie mit der --profile-Einstellung ändern möchten. Mit dem folgenden Befehl beispielsweise wird die region-Einstellung in dem Profil mit dem Namen integ festgelegt.

aws configure set region us-west-2 --profile integ

Sie können den Wert für eine Einstellung auch mit dem Unterbefehl get abrufen.

$ aws configure get region --profile default us-west-2

Wenn die Ausgabe leer ist, ist die Einstellung nicht explizit festgelegt und es wird der Standardwert verwendet.

Globale Einstellungen

api_versions

Einige AWS-Services unterhalten mehrere API-Versionen zur Unterstützung der Abwärtskompatibilität. Standardmäßig wird in CLI-Befehlen die neueste verfügbare API-Version verwendet. Durch Angabe der Einstellung api_versions in der config-Datei können Sie eine API-Version angeben, die für ein Profil verwendet werden soll.

Hierbei handelt es sich um eine „verschachtelte” Einstellung, auf die eine oder mehrere eingerückte Zeilen folgen, in denen jeweils ein AWS-Service und die zu verwendende API-Version angegeben sind. Informationen zu den jeweils verfügbaren API-Versionen finden Sie in der Dokumentation zu den einzelnen Services.

Im folgenden Beispiel sehen Sie, wie Sie eine API-Version für zwei AWS-Services angeben können. Diese API-Versionen werden nur für Befehle verwendet, die unter dem Profil mit diesen Einstellungen ausgeführt werden.

api_versions = ec2 = 2015-03-01 cloudfront = 2015-09-017

Diese Einstellung verfügt nicht über eine Umgebungsvariable oder einen entsprechenden Befehlszeilenparameter.

aws_access_key_id

Gibt den AWS-Zugriffsschlüssel an, der als Teil der Anmeldeinformationen zur Authentifizierung der Befehlsanforderung verwendet wird. Zwar kann dieser in der config-Datei gespeichert werden, wir empfehlen Ihnen jedoch, ihn in der credentials-Datei zu speichern.

Kann von der Umgebungsvariablen AWS_ACCESS_KEY_ID überschrieben werden. Es ist nicht möglich, die Zugriffsschlüssel-ID als Befehlszeilenoption anzugeben.

aws_access_key_id = 123456789012
aws_secret_access_key

Gibt den geheimen AWS-Schlüssel an, der als Teil der Anmeldeinformationen zur Authentifizierung der Befehlsanforderung verwendet wird. Zwar kann dieser in der config-Datei gespeichert werden, wir empfehlen Ihnen jedoch, ihn in der credentials-Datei zu speichern.

Kann von der Umgebungsvariablen AWS_SECRET_ACCESS_KEY überschrieben werden. Es ist nicht möglich, den geheimen Zugriffsschlüssel als Befehlszeilenoption anzugeben.

aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token

Gibt ein AWS-Sitzungs-Token an. Ein Sitzungs-Token ist nur erforderlich, wenn Sie manuell temporäre Anmeldeinformationen angeben. Zwar kann dieses in der config-Datei gespeichert werden, wir empfehlen Ihnen jedoch, es in der credentials-Datei zu speichern.

Kann von der Umgebungsvariablen AWS_SESSION_TOKEN überschrieben werden. Es ist nicht möglich, das Sitzungs-Token als Befehlszeilenoption anzugeben.

aws_session_token = AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
ca_bundle

Gibt eine CA-Zertifikat-Bundle (eine Datei mit der Erweiterung .pem) an, die zur Überprüfung von SSL-Zertifikaten verwendet wird.

Kann von der Umgebungsvariablen AWS_CA_BUNDLE oder mit der Befehlszeilenoption --ca-bundle überschrieben werden.

ca_bundle = dev/apps/ca-certs/cabundle-2019mar05.pem
cli_follow_urlparam

Gibt an, ob die CLI versucht, URL-Links in Befehlszeilenparametern zu folgen, die mit http:// oder https:// beginnen. Wenn diese Einstellung aktiviert ist, werden die abgerufenen Inhalte anstelle der URL als Parameterwert verwendet.

  • true (wahr): Dies ist der Standardwert. Wenn dieser Wert konfiguriert ist, werden alle Zeichenfolgeparameter abgerufen, die mit http:// oder https:// beginnen, und die heruntergeladenen Inhalte werden als Parameterwert für den Befehl verwendet.

  • false (falsch): Der CLI-Parameter behandelt Zeichenfolgewerte des Parameters, die mit http:// oder https:// beginnen, nicht anders als andere Zeichenfolgen.

Zu diesem Eintrag gibt es keine entsprechende Umgebungsvariable oder Befehlszeilenoption.

cli_follow_urlparam = false
cli_timestamp_format

Gibt das Format der in der Ausgabe enthaltenen Zeitstempelwerte an. Sie können einen der folgenden Werte angeben:

  • iso8601: Dies ist der Standardwert für AWS CLI Version 2. Die AWS CLI formatiert alle Zeitstempel nach ISO 8601 neu.

  • wire: Dies ist der Standardwert für AWS CLI Version 1. Die AWS CLI zeigt alle Zeitstempelwerte genau so an, wie sie in der HTTP-Abfrageantwort empfangen wurden.

Zu diesem Eintrag gibt es keine entsprechende Umgebungsvariable oder Befehlszeilenoption.

cli_timestamp_format = iso8601
credential_process

Gibt einen externen Befehl an, den die CLI ausführt, um Authentifizierungs-Anmeldeinformationen für diesen Befehl zu generieren oder abzurufen. Der Befehl muss die Anmeldeinformationen in einem bestimmten Format zurückgeben. Weitere Informationen zur Verwendung dieser Einstellung finden Sie unter Beschaffung von Anmeldeinformationen über einen externen Process.

Zu diesem Eintrag gibt es keine entsprechende Umgebungsvariable oder Befehlszeilenoption.

credential_process = /opt/bin/awscreds-retriever --username susan
credential_source

Wird innerhalb von EC2-Instances oder EC2-Containern verwendet, um anzugeben, wo die AWS CLI Anmeldeinformationen für die Übernahme der Rolle finden kann, die Sie mit dem Parameter role_arn angegeben haben. Sie können source_profile und credential_source nicht im selben Profil angeben.

Dieser Parameter kann einen von drei Werten haben:

  • Environment: um Quell-Anmeldeinformationen aus Umgebungsvariablen abzurufen.

  • Ec2InstanceMetadata: um die dem EC2-Instance-Profil zugeordnete IAM-Rolle als Quell-Anmeldeinformationen zu verwenden.

  • EcsContainer: um die dem ECS-Container zugeordnete IAM-Rolle als Quell-Anmeldeinformationen zu verwenden.

credential_source = Ec2InstanceMetadata
duration_seconds

Gibt die maximale Dauer der Rollensitzung in Sekunden an. Der Wert kann zwischen 900 Sekunden (15 Minuten) und der maximalen Sitzungsdauer für die Rolle liegen maximal 43.200). Dieser Parameter ist optional. Standardmäßig ist der Wert auf 3.600 Sekunden festgelegt.

external_id

Eine eindeutige Kennung, die von Dritten verwendet wird, um eine Rolle in den Konten ihrer Kunden zu übernehmen. Dies entspricht dem Parameter ExternalId in der Operation AssumeRole. Dieser Parameter ist optional; es sei denn, die Vertrauensrichtlinie für die Rolle gibt an, dass ExternalId ein spezifischer Wert sein muss.

mfa_serial

Die ID eines MFA-Geräts, das verwendet werden soll, wenn eine Rolle übernommen wird. Diese ist nur erforderlich, wenn die Vertrauensrichtlinie der übernommenen Rolle eine Bedingung enthält, für die eine MFA-Authentifizierung erforderlich ist. Der Wert kann entweder eine Seriennummer für ein Hardwaregerät (z. B. GAHT12345678) oder ein Amazon-Ressourcenname (ARN) für ein virtuelles MFA-Gerät (z. B. arn:aws:iam::123456789012:mfa/user) sein.

output

Gibt das Standardausgabeformat für Befehle an, die mit diesem Profil angefordert wurden. Sie können alle folgenden Werte angeben:

  • json: Dies ist der Standardwert. Die Ausgabe erfolgt im JSON-Format.

  • text: Die Ausgabe erfolgt in Form von mehrere Zeilen mit durch Tabstopp getrennten Zeichenfolgewerten, was nützlich sein kann, wenn Sie die Ausgabe an ein Textverarbeitungsprogramm wie grep, sed oder awk senden möchten.

  • table: Die Ausgabe erfolgt in Form einer Tabelle mit den Zeichen +|-, um die Zellenrahmen zu bilden. Normalerweise wird die Information in einem benutzerfreundlichen Format wiedergegeben, das viel einfacher zu lesen ist als die anderen, jedoch programmatisch nicht so nützlich ist.

Kann von der Umgebungsvariablen AWS_DEFAULT_OUTPUT oder mit der Befehlszeilenoption --output überschrieben werden.

output = table
parameter_validation

Gibt an, ob der CLI-Client versucht, Parameter zu validieren, bevor diese an den AWS-Service-Endpunkt gesendet werden.

  • true (wahr): Dies ist der Standardwert. Wenn diese Einstellung konfiguriert ist, nimmt die CLI eine lokale Validierung von Befehlszeilenparametern vor.

  • false (falsch): Wenn dieser Wert konfiguriert ist, validiert die CLI die Befehlszeilenparameter nicht, bevor diese an den AWS-Service-Endpunkt gesendet werden.

Zu diesem Eintrag gibt es keine entsprechende Umgebungsvariable oder Befehlszeilenoption.

parameter_validation = false
region

Gibt die AWS-Standardregion an, an die Anforderungen für Befehle gesendet werden sollen, die mit diesem Befehl angefordert wurden. Sie können einen der für den ausgewählten Service verfügbaren Regionscodes angeben, die unter AWS-Regionen und -Endpunkte in der Allgemeine Amazon Web Services-Referenz aufgeführt sind.

Kann von der Umgebungsvariablen AWS_DEFAULT_REGION oder mit der Befehlszeilenoption --region überschrieben werden.

region = us-west-2
role_arn

Gibt den Amazon-Ressourcennamen (ARN) einer IAM-Rolle an, die Sie zum Ausführen der AWS CLI-Befehle verwenden möchten. Sie müssen auch einen der folgenden Parameter angeben, um die Anmeldeinformationen zu identifizieren, die berechtigt sind, diese Rolle zu übernehmen:

  • source_profile

  • credential_source

role_arn = arn:aws:iam::123456789012:role/role-name
role_session_name

Gibt den Namen an, der der Rollensitzung zugeordnet werden soll. Dieser Wert wird dem Parameter RoleSessionName bereitgestellt, wenn die AWS CLI die Operation AssumeRole aufruft, und wird Teil des Benutzer-ARN der übernommenen Rolle: arn:aws:sts::123456789012:assumed-role/role_name/role_session_name Dieser Parameter ist optional. Wenn Sie diesen Wert nicht angeben, wird automatisch ein Sitzungsname generiert. Dieser Name wird in den AWS CloudTrail-Protokollen für Einträge angezeigt, die dieser Sitzung zugeordnet sind.

role_session_name = maria_garcia_role
source_profile

Gibt ein benanntes Profil mit langfristigen Anmeldeinformationen an, die die AWS CLI verwenden kann, um eine Rolle zu übernehmen, die Sie mit dem Parameter role_arn angegeben haben. Sie können source_profile und credential_source nicht im selben Profil angeben.

source_profile = production-profile
sso_account_id

Die AWS-Konto-ID, die die IAM-Rolle mit der Berechtigung enthält, die Sie dem zugeordneten AWS SSO-Benutzer erteilen möchten.

Diese Einstellung verfügt nicht über eine Umgebungsvariable oder eine Befehlszeilenoption.

sso_account_id = 123456789012
sso_region

Die AWS-Region, die den AWS SSO-Portalhost enthält. Diese ist getrennt vom region-Standard-CLI-Parameter und kann eine andere Region sein.

Diese Einstellung verfügt nicht über eine Umgebungsvariable oder eine Befehlszeilenoption.

aws_sso_region = us_west-2
sso_role_name

Der Anzeigename der IAM-Rolle, die die Berechtigungen des Benutzers bei der Verwendung dieses Profils definiert.

Diese Einstellung verfügt nicht über eine Umgebungsvariable oder eine Befehlszeilenoption.

sso_role_name = ReadAccess
sso_start_url

Die URL, die auf das AWS SSO-Benutzerportal der Organisation verweist. Die AWS CLI verwendet diese URL, um eine Sitzung mit dem AWS SSO-Service zur Authentifizierung seiner Benutzer einzurichten.

Diese Einstellung verfügt nicht über eine Umgebungsvariable oder eine Befehlszeilenoption.

sso_start_url = https://my-sso-portal.awsapps.com/start
sts_regional_endpoints

Gibt den AWS-Service-Endpunkt an, mit dem der AWS CLI-Client mit AWS Security Token Service (AWS STS) spricht. Sie können einen von zwei Werten angeben:

  • regional: Die AWS CLI verwendet den AWS STS-Endpunkt, der der konfigurierten Region entspricht. Wenn der Client beispielsweise für die Verwendung von us-west-2 konfiguriert ist, werden alle Aufrufe von AWS STS über den regionalen Endpunkt des Endpunkts sts.us-west-2.amazonaws.com anstatt des globalen Endpunkts sts.amazonaws.com ausgeführt.

  • legacy: Verwendet den globalen STS-Endpunkt sts.amazonaws.com für die folgenden Regionen: ap-northeast-1, ap-south-1, ap-southeast-1, ap-southeast-2, aws-global, ca-central-1, eu-central-1, eu-north-1, eu-west-1, eu-west-2, eu-west-3, sa-east-1, us-east-1, us-east-2, us-west-1 und us-west-2. Alle anderen Regionen verwenden ihren jeweiligen regionalen Endpunkt.

web_identity_token_file

Gibt den Pfad zu einer Datei an, die ein OAuth 2.0-Zugriffstoken oder OpenID Connect ID-Token enthält, das von einem Identitätsanbieter bereitgestellt wird. Die AWS CLI lädt den Inhalt dieser Datei und übergibt ihn als WebIdentityToken-Argument an die Operation AssumeRoleWithWebIdentity.

tcp_keepalive

Gibt an, ob der CLI-Client TCP-Keepalive-Pakete verwendet.

Zu diesem Eintrag gibt es keine entsprechende Umgebungsvariable oder Befehlszeilenoption.

tcp_keepalive = false

Einstellungen für benutzerdefinierte S3-Befehle

Amazon S3 unterstützt mehrere Einstellungen zur Konfiguration der Ausführung von S3-Operationen über die CLI. Einige gelten für alle S3-Befehle in den s3-Namespaces und den s3api-Namespaces. Andere beziehen sich speziell auf „benutzerdefinierte” S3-Befehle, die allgemeine Operationen abstrahieren und mehr als eine Eins-zu-eins-Zuordnung zu einer API-Operation vornehmen. Für die aws s3-Übertragungsbefehle cp, sync, mv und rm gibt es zusätzliche Einstellungen, die Sie zur Steuerung von S3-Übertragungen verwenden können.

Alle diese Optionen können durch Angabe der verschachtelten Einstellung s3 in Ihrer config-Datei konfiguriert werden. Jede Einstellung wird dann in einer eigenen Zeile eingerückt.

Anmerkung

Diese Einstellungen sind völlig optional. Die aws s3-Übertragungsbefehle müssten auch ohne Konfiguration dieser Einstellungen erfolgreich ausgeführt werden können. Die Einstellungen werden bereitgestellt, damit Sie die Leistung verbessern oder die besondere Umgebung berücksichtigen können, in der Sie diese aws s3-Befehle ausführen.

Die folgenden Einstellungen gelten für alle S3-Befehle in den s3- oder s3api-Namespaces.

addressing_style

Gibt an, welcher Adressierungsstil verwendet werden soll. Dieser Wert steuert, ob der Bucketname im Hostnamen enthalten oder Teil der URL ist. Gültige Werte: path, virtual und auto. Der Standardwert ist auto.

Es gibt zwei Möglichkeiten, einen S3-Endpunkt zu erstellen. Die erste wird als virtual bezeichnet und beinhaltet den Bucket-Namen als Teil des Hostnamens. Beispiel: https://bucketname.s3.amazonaws.com. Alternativ können Sie mit dem path-Stil den Bucket-Namen wie einen Pfad im URI behandeln. Beispiel: https://s3.amazonaws.com/bucketname. Standardmäßig wird in der CLI auto verwendet. Dabei wird versucht, möglichst den virtual-Stil zu verwenden, gegebenenfalls wird jedoch auf den path-Stil zurückgegriffen. Wenn Ihr Bucket-Name beispielsweise nicht DNS-kompatibel ist, kann er nicht Teil des Hostnamens sein und muss im Pfad enthalten sein. Bei Verwendung von auto erkennt die CLI diese Bedingung und schaltet automatisch zum path-Stil um. Wenn Sie als Adressierungsstil path festlegen, müssen Sie sicherstellen, dass die AWS-Region, die Sie in der AWS CLI konfiguriert haben, mit der Region Ihres Buckets übereinstimmt.

payload_sigining_enabled

Gibt an, ob eine SHA256-Signatur für sigv4-Nutzlasten erfolgen soll. Standardmäßig ist diese Einstellung bei Verwendung von HTTPS für Streaming-Uploads (UploadPart und PutObject) deaktiviert. Standardmäßig ist die Einstellung für Streaming-Uploads (UploadPart und PutObject) auf false gesetzt, allerdings nur, wenn ContentMD5 vorhanden ist (wird standardmäßig generiert) und der Endpunkt HTTPS verwendet.

Wenn die Einstellung auf „true” gesetzt wird, erhalten S3-Anforderungen eine zusätzliche Inhaltsvalidierung in Form einer SHA256-Prüfsumme, die berechnet und in die Anforderungssignatur aufgenommen wird. Wenn „false” festgelegt ist, wird die Prüfsumme nicht berechnet. Eine Deaktivierung dieser Einstellung kann nützlich sein, um den durch die Prüfsummenberechnung entstandenen Leistungsaufwand zu reduzieren.

use_dualstack_endpoint

Verwendet den Amazon S3-Dual IPv4-/IPv6-Endpunkt für alle s3- und s3api-Befehle. Der Standardwert von "false". Diese Einstellung und die Einstellung use_accelerate_endpoint schließen sich gegenseitig aus.

Wenn der Wert „true” festgelegt wird, leitet die CLI alle Amazon S3-Anforderungen an den Dual IPv4-/IPv6-Endpunkt für die konfigurierte Region.

use_accelerate_endpoint

Verwendet den Amazon S3 Accelerate-Endpunkt für alle s3- und s3api-Befehle. Der Standardwert ist "false". Diese Einstellung und die Einstellung use_dualstack_endpoint schließen sich gegenseitig aus.

Wenn der Wert „true” festgelegt wird, leitet die CLI alle Amazon S3-Anforderungen an den S3 Accelerate-Endpunkt auf s3-accelerate.amazonaws.com. Um diesen Endpunkt verwenden zu können, müssen Sie Ihrem Bucket die Verwendung von S3 Accelerate ermöglichen. Alle Anforderungen werden unter Verwendung der virtuellen Bucket-Adressierungsform gesendet: my-bucket.s3-accelerate.amazonaws.com. ListBuckets-, CreateBucket- und DeleteBucket -Anfragen werden nicht an den Accelerate-Endpunkt gesendet, da dieser Endpunkt diese Operationen nicht unterstützt. Dieses Verhalten kann auch festgelegt werden, wenn der Parameter --endpoint-url für einen s3- oder s3api-Befehl auf https://s3-accelerate.amazonaws.com oder http://s3-accelerate.amazonaws.com gesetzt ist.

Die folgenden Einstellungen gelten nur für Befehle im Befehlssatz für den s3-Namespace:

max_bandwidth

Gibt die maximale Bandbreite an, die zum Hoch- und Herunterladen von Daten in und aus Amazon S3 verbraucht werden kann. Standardmäßig ist kein Grenzwert festgelegt.

Diese Einstellung begrenzt die maximale Bandbreite, die S3-Befehle zur Übertragung von Daten an und aus S3 nutzen können. Der Wert gilt nur für Uploads und Downloads, nicht für Kopien oder Löschvorgänge. Der Wert wird in Bytes pro Sekunde ausgedrückt. Der Wert kann wie folgt angegeben werden:

  • Als ganze Zahl. Bei Angabe von 1048576 wird für die maximale Bandbreitennutzung beispielsweise 1 Megabyte pro Sekunde festgelegt.

  • Als ganze Zahl, gefolgt von einem Suffix für die Rate. Sie können Suffixe unter Verwendung von KB/s, MB/s oder GB/s angeben. Beispiel: 300KB/s, 10MB/s.

Im Allgemeinen empfehlen wir, zunächst durch Verringerung des Werts für max_concurrent_requests eine niedrigere Bandbreitennutzung anzugeben. Wenn der Bandbreitenverbrauch dadurch nicht angemessen auf die gewünschte Rate begrenzt werden kann, können Sie die Einstellung max_bandwidth verwenden, um den Bandbreitenverbrauch weiter zu begrenzen. Dies liegt daran, dass max_concurrent_requests steuert, wie viele Threads zurzeit ausgeführt werden. Wenn Sie stattdessen zuerst max_bandwidth senken, für max_concurrent_requests jedoch eine hohe Einstellung belassen, kann es sein, dass Threads unnötig lange warten müssen. Dies kann zu einem übermäßigen Ressourcenverbrauch und Zeitüberschreitungen bei der Verbindung führen.

max_concurrent_requests

Gibt die maximale Anzahl gleichzeitiger Anforderungen an. Der Standardwert lautet 10.

Die aws s3-Übertragungsbefehle sind Multithread-Befehle. Zu jedem Zeitpunkt können mehrere Amazon S3-Anforderungen ausgeführt werden. Wenn Sie beispielsweise den Befehl aws s3 cp localdir s3://bucket/ --recursive verwenden, um Dateien in einen S3-Bucket hochzuladen, kann die AWS CLI die Dateien localdir/file1, localdir/file2 und localdir/file3 parallel hochladen. Die Einstellung max_concurrent_requests gibt die maximale Anzahl von Übertragungsoperationen an, die gleichzeitig ausgeführt werden können.

Unter Umständen müssen Sie diesen Wert aus einem der folgenden Gründe ändern:

  • Verringerung dieses Werts – in einigen Umgebungen kann der Standardwert von 10 gleichzeitigen Anforderungen zu einer Überlastung des Systems führen. Die Folge können Zeitüberschreitungen bei der Verbindung oder eine herabgesetzte Reaktionsfähigkeit des Systems sein. Wenn Sie diesen Wert senken, sind die S3-Übertragungsbefehle weniger ressourcenintensiv. Der Nachteil ist jedoch, dass S3-Übertragungen länger dauern können. Eine Senkung dieses Wertes könnte erforderlich sein, wenn Sie ein Tool zur Begrenzung der Bandbreite verwenden.

  • Erhöhung dieses Werts – in einigen Fällen kann es sinnvoll sein, die S3-Übertragungen so schnell wie möglich durchzuführen und dabei so viel Netzwerkbandbreite wie nötig zu beanspruchen. In einem solchen Fall reicht die standardmäßige Anzahl gleichzeitiger Anforderungen möglicherweise nicht aus, um die gesamte verfügbare Netzwerkbandbreite zu nutzen. Eine Erhöhung dieses Werts kann dazu führen, dass sich die Zeit für die Durchführung einer S3-Übertragung verkürzt.

max_queue_size

Gibt die maximale Anzahl von Aufgaben in der Aufgabenwarteschlange an. Der Standardwert lautet 1000.

Die AWS CLI verwendet intern ein Modell, bei dem S3-Aufgaben in die Warteschlange gestellt und dann von Konsumenten ausgeführt werden, deren Zahl durch max_concurrent_requests begrenzt ist. Eine Aufgabe entspricht im Allgemeinen einer einzelnen S3-Operation. Eine mögliche Aufgabe könnte beispielsweise PutObjectTask, GetObjectTask, oder UploadPartTask sein. Die Aufgaben können der Warteschlange viel schneller hinzugefügt werden, als die Konsumenten die Aufgaben abschließen. Um ein unbegrenztes Wachstum zu vermeiden, ist die Größe der Aufgabenwarteschlange begrenzt. Diese Einstellung ändert den Wert dieser maximalen Anzahl.

Im Allgemeinen müssen Sie diese Einstellung nicht ändern. Diese Einstellung entspricht auch der Anzahl Aufgaben, von denen die CLI weiß, dass sie ausgeführt werden müssen. Somit kann die CLI standardmäßig nur 1000 Aufgaben vorab sehen. Solange der S3-Befehl die Gesamtanzahl der ausgeführten Aufgaben nicht kennt, wird in der Fortschrittszeile eine Gesamtzahl von ... angezeigt. Wenn dieser Wert erhöht wird, weiß die CLI schneller, wie viele Aufgaben insgesamt benötigt werden, vorausgesetzt, die Einreihung in die Warteschlange erfolgt schneller als die Aufgabenausführung. Der Nachteil besteht darin, dass für eine größere maximale Warteschlangengröße mehr Speicher benötigt wird.

multipart_chunksize

Gibt die Blockgröße an, welche die CLI für mehrteilige Übertragungen einzelner Dateien verwendet. Der Standardwert ist 8 MB, der Mindestwert liegt bei 5 MB.

Wenn eine Datei den multipart_threshold-Wert überschreitet, teilt die CLI die Datei in Blöcke dieser Größe. Dieser Wert kann mit derselben Syntax wie multipart_threshold angegeben werden, also entweder als ganzzahlige Bytezahl oder unter Verwendung einer Größe und eines Suffixes.

multipart_threshold

Gibt den Größenschwellenwert an, den die CLI für mehrteilige Übertragungen einzelner Dateien verwendet. Der Standardwert ist 8 MB.

Beim Hochladen, Herunterladen oder Kopieren einer Datei gehen die S3-Befehle zu mehrteiligen Operationen über, wenn die Datei diese Größe überschreitet. Sie können diesen Wert auf zwei Arten angeben:

  • Dateigröße in Bytes. Beispiel, 1048576.

  • Dateigröße mit einem Größensuffix. Sie können KB, MB, GB oder TB verwenden. Beispiel: 10MB, 1GB.

    Anmerkung

    S3 kann Beschränkungen für gültige Werte anwenden, die für mehrteilige Operationen verwendet werden können. Weitere Informationen finden Sie in der S3-Dokumentation zu mehrteiligen Uploads im Entwicklerhandbuch für Amazon Simple Storage Service.

Diese Einstellungen werden alle unter einem s3-Schlüssel der obersten Ebene in der config-Datei festgelegt, wie im folgenden Beispiel für das development-Profil dargestellt:

[profile development] s3 = max_concurrent_requests = 20 max_queue_size = 10000 multipart_threshold = 64MB multipart_chunksize = 16MB max_bandwidth = 50MB/s use_accelerate_endpoint = true addressing_style = path