

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.

# Weltweite Konfiguration AWS SDKs und Tools
<a name="creds-config-files"></a>

Mit AWS SDKs und anderen AWS Entwicklertools wie dem AWS Command Line Interface (AWS CLI) können Sie mit dem AWS Service interagieren APIs. Bevor Sie dies versuchen, müssen Sie das SDK oder das Tool jedoch mit den Informationen konfigurieren, die es für die Ausführung des angeforderten Vorgangs benötigt. 

Diese Informationen umfassen die folgenden Elemente:
+ **Informationen zu Anmeldeinformationen**, anhand derer identifiziert wird, wer die API aufruft. Die Anmeldeinformationen werden verwendet, um die Anfrage an die AWS Server zu verschlüsseln. Anhand dieser Informationen wird Ihre Identität AWS bestätigt und die zugehörigen Berechtigungsrichtlinien können abgerufen werden. Dann kann es bestimmen, welche Aktionen Sie ausführen dürfen.
+ **Andere Konfigurationsdetails**, anhand derer Sie dem AWS CLI SDK mitteilen, wie die Anfrage verarbeitet werden soll, wohin die Anfrage gesendet werden soll (an welchen AWS Dienstendpunkt) und wie die Antwort interpretiert oder angezeigt werden soll.

Jedes SDK oder Tool unterstützt mehrere Quellen, über die Sie die erforderlichen Anmeldeinformationen und Konfigurationsinformationen bereitstellen können. Einige Quellen sind nur für das SDK oder Tool verfügbar. Einzelheiten zur Verwendung dieser Methode finden Sie in der Dokumentation zu diesem Tool oder SDK.

Die Tools AWS SDKs und und unterstützen jedoch allgemeine Einstellungen aus Primärquellen, die über den Code selbst hinausgehen. Dieser Abschnitt deckt die folgenden Themen ab:

**Topics**
+ [Verwenden von geteilten `credentials` Dateien `config` und Dateien zur globalen Konfiguration AWS SDKs und Tools](file-format.md)
+ [Suchen und Ändern des Speicherorts der geteilten `credentials` Dateien `config` AWS SDKs und Tools](file-location.md)
+ [Verwendung von Umgebungsvariablen zur globalen Konfiguration AWS SDKs und Tools](environment-variables.md)
+ [Verwenden von JVM-Systemeigenschaften zur globalen Konfiguration AWS SDK für Java und AWS SDK für Kotlin](jvm-system-properties.md)

# Verwenden von geteilten `credentials` Dateien `config` und Dateien zur globalen Konfiguration AWS SDKs und Tools
<a name="file-format"></a>

Die gemeinsam genutzten `credentials` Dateien AWS `config` und Dateien sind die gängigste Methode, um die Authentifizierung und Konfiguration für ein AWS SDK oder Tool festzulegen.

Die gemeinsam genutzten `credentials` Dateien `config` und Dateien enthalten eine Reihe von Profilen. Ein Profil ist ein Satz von Konfigurationseinstellungen in Schlüssel-Wert-Paaren, der von AWS SDKs, the AWS Command Line Interface (AWS CLI) und anderen Tools verwendet wird. Konfigurationswerte werden an ein Profil angehängt, um einen bestimmten Aspekt der SDK/tool Verwendung dieses Profils zu konfigurieren. Diese Dateien werden insofern „gemeinsam genutzt“, als die Werte für alle Anwendungen, Prozesse oder in SDKs der lokalen Umgebung eines Benutzers wirksam werden.

