Gunakan profil - AWS SDK for Java 2.x

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Gunakan profil

Menggunakan credentials file bersama config dan, Anda dapat mengatur beberapa profil. Hal ini memungkinkan aplikasi Anda untuk menggunakan beberapa set konfigurasi kredensyal. [default]Profil tersebut telah disebutkan sebelumnya. SDK menggunakan ProfileCredentialsProviderkelas untuk memuat pengaturan dari profil yang ditentukan dalam credentials file bersama.

Cuplikan kode berikut menunjukkan cara membangun klien layanan yang menggunakan pengaturan yang didefinisikan sebagai bagian dari profil bernama. my_profile

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

Tetapkan profil yang berbeda sebagai default

Untuk menetapkan profil selain [default] profil sebagai default untuk aplikasi Anda, setel variabel AWS_PROFILE lingkungan ke nama profil kustom Anda.

Untuk mengatur variabel ini di Linux, macOS, atau Unix, gunakan: export

export AWS_PROFILE="other_profile"

Untuk menetapkan variabel ini di Windows, gunakan set:

set AWS_PROFILE="other_profile"

Atau, atur properti sistem aws.profile Java ke nama profil.

Muat ulang kredensi profil

Anda dapat mengonfigurasi penyedia kredensyal apa pun yang memiliki profileFile() metode pada pembuatnya untuk memuat ulang kredensyal profil. Kelas profil kredensyal ini adalah:ProfileCredentialsProvider,,DefaultCredentialsProvider, dan InstanceProfileCredentialsProvider ProfileTokenProvider.

catatan

Pemuatan ulang kredenal profil hanya berfungsi dengan pengaturan berikut di file profil:aws_access_key_id,aws_secret_access_key, dan. aws_session_token

Pengaturan sepertiregion,sso_session,sso_account_id, dan source_profile diabaikan.

Untuk mengonfigurasi penyedia kredensi yang didukung untuk memuat ulang setelan profil, berikan instance ProfileFileSupplierke metode profileFile() pembangun. Contoh kode berikut menunjukkan ProfileCredentialsProvider yang memuat ulang pengaturan kredensi dari profil. [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(). */

Ketika ProfileCredentialsProvider.resolveCredentials() dipanggil, SDK for Java memuat ulang pengaturan. ProfileFileSupplier.defaultSupplier()adalah salah satu dari beberapa implementasi kenyamanan yang ProfileFileSupplier disediakan oleh SDK. Jika kasus penggunaan Anda membutuhkan, Anda dapat memberikan implementasi Anda sendiri.

Contoh berikut menunjukkan penggunaan metode ProfileFileSupplier.reloadWhenModified() kenyamanan. reloadWhenModified()mengambil Path parameter, yang memberi Anda fleksibilitas dalam menunjuk file sumber untuk konfigurasi daripada lokasi standar ~/.aws/credentials (atauconfig).

Pengaturan akan dimuat ulang ketika resolveCredentials() dipanggil hanya jika SDK menentukan konten file telah dimodifikasi.

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

ProfileFileSupplier.aggregate()Metode ini menggabungkan isi dari beberapa file konfigurasi. Anda memutuskan apakah file dimuat ulang per panggilan ke resolveCredentials() atau pengaturan file diperbaiki pada saat pertama kali dibaca.

Contoh berikut menunjukkan DefaultCredentialsProvider yang menggabungkan pengaturan dua file yang berisi pengaturan profil. SDK memuat ulang pengaturan dalam file yang ditunjuk oleh credentialsFilePath variabel setiap kali resolveCredentials() dipanggil dan pengaturan telah berubah. Pengaturan dari profileFile objek tetap sama.

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