

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.

# Verwenden Sie AWS gemeinsam genutzte Konfigurationsprofile in AWS SDK for Java 2.x
<a name="credentials-profiles"></a>

Mithilfe von Shared `config` und `credentials` File können Sie mehrere Profile einrichten. Dadurch kann Ihre Anwendung mehrere Konfigurationssätze für Anmeldeinformationen verwenden. Das `[default]` Profil wurde bereits erwähnt. Das SDK verwendet die [ProfileCredentialsProvider](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/auth/credentials/ProfileCredentialsProvider.html)Klasse, um Einstellungen aus Profilen zu laden, die in der gemeinsam genutzten `credentials` Datei definiert sind.

Der folgende Codeausschnitt zeigt, wie ein Dienstclient erstellt wird, der die Einstellungen verwendet, die als Teil des genannten Profils definiert sind. `my_profile`

```
Region region = Region.US_WEST_2;
DynamoDbClient ddb = DynamoDbClient.builder()
      .region(region)
      .credentialsProvider(ProfileCredentialsProvider.create("my_profile"))
      .build();
```

## Legen Sie ein anderes Profil als Standard fest
<a name="set-a-custom-profile-as-the-default"></a>

Um ein anderes Profil als das `[default]` Profil als Standard für Ihre Anwendung festzulegen, setzen Sie die `AWS_PROFILE` Umgebungsvariable auf den Namen Ihres benutzerdefinierten Profils.

Um diese Variable unter Linux, macOS oder Unix festzulegen, verwenden Sie`export`:

```
export AWS_PROFILE="other_profile"
```

In Windows können Sie die Variablen mit `set` festlegen:

```
set AWS_PROFILE="other_profile"
```

Alternativ können Sie die `aws.profile` Java-Systemeigenschaft auf den Namen des Profils setzen.

## Laden Sie die Profilanmeldedaten neu
<a name="profile-reloading"></a>

Sie können jeden Anmeldeinformationsanbieter konfigurieren, dessen Builder über eine `profileFile()` Methode zum erneuten Laden von Profilanmeldedaten verfügt. Diese Profilklassen für Anmeldeinformationen sind:`ProfileCredentialsProvider`, `DefaultCredentialsProvider``InstanceProfileCredentialsProvider`, und `ProfileTokenProvider.`

**Anmerkung**  
Das erneute Laden von Profilanmeldeinformationen funktioniert nur mit den folgenden Einstellungen in der Profildatei: `aws_access_key_id``aws_secret_access_key`, und. `aws_session_token`  
Einstellungen wie`region`, `sso_session``sso_account_id`, und `source_profile` werden ignoriert.

Um einen unterstützten Anbieter für Anmeldeinformationen zum erneuten Laden von Profileinstellungen zu konfigurieren, stellen Sie eine Instanz von für die `profileFile()` Builder-Methode [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/profiles/ProfileFileSupplier.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/profiles/ProfileFileSupplier.html)bereit. Das folgende Codebeispiel zeigt eine`ProfileCredentialsProvider`, die Anmeldeinformationen aus dem Profil neu lädt. `[default]`

```
ProfileCredentialsProvider provider = ProfileCredentialsProvider
    .builder()
    .profileFile(ProfileFileSupplier.defaultSupplier())
    .build();

// Set up a service client with the provider instance.
DynamoDbClient dynamoDbClient = DynamoDbClient.builder()
                    .region(Region.US_EAST_1)
                    .credentialsProvider(provider)
                    .build();

/*
    Before dynamoDbClient makes a request, it reloads the credentials settings 
    by calling provider.resolveCredentials().
*/
```

Wenn `ProfileCredentialsProvider.resolveCredentials()` es aufgerufen wird, lädt das SDK for Java die Einstellungen neu. `ProfileFileSupplier.defaultSupplier()`ist eine von [mehreren praktischen Implementierungen](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/profiles/ProfileFileSupplier.html), die vom `ProfileFileSupplier` SDK bereitgestellt werden. Wenn Ihr Anwendungsfall dies erfordert, können Sie Ihre eigene Implementierung bereitstellen.

Das folgende Beispiel zeigt die Verwendung der `ProfileFileSupplier.reloadWhenModified()` Convenience-Methode. `reloadWhenModified()`verwendet einen `Path` Parameter, der Ihnen Flexibilität bei der Festlegung der Quelldatei für die Konfiguration bietet und nicht den Standardspeicherort `~/.aws/credentials` (oder`config`).

Die Einstellungen werden beim Aufruf nur dann neu geladen, wenn `resolveCredentials()` das SDK feststellt, dass der Inhalt der Datei geändert wurde.

```
Path credentialsFilePath = ...

ProfileCredentialsProvider provider = ProfileCredentialsProvider
    .builder()
    .profileFile(ProfileFileSupplier.reloadWhenModified(credentialsFilePath, ProfileFile.Type.CREDENTIALS))
    .profileName("my-profile")
    .build();
/*
    A service client configured with the provider instance calls provider.resolveCredential()
    before each request.
*/
```

Die `ProfileFileSupplier.aggregate()` Methode führt den Inhalt mehrerer Konfigurationsdateien zusammen. Sie entscheiden, ob eine Datei per Aufruf neu geladen wird `resolveCredentials()` oder ob die Einstellungen einer Datei zum Zeitpunkt des ersten Lesens festgelegt sind. 

Das folgende Beispiel zeigt a`DefaultCredentialsProvider`, das die Einstellungen von zwei Dateien zusammenführt, die Profileinstellungen enthalten. Das SDK lädt die Einstellungen in der Datei, auf die die `credentialsFilePath` Variable verweist, bei jedem Aufruf `resolveCredentials()` neu, wenn die Einstellungen geändert wurden. Die Einstellungen des `profileFile` Objekts bleiben unverändert.

```
Path credentialsFilePath = ...;
ProfileFile profileFile = ...;

DefaultCredentialsProvider provider = DefaultCredentialsProvider
        .builder()
        .profileFile(ProfileFileSupplier.aggregate(
                ProfileFileSupplier.reloadWhenModified(credentialsFilePath, ProfileFile.Type.CREDENTIALS),
                ProfileFileSupplier.fixedProfileFile(profileFile)))
        .profileName("my-profile")
        .build();
/*
    A service client configured with the provider instance calls provider.resolveCredential()
    before each request.
*/
```