Sowohl die gemeinsam genutzten `config` Dateien als auch die `credentials` Dateien sind Klartextdateien, die nur ASCII-Zeichen (UTF-8-kodiert) enthalten. [Sie haben die Form von Dateien, die allgemein als INI-Dateien bezeichnet werden.](https://wikipedia.org/wiki/INI_file)

## Profile
<a name="file-format-profile"></a>

Die Einstellungen in den geteilten `credentials` Dateien `config` und Dateien sind einem bestimmten Profil zugeordnet. In der Datei können mehrere Profile definiert werden, um unterschiedliche Einstellungskonfigurationen für unterschiedliche Entwicklungsumgebungen zu erstellen.

 Das `[default]` Profil enthält die Werte, die von einem SDK- oder Tool-Vorgang verwendet werden, wenn kein bestimmtes benanntes Profil angegeben ist. Sie können auch separate Profile erstellen, auf die Sie explizit anhand ihres Namens verweisen können. Jedes Profil kann je nach Anwendung und Szenario unterschiedliche Einstellungen und Werte verwenden. 

**Anmerkung**  
`[default]`ist einfach ein unbenanntes Profil. Dieses Profil hat seinen Namen`default`, weil es das Standardprofil ist, das vom SDK verwendet wird, wenn der Benutzer kein Profil angibt. Es stellt anderen Profilen keine vererbten Standardwerte zur Verfügung. Wenn Sie im `[default]` Profil etwas festlegen und es nicht in einem benannten Profil festlegen, wird der Wert nicht festgelegt, wenn Sie das benannte Profil verwenden. 

### Legen Sie ein benanntes Profil fest
<a name="set-named-profile"></a>

Das `[default]` Profil und mehrere benannte Profile können in derselben Datei vorhanden sein. Verwenden Sie die folgende Einstellung, um auszuwählen, welche Profileinstellungen von Ihrem SDK oder Tool bei der Ausführung Ihres Codes verwendet werden. Profile können auch innerhalb des Codes oder pro Befehl ausgewählt werden, wenn Sie mit dem AWS CLI arbeiten. 

Konfigurieren Sie diese Funktionalität, indem Sie eine der folgenden Einstellungen festlegen:

**`AWS_PROFILE`- Umgebungsvariable**  
Wenn diese Umgebungsvariable auf ein benanntes Profil oder „Standard“ gesetzt ist, verwenden der gesamte SDK-Code und alle AWS CLI Befehle die Einstellungen in diesem Profil.  
Linux/macOS-Beispiel für das Setzen von Umgebungsvariablen über die Befehlszeile:  

```
export AWS_PROFILE="my_default_profile_name";
```
Windows-Beispiel für das Setzen von Umgebungsvariablen über die Befehlszeile:  

```
setx AWS_PROFILE "my_default_profile_name"
```

**`aws.profile`- JVM-Systemeigenschaft**  
Für das SDK für Kotlin auf der JVM und das SDK for Java 2.x können Sie [die `aws.profile` Systemeigenschaft festlegen](jvm-system-properties.md#jvm-sys-props-set). Wenn das SDK einen Dienstclient erstellt, verwendet es die Einstellungen im genannten Profil, sofern die Einstellung nicht im Code überschrieben wird. Das SDK for Java 1.x unterstützt diese Systemeigenschaft nicht.

**Anmerkung**  
Wenn sich Ihre Anwendung auf einem Server befindet, auf dem mehrere Anwendungen ausgeführt werden, empfehlen wir, immer benannte Profile anstelle des Standardprofils zu verwenden. Das Standardprofil wird automatisch von allen AWS Anwendungen in der Umgebung übernommen und von allen Anwendungen gemeinsam genutzt. Wenn also jemand anderes das Standardprofil für seine Anwendung aktualisiert, kann sich dies unbeabsichtigt auf die anderen auswirken. Um dies zu verhindern, definieren Sie ein benanntes Profil in der gemeinsam genutzten `config` Datei und verwenden Sie dann dieses benannte Profil in Ihrer Anwendung, indem Sie das benannte Profil in Ihrem Code festlegen. Sie können die Umgebungsvariable oder die JVM-Systemeigenschaft verwenden, um das benannte Profil festzulegen, wenn Sie wissen, dass sich sein Geltungsbereich nur auf Ihre Anwendung auswirkt.

## Format der Konfigurationsdatei
<a name="file-format-config"></a>

Die `config` Datei ist in Abschnitte unterteilt. Ein Abschnitt ist eine benannte Sammlung von Einstellungen und reicht bis zur nächsten Abschnittsdefinitionszeile.

Die `config` Datei ist eine Klartextdatei, die das folgende Format verwendet:
+ Alle Einträge in einem Abschnitt haben das allgemeine Format `setting-name=value`.
+ Zeilen können auskommentiert werden, indem die Zeile mit einem Hashtag-Zeichen (`#`) begonnen wird.

### Typen von Abschnitten
<a name="section-types"></a>

Eine Abschnittsdefinition ist eine Zeile, die einer Sammlung von Einstellungen einen Namen zuweist. Die Zeilen der Abschnittsdefinition beginnen und enden mit eckigen Klammern (`[``]`). Innerhalb der Klammern befinden sich eine Typ-ID für den Abschnitt und ein benutzerdefinierter Name für den Abschnitt. Sie können Buchstaben, Zahlen, Bindestriche () und Unterstriche (`-``_`) verwenden, aber keine Leerzeichen.

#### Abschnittstyp: `default`
<a name="section-default"></a>

Beispiel für eine Abschnittsdefinitionszeile: `[default]`

 `[default]`ist das einzige Profil, für das die `profile` Abschnitts-ID nicht erforderlich ist. 

Das folgende Beispiel zeigt eine `config` Basisdatei mit einem `[default]` Profil. Es legt die [`region`](feature-region.md)Einstellung fest. Alle Einstellungen, die dieser Zeile folgen, sind Teil dieses Profils, bis eine andere Abschnittsdefinition gefunden wird. 

```
[default]
#Full line comment, this text is ignored.
region = us-east-2
```

#### Abschnittstyp: `profile`
<a name="section-profile"></a>

Beispiel für eine Abschnittsdefinitionszeile: `[profile dev]`

Die `profile` Abschnittsdefinitionszeile ist eine benannte Konfigurationsgruppierung, die Sie für verschiedene Entwicklungsszenarien anwenden können. Weitere Informationen zu benannten Profilen finden Sie im vorherigen Abschnitt über Profile. 

Das folgende Beispiel zeigt eine `config` Datei mit einer `profile` Abschnittsdefinitionszeile und einem benannten Profil namens`foo`. Alle Einstellungen, die auf diese Zeile folgen, bis eine andere Abschnittsdefinition gefunden wird, sind Teil dieses benannten Profils. 

```
[profile foo]
...settings...
```

Einige Einstellungen haben ihre eigene verschachtelte Gruppe von Untereinstellungen, wie die `s3` Einstellung und die Untereinstellungen im folgenden Beispiel. Ordnen Sie die Untereinstellungen der Gruppe zu, indem Sie sie um ein oder mehrere Leerzeichen einrücken.

```
[profile test]
region = us-west-2
s3 =
    max_concurrent_requests=10
    max_queue_size=1000
```

#### Abschnittstyp: `sso-session`
<a name="section-session"></a>

Beispiel für eine Abschnittsdefinitionszeile: `[sso-session my-sso]`

Die `sso-session` Abschnittsdefinitionszeile benennt eine Gruppe von Einstellungen, die Sie verwenden, um ein Profil für die Auflösung von AWS Anmeldeinformationen zu konfigurieren AWS IAM Identity Center. Weitere Informationen zur Konfiguration der Single Sign-On-Authentifizierung finden Sie unter[Verwenden von IAM Identity Center zur Authentifizierung von AWS SDK und Tools](access-sso.md). Ein Profil ist mit einem `sso-session` Abschnitt durch ein Schlüssel-Wert-Paar verknüpft, wobei `sso-session` der Schlüssel und der Name Ihres `sso-session` Abschnitts der Wert ist, z. B. `sso-session = <name-of-sso-session-section>` 

Im folgenden Beispiel wird ein Profil konfiguriert, das mithilfe eines Tokens von „my-sso“ kurzfristige AWS Anmeldeinformationen für die IAM-Rolle SampleRole "" im Konto „111122223333" erhält. Der Abschnitt „my-sso“ wird im `sso-session` Abschnitt unter Verwendung des Schlüssels namentlich referenziert. `profile` `sso-session` 

```
[profile dev]
sso_session = my-sso
sso_account_id = 111122223333
sso_role_name = SampleRole

[sso-session my-sso]
sso_region = us-east-1
sso_start_url = https://my-sso-portal.awsapps.com/start
```

#### Abschnittstyp: `services`
<a name="section-services"></a>

Beispiel für eine Abschnittsdefinitionszeile: `[services dev]`

**Anmerkung**  
Der `services` Abschnitt unterstützt dienstspezifische Endpunktanpassungen und ist nur in SDKs Tools verfügbar, die diese Funktion enthalten. Informationen darüber, ob diese Funktion für Ihr SDK verfügbar ist, finden Sie unter Servicespezifische [Support von AWS SDKs und Tools](feature-ss-endpoints.md#ss-endpoints-sdk-compat) Endpunkte.

`services`In der Definitionszeile des Abschnitts wird eine Gruppe von Einstellungen benannt, mit denen benutzerdefinierte Endpunkte für Anfragen konfiguriert werden. AWS-Service Ein Profil ist mit einem `services` Abschnitt durch ein Schlüssel-Wert-Paar verknüpft, wobei `services` der Schlüssel und der Name Ihres `services` Abschnitts der Wert ist, z. B. `services = <name-of-services-section>` 

 Der `services` Abschnitt ist weiter durch `<SERVICE> = ` Zeilen in Unterabschnitte unterteilt, wobei sich der `<SERVICE>` AWS-Service Identifikationsschlüssel befindet. Der AWS-Service Bezeichner basiert auf dem API-Modell, indem alle Leerzeichen `serviceId` durch Unterstriche ersetzt und alle Buchstaben klein geschrieben werden. Eine Liste aller Service-ID-Schlüssel, die im `services`-Abschnitt verwendet werden können, finden Sie unter [Identifikatoren für dienstspezifische Endpunkte](ss-endpoints-table.md). Auf den Service-ID-Schlüssel folgen verschachtelte Einstellungen, die jeweils in einer eigenen Zeile stehen, welche durch zwei Leerzeichen eingerückt sind. 

 Das folgende Beispiel verwendet eine `services` Definition, um den Endpunkt so zu konfigurieren, dass er nur für Anfragen verwendet wird, die an den Amazon DynamoDB Dienst gestellt werden. Der `"local-dynamodb"` `services` Abschnitt wird im `profile` Abschnitt unter Verwendung des `services` Schlüssels namentlich referenziert. Der AWS-Service Identifikationsschlüssel lautet`dynamodb`. Der Unterabschnitt Amazon DynamoDB Service beginnt in der Zeile`dynamodb = `. Alle unmittelbar folgenden Zeilen, die eingerückt sind, sind in diesem Unterabschnitt enthalten und gelten für diesen Service. 

```
[profile dev]
services = local-dynamodb

[services local-dynamodb]
dynamodb = 
  endpoint_url = http://localhost:8000
```

Weitere Informationen zur Konfiguration benutzerdefinierter Endgeräte finden Sie unter[Servicespezifische Endpunkte](feature-ss-endpoints.md).

## Format der Datei mit den Anmeldeinformationen
<a name="file-format-creds"></a>

Die Regeln für die `credentials` Datei sind im Allgemeinen identisch mit denen für die `config` Datei, mit der Ausnahme, dass Profilabschnitte nicht mit dem Wort beginnen`profile`. Verwenden Sie nur den Profilnamen selbst in eckigen Klammern. Das folgende Beispiel zeigt eine `credentials` Datei mit einem benannten Profilabschnitt namens`foo`. 

```
[foo]
...credential settings...
```

Nur die folgenden Einstellungen, die als „geheim“ oder vertraulich gelten, können in der `credentials` Datei gespeichert werden: `aws_access_key_id``aws_secret_access_key`, und`aws_session_token`. Diese Einstellungen können zwar auch in der gemeinsam genutzten `config` Datei platziert werden, wir empfehlen jedoch, diese sensiblen Werte in der separaten `credentials` Datei beizubehalten. Auf diese Weise können Sie bei Bedarf separate Berechtigungen für jede Datei bereitstellen.

Das folgende Beispiel zeigt eine `credentials` Basisdatei mit einem `[default]` Profil. Es legt die `aws_session_token` globalen Einstellungen für [`aws_access_key_id``aws_secret_access_key`, und](feature-static-credentials.md) fest.

```
[default]
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token=IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
```

Unabhängig davon, ob Sie ein benanntes Profil oder `default` "" in Ihrer `credentials` Datei verwenden, werden alle Einstellungen hier mit allen Einstellungen aus Ihrer `config` Datei kombiniert, die denselben Profilnamen verwendet. Wenn in beiden Dateien Anmeldeinformationen für ein Profil mit demselben Namen vorhanden sind, haben die Schlüssel in der Anmeldeinformationsdatei Vorrang. 

# Suchen und Ändern des Speicherorts der geteilten `credentials` Dateien `config` AWS SDKs und Tools
<a name="file-location"></a>

Bei den gemeinsam genutzten `credentials` Dateien AWS `config` und Dateien handelt es sich um Klartextdateien, die Konfigurationsinformationen für die Tools AWS SDKs und enthalten. Die Dateien befinden sich lokal in Ihrer Umgebung und werden automatisch vom SDK-Code oder von AWS CLI Befehlen verwendet, die Sie in dieser Umgebung ausführen. Zum Beispiel auf Ihrem eigenen Computer oder bei der Entwicklung auf einer Amazon Elastic Compute Cloud-Instanz. 

Wenn das SDK oder Tool ausgeführt wird, sucht es nach diesen Dateien und lädt alle verfügbaren Konfigurationseinstellungen. Wenn die Dateien noch nicht vorhanden sind, wird vom SDK oder Tool automatisch eine Basisdatei erstellt.

Standardmäßig befinden sich die Dateien in einem Ordner mit dem Namen`.aws`, der sich in Ihrem Ordner `home` oder Ihrem Benutzerordner befindet. 


| Betriebssystem | Standardspeicherort und Name der Dateien | 
| --- | --- | 
| Unter Linux und macOS |  `~/.aws/config` `~/.aws/credentials`  | 
| Windows |  `%USERPROFILE%\.aws\config` `%USERPROFILE%\.aws\credentials`  | 

## Auflösung des Home-Verzeichnisses
<a name="homeDirRes"></a>

`~`wird nur für die Auflösung des Home-Verzeichnisses verwendet, wenn
+ Startet den Pfad
+ Darauf folgt unmittelbar ein plattformspezifisches Trennzeichen `/` oder ein plattformspezifisches Trennzeichen. Unter Windows, `~/` und `~\` beide werden in das Home-Verzeichnis aufgelöst. 

Bei der Bestimmung des Home-Verzeichnisses werden die folgenden Variablen geprüft:
+ (Alle Plattformen) Die `HOME` Umgebungsvariable
+ (Windows-Plattformen) Die `USERPROFILE` Umgebungsvariable
+ (Windows-Plattformen) Die Verkettung von Variablen `HOMEDRIVE` und `HOMEPATH` Umgebungsvariablen () `$HOMEDRIVE$HOMEPATH`
+ (Optional pro SDK oder Tool) Eine SDK- oder toolspezifische Funktion oder Variable zur Auflösung von Startpfaden

Wenn das Home-Verzeichnis eines Benutzers am Anfang des Pfads angegeben wird (z. B.`~username/`), wird es nach Möglichkeit in das Home-Verzeichnis des angeforderten Benutzernamens aufgelöst (z. B.`/home/username/.aws/config`).

## Ändern Sie den Standardspeicherort dieser Dateien
<a name="file-location-change"></a>

Sie können eine der folgenden Optionen verwenden, um zu ändern, woher diese Dateien vom SDK oder Tool geladen werden.

### Verwenden Sie Umgebungsvariablen
<a name="file-location-change-envar"></a>

Die folgenden Umgebungsvariablen können festgelegt werden, um den Speicherort oder den Namen dieser Dateien vom Standardwert in einen benutzerdefinierten Wert zu ändern:
+ `config`Datei-Umgebungsvariable: **`AWS_CONFIG_FILE`**
+ `credentials`Dateiumgebungsvariable: **`AWS_SHARED_CREDENTIALS_FILE`**

------
#### [ Linux/macOS ]

Sie können einen alternativen Speicherort angeben, indem Sie die folgenden [Exportbefehle](https://linuxconfig.org/learning-linux-commands-export) unter Linux oder macOS ausführen.

```
$ export AWS_CONFIG_FILE=/some/file/path/on/the/system/config-file-name
$ export AWS_SHARED_CREDENTIALS_FILE=/some/other/file/path/on/the/system/credentials-file-name
```

------
#### [ Windows ]

Sie können einen alternativen Speicherort angeben, indem Sie die folgenden [setx-Befehle](https://docs.microsoft.com/windows-server/administration/windows-commands/setx) unter Windows ausführen.

```
C:\> setx AWS_CONFIG_FILE c:\some\file\path\on\the\system\config-file-name
C:\> setx AWS_SHARED_CREDENTIALS_FILE c:\some\other\file\path\on\the\system\credentials-file-name
```

------

Weitere Informationen zur Konfiguration Ihres Systems mithilfe von Umgebungsvariablen finden Sie unter[Verwendung von Umgebungsvariablen zur globalen Konfiguration AWS SDKs und Tools](environment-variables.md).

### Verwenden Sie JVM-Systemeigenschaften
<a name="file-location-change-jvmSysProp"></a>

Für das SDK für Kotlin, das auf der JVM läuft, und für das SDK for Java 2.x können Sie die folgenden JVM-Systemeigenschaften festlegen, um den Speicherort oder den Namen dieser Dateien vom Standard auf einen benutzerdefinierten Wert zu ändern:
+ `config`Datei-JVM-Systemeigenschaft: **`aws.configFile`**
+ `credentials`Datei-Umgebungsvariable: **`aws.sharedCredentialsFile`**

Anweisungen zum Einstellen der JVM-Systemeigenschaften finden Sie unter[Wie legt man die JVM-Systemeigenschaften fest](jvm-system-properties.md#jvm-sys-props-set). Das SDK for Java 1.x unterstützt diese Systemeigenschaften nicht.

# Verwendung von Umgebungsvariablen zur globalen Konfiguration AWS SDKs und Tools
<a name="environment-variables"></a>

Umgebungsvariablen bieten eine weitere Möglichkeit, Konfigurationsoptionen und Anmeldeinformationen bei der Verwendung von AWS SDKs AND-Tools anzugeben. Umgebungsvariablen können nützlich sein, um Skripts zu erstellen oder vorübergehend ein benanntes Profil als Standard festzulegen. Eine Liste der Umgebungsvariablen, die von den meisten unterstützt werden SDKs, finden Sie unter[Liste der Umgebungsvariablen](settings-reference.md#EVarSettings).

**Vorrang von Optionen**
+ Wenn Sie eine Einstellung mithilfe der zugehörigen Umgebungsvariablen angeben, überschreibt sie alle Werte, die aus einem Profil in den gemeinsam genutzten AWS `config` `credentials` Dateien geladen wurden. 
+ Wenn Sie eine Einstellung mithilfe eines Parameters in der AWS CLI Befehlszeile angeben, überschreibt sie jeden Wert aus der entsprechenden Umgebungsvariablen oder einem Profil in der Konfigurationsdatei.

## Festlegen von Umgebungsvariablen
<a name="envvars-set"></a>

Die folgenden Beispiele zeigen, wie Sie Umgebungsvariablen für den Standardbenutzer konfigurieren können.

------
#### [ Linux, macOS, or Unix ]

```
$ export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
$ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
$ export AWS_SESSION_TOKEN=AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
$ export AWS_REGION=us-west-2
```

Durch die Festlegung der Umgebungsvariablen wird der verwendete Wert bis zum Ende der Shell-Sitzung oder bis zur Festlegung eines anderen Wertes für die Variable geändert. Sie können Variablen für zukünftige Sitzungen persistent machen, indem Sie sie im Startup-Skript Ihrer Shell festlegen.

------
#### [ Windows Command Prompt ]

```
C:\> setx AWS_ACCESS_KEY_ID AKIAIOSFODNN7EXAMPLE
C:\> setx AWS_SECRET_ACCESS_KEY wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
C:\> setx AWS_SESSION_TOKEN AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
C:\> setx AWS_REGION us-west-2
```

Wenn `[set](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1)` Sie eine Umgebungsvariable festlegen, ändert sich der verwendete Wert bis zum Ende der aktuellen Befehlszeilensitzung oder bis Sie die Variable auf einen anderen Wert setzen. Wenn [https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx)Sie eine Umgebungsvariable festlegen, ändert sich der Wert, der sowohl in der aktuellen Eingabeaufforderungssitzung als auch in allen Befehlszeilensitzungen verwendet wird, die Sie nach der Ausführung des Befehls erstellen. Andere Befehls-Shells, die zum Zeitpunkt der Befehlsausführung bereits ausgeführt werden, sind hiervon ***nicht*** betroffen.

------
#### [ PowerShell ]

```
PS C:\> $Env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
PS C:\> $Env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
PS C:\> $Env:AWS_SESSION_TOKEN="AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk"
PS C:\> $Env:AWS_REGION="us-west-2"
```

Wenn Sie an der PowerShell Eingabeaufforderung eine Umgebungsvariable festlegen, wie in den vorherigen Beispielen gezeigt, wird der Wert nur für die Dauer der aktuellen Sitzung gespeichert. Um die Einstellung der Umgebungsvariablen für alle Sitzungen PowerShell und Befehlszeilensitzungen beizubehalten, speichern Sie sie mithilfe der **Systemanwendung** in der **Systemsteuerung**. Alternativ können Sie die Variable für alle future PowerShell Sitzungen festlegen, indem Sie sie Ihrem PowerShell Profil hinzufügen. Weitere Informationen zum Speichern von Umgebungsvariablen oder deren Beibehaltung über mehrere Sitzungen hinweg finden Sie in der [PowerShell Dokumentation](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_environment_variables).

------

## Einrichtung von serverlosen Umgebungsvariablen
<a name="serverless"></a>

 Wenn Sie eine serverlose Architektur für die Entwicklung verwenden, haben Sie andere Optionen zum Setzen von Umgebungsvariablen. Abhängig von Ihrem Container können Sie unterschiedliche Strategien für Code verwenden, der in diesen Containern ausgeführt wird, um Umgebungsvariablen zu sehen und darauf zuzugreifen, ähnlich wie in Nicht-Cloud-Umgebungen. 

Mit können Sie AWS Lambda beispielsweise Umgebungsvariablen direkt festlegen. Einzelheiten finden Sie unter [Verwenden von AWS Lambda Umgebungsvariablen](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html) im *AWS Lambda Entwicklerhandbuch*. 

In Serverless Framework können Sie häufig SDK-Umgebungsvariablen in der `serverless.yml` Datei unter dem Provider-Schlüssel unter der Umgebungseinstellung festlegen. Informationen zur `serverless.yml` Datei finden Sie unter [Allgemeine Funktionseinstellungen](https://www.serverless.com/framework/docs/providers/aws/guide/serverless.yml#general-function-settings) in der Serverless Framework-Dokumentation. 

Unabhängig davon, welchen Mechanismus Sie zum Setzen von Container-Umgebungsvariablen verwenden, gibt es einige, die vom Container reserviert sind, z. B. diejenigen, die für Lambda at [Defined Runtime-Umgebungsvariablen](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-runtime) dokumentiert sind. Schlagen Sie immer in der offiziellen Dokumentation des Containers nach, den Sie verwenden, um festzustellen, wie Umgebungsvariablen behandelt werden und ob es Einschränkungen gibt. 

# Verwenden von JVM-Systemeigenschaften zur globalen Konfiguration AWS SDK für Java und AWS SDK für Kotlin
<a name="jvm-system-properties"></a>

[JVM-Systemeigenschaften](https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html) bieten eine weitere Möglichkeit, Konfigurationsoptionen und Anmeldeinformationen für Dateien anzugeben SDKs , die auf der JVM ausgeführt werden, z. B. die und die AWS SDK für Java . AWS SDK für Kotlin[Eine Liste der JVM-Systemeigenschaften, die von unterstützt werden SDKs, finden Sie in der Einstellungsreferenz.](settings-reference.md#JVMSettings)

**Vorrang von Optionen**
+ Wenn Sie eine Einstellung mithilfe ihrer JVM-Systemeigenschaft angeben, überschreibt sie jeden Wert, der in Umgebungsvariablen gefunden oder aus einem Profil in den gemeinsam genutzten AWS `config` und `credentials` Dateien geladen wurde.
+ Wenn Sie eine Einstellung mithilfe der zugehörigen Umgebungsvariablen angeben, überschreibt sie alle Werte, die aus einem Profil im gemeinsam genutzten AWS `config` und in den `credentials` Dateien geladen wurden.

## Wie legt man die JVM-Systemeigenschaften fest
<a name="jvm-sys-props-set"></a>

Sie können die JVM-Systemeigenschaften auf verschiedene Arten festlegen.

### In der Befehlszeile
<a name="jvm-sys-props-set-cl"></a>

Stellen Sie die JVM-Systemeigenschaften in der Befehlszeile ein, wenn Sie den `java` Befehl mit dem Switch aufrufen. `-D` Der folgende Befehl konfiguriert AWS-Region global für alle Service-Clients, sofern Sie den Wert im Code nicht explizit überschreiben.

```
java -Daws.region=us-east-1 -jar <your_application.jar> <other_arguments>
```

Wenn Sie mehrere JVM-Systemeigenschaften festlegen müssen, geben Sie den `-D` Switch mehrmals an.

### Mit einer Umgebungsvariablen
<a name="jvm-sys-props-set-evar"></a>

Wenn Sie nicht auf die Befehlszeile zugreifen können, um die JVM zum Ausführen Ihrer Anwendung aufzurufen, können Sie die `JAVA_TOOL_OPTIONS` Umgebungsvariable verwenden, um Befehlszeilenoptionen zu konfigurieren. Dieser Ansatz ist beispielsweise beim Ausführen einer AWS Lambda Funktion in der Java-Laufzeit oder beim Ausführen von Code in einer eingebetteten JVM nützlich.

Im folgenden Beispiel wird AWS-Region global für alle Service-Clients konfiguriert, sofern Sie den Wert im Code nicht explizit überschreiben.

------
#### [ Linux, macOS, or Unix ]

```
$ export JAVA_TOOL_OPTIONS="-Daws.region=us-east-1"
```

Durch die Festlegung der Umgebungsvariablen wird der verwendete Wert bis zum Ende der Shell-Sitzung oder bis zur Festlegung eines anderen Wertes für die Variable geändert. Sie können Variablen für zukünftige Sitzungen persistent machen, indem Sie sie im Startup-Skript Ihrer Shell festlegen.

------
#### [ Windows Command Prompt ]

```
C:\> setx JAVA_TOOL_OPTIONS -Daws.region=us-east-1
```

Wenn `[set](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/set_1)` Sie eine Umgebungsvariable festlegen, ändert sich der verwendete Wert bis zum Ende der aktuellen Eingabeaufforderungssitzung oder bis Sie die Variable auf einen anderen Wert setzen. Wenn [https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/setx)Sie eine Umgebungsvariable festlegen, ändert sich der Wert, der sowohl in der aktuellen Eingabeaufforderungssitzung als auch in allen Befehlszeilensitzungen verwendet wird, die Sie nach der Ausführung des Befehls erstellen. Andere Befehls-Shells, die zum Zeitpunkt der Befehlsausführung bereits ausgeführt werden, sind hiervon ***nicht*** betroffen.

------

### Zur Laufzeit
<a name="jvm-sys-props-set-runtime"></a>

Sie können JVM-Systemeigenschaften auch zur Laufzeit im Code festlegen, indem Sie die `System.setProperty` Methode verwenden, wie im folgenden Beispiel gezeigt.

```
System.setProperty("aws.region", "us-east-1");
```

**Wichtig**  
Legen Sie alle JVM-Systemeigenschaften fest, *bevor* Sie SDK-Dienstclients initialisieren, da Dienstclients andernfalls möglicherweise andere Werte verwenden.