

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.

# Konfiguration von Service-Clients im Code für den AWS SDK for Java 2.x
<a name="configuring-service-clients-code"></a>

Als Alternative oder zusätzlich zur [externen Konfiguration von Service-Clients](configuring-service-clients-ext.md) können Sie sie programmgesteuert im Code konfigurieren.

Durch die Konfiguration von Service-Clients im Code erhalten Sie eine detaillierte Kontrolle über die vielen Optionen, die Ihnen zur Verfügung stehen. Die meisten Konfigurationen, die Sie extern festlegen können, stehen Ihnen auch zur Verfügung, um sie im Code festzulegen.

## Grundkonfiguration im Code
<a name="conf-service-client-code-basic"></a>

Der folgende Codeausschnitt setzt beispielsweise den AWS-Region Wert `EU_SOUTH_2` für einen Amazon S3-Serviceclient im Code:

```
S3Client s3Client = S3Client.builder()
        .region(Region.EU_SOUTH_2)
        .build();
```

Das vorherige Snippet zeigt die statische Factory-Methode,. `builder()` Die `builder()` Methode gibt ein `builder` Objekt zurück, mit dem Sie den Service-Client anpassen können. Die Fluent-Setter-Methoden geben das `builder` Objekt — in diesem Fall eine [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3ClientBuilder.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3ClientBuilder.html)Instanz — zurück, sodass Sie die Methodenaufrufen der Einfachheit halber und für besser lesbaren Code verketten können. Nachdem Sie die gewünschten Eigenschaften konfiguriert haben, rufen Sie die Methode auf, um den Client zu erstellen. `build()`

## Erweiterte Konfiguration im Code
<a name="conf-service-client-code-several"></a>

Der folgende Ausschnitt zeigt zusätzliche Konfigurationsoptionen:

```
ClientOverrideConfiguration clientOverrideConfiguration =
        ClientOverrideConfiguration.builder()
                .apiCallAttemptTimeout(Duration.ofSeconds(1))
                .addMetricPublisher(CloudWatchMetricPublisher.create())
                .build();

S3Client s3Client = S3Client.builder()
        .region(Region.EU_SOUTH_2)
        .credentialsProvider(EnvironmentVariableCredentialsProvider.create())
        .overrideConfiguration(clientOverrideConfiguration)
        .httpClientBuilder(
                ApacheHttpClient.builder()
                        .maxConnections(100)
                        .connectionTimeout(Duration.ofSeconds(5))
                        .proxyConfiguration(ProxyConfiguration.builder()
                                .endpoint(URI.create("http://proxy:8080"))
                                .build())
        ).build();
```

Im vorherigen Snippet sehen Sie mehrere Einstiegspunkte für die Konfiguration eines Service-Clients:
+ [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/client/config/ClientOverrideConfiguration.Builder.html](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/client/config/ClientOverrideConfiguration.Builder.html), das Konfigurationsoptionen bereitstellt, die allen Service-Clients gemeinsam sind. Bei diesen Einstellungen handelt es sich um AWS spezifische Verhaltensweisen, die unabhängig von einer HTTP-Implementierung sind.
+ **HTTP-Clientkonfiguration über eine separate HTTP-Client-Builder-Implementierung.** Das `ApacheHttpClient.Builder` ist ein Beispiel. Der Service-Client stellt die `httpClientBuilder()` Methode bereit, um den konfigurierten HTTP-Client dem Service-Client zuzuordnen.
+ **Methoden im [Client-Builder](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3ClientBuilder.html) selbst,** wie `region()` und `credentialsProvider()`

### Dieselbe Konfiguration unter Verwendung von Konfigurationsblöcken
<a name="service-client-config-lambda"></a>

Anstatt separate Objekte zu erstellen und sie dann an Service-Client-Methoden zu übergeben, AWS SDK for Java 2.x bietet der Methoden, die Lambda-Ausdrücke akzeptieren, um diese Objekte inline zu erstellen. Die Konfigurationsmethoden im Builder haben denselben Namen, haben jedoch unterschiedliche Signaturen. Beispiel:
+ [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/client/builder/SdkClientBuilder.html#overrideConfiguration(software.amazon.awssdk.core.client.config.ClientOverrideConfiguration)](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/client/builder/SdkClientBuilder.html#overrideConfiguration(software.amazon.awssdk.core.client.config.ClientOverrideConfiguration))
+ [https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/client/builder/SdkClientBuilder.html#overrideConfiguration(java.util.function.Consumer)](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/client/builder/SdkClientBuilder.html#overrideConfiguration(java.util.function.Consumer))

Die zuvor mit diesem Ansatz gezeigte Konfiguration des S3-Clients kann in einem Codeblock erfolgen:

```
S3Client s3Client = S3Client.builder()
        .region(Region.EU_SOUTH_2)
        .credentialsProvider(EnvironmentVariableCredentialsProvider.create())
        .overrideConfiguration(b -> b
                .apiCallAttemptTimeout(Duration.ofSeconds(1))
                .addMetricPublisher(CloudWatchMetricPublisher.create()))
        .httpClientBuilder(ApacheHttpClient.builder()
                .maxConnections(100)
                .connectionTimeout(Duration.ofSeconds(5))
                .proxyConfiguration(ProxyConfiguration.builder()
                        .endpoint(URI.create("http://proxy:8080"))
                        .build()))
        .build();
```

## Konfigurationsoptionen sind im Code nicht verfügbar
<a name="conf-servic-client-only-ext"></a>

Da sich die folgenden Einstellungen auf grundlegende Initialisierungsprozesse im SDK auswirken, können Sie die folgenden Konfigurationseinstellungen nur extern und nicht im Code festlegen:

### Einstellungen für den Speicherort der Datei
<a name="code-only-conf-file-loc"></a>

Diese Einstellungen steuern den Speicherort der gemeinsam genutzten Konfigurations- und Anmeldeinformationsdateien und können nicht programmgesteuert außer Kraft gesetzt werden, nachdem das SDK sie geladen hat:
+ **AWS\$1CONFIG\$1FILE (Umgebungsvariable)/**aws.ConfigFile**** (JVM-Systemeigenschaft)
+ **AWS\$1SHARED\$1CREDENTIALS\$1FILE (Umgebungsvariable****)/aws. sharedCredentialsFile** (JVM-Systemeigenschaft)

Diese Einstellungen müssen festgelegt werden, bevor das SDK die Konfigurationsdateien lädt, da sie bestimmen, wo das SDK nach der Konfiguration sucht. Sobald das SDK initialisiert wurde, hat eine Änderung dieser Werte keine Auswirkung.

### Deaktivierung des Instanz-Metadatendienstes
<a name="code-only-conf-imds"></a>
+ **AWS\$1EC2\$1METADATA\$1DISABLED** **(Umgebungsvariable)/aws.DisableEC2Metadata (JVM-Systemeigenschaft)**

Diese Einstellung steuert, ob das SDK versucht, den EC2-Instanz-Metadatendienst überhaupt zu verwenden. Sobald das SDK initialisiert wurde, können Sie diese Einstellung nicht programmgesteuert ändern.

### Profilauswahl
<a name="code-only-conf-profile"></a>
+ **AWS\$1PROFILE**(Umgebungsvariable)/**aws.profile** (JVM-Systemeigenschaft)

Diese Einstellung teilt dem SDK mit, welches Profil aus den gemeinsam genutzten Konfigurations- und Anmeldeinformationsdateien geladen werden soll. Nach dem Laden hat die Änderung dieses Werts keine Auswirkung.

### Pfade für Container-Anmeldeinformationen
<a name="code-only-conf-container-cred-path"></a>
+ **AWS\$1CONTAINER\$1CREDENTIALS\$1RELATIVE\$1URI**
+ **AWS\$1CONTAINER\$1CREDENTIALS\$1VOLLSTÄNDIGER\$1URI**
+ **AWS\$1CONTAINER\$1AUTORISIERUNGSTOKEN**
+ **AWS\$1CONTAINER\$1AUTORISIERUNGSTOKEN-DATEI**

Sie verwenden diese Umgebungsvariablen, um dem SDK mitzuteilen, wie Anmeldeinformationen von Containerdiensten abgerufen werden sollen. Nachdem die Anmeldeinformationsanbieterkette während der Initialisierung des Service Clients eingerichtet wurde, können Sie diese Einstellungen nicht mehr ändern.

### Auswahl der standardmäßigen HTTP-Implementierung
<a name="code-only-conf-http-impl"></a>
+ **SYNC\$1HTTP\$1SERVICE\$1IMPL (Umgebungsvariable)/software.amazon.awssdk.http.service.impl** **(JVM-Systemeigenschaft)**
+ **ASYNC\$1HTTP\$1SERVICE\$1IMPL** (Umgebungsvariable)/**software.amazon.awssdk.http.async.service.impl** (JVM-Systemeigenschaft)

Diese globalen Einstellungen bestimmen, welche HTTP-Client-Implementierung das SDK für alle Service-Clients verwendet, sofern sie nicht im Code für einzelne Service-Clients überschrieben werden. Sie müssen diese Einstellungen festlegen, bevor das SDK seine HTTP-Clients initialisiert. Sie können danach nicht mehr geändert werden.