Verwenden Sie Profile - AWS SDK for Java 2.x

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 Profile

Mithilfe von Geteilte Profile config und credentials Dateien 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 ProfileCredentialsProviderKlasse, 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

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 Sieexport:

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

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, DefaultCredentialsProviderInstanceProfileCredentialsProvider, und ProfileTokenProvider.

Anmerkung

Das erneute Laden von Profilanmeldeinformationen funktioniert nur mit den folgenden Einstellungen in der Profildatei: aws_access_key_idaws_secret_access_key, und. aws_session_token

Einstellungen wieregion, sso_sessionsso_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 ProfileFileSupplierbereit. Das folgende Codebeispiel zeigt eineProfileCredentialsProvider, 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, 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 (oderconfig).

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 aDefaultCredentialsProvider, 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. */