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 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 ProfileCredentialsProvidercredentials
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
, 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 wieregion
, 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 ProfileFileSupplier
ProfileCredentialsProvider
, mit der die Anmeldeinformationen aus dem Profil neu geladen werden. [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 der SDK für Java aufgerufen ProfileCredentialsProvider.resolveCredentials()
wird, werden die Einstellungen neu geladen. ProfileFileSupplier.defaultSupplier()
ist eine von mehreren praktischen ImplementierungenProfileFileSupplier
bereitgestellt werden. SDK 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 festgestellt resolveCredentials()
wird, SDK 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. Die Einstellungen in der Datei, auf die die credentialsFilePath
Variable verweist, werden jedes Mal SDK neu geladen, wenn die Einstellungen aufgerufen werden und resolveCredentials()
sich die Einstellungen geändert haben. 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. */