

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

# Gunakan profil konfigurasi AWS bersama di AWS SDK for Java 2.x
<a name="credentials-profiles"></a>

Menggunakan `credentials` file bersama `config` dan, Anda dapat mengatur beberapa profil. Hal ini memungkinkan aplikasi Anda untuk menggunakan beberapa set konfigurasi kredensional. `[default]`Profil tersebut telah disebutkan sebelumnya. SDK menggunakan [ProfileCredentialsProvider](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/auth/credentials/ProfileCredentialsProvider.html)kelas 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
<a name="set-a-custom-profile-as-the-default"></a>

Untuk menetapkan profil selain `[default]` profil sebagai default untuk aplikasi Anda, atur 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
<a name="profile-reloading"></a>

Anda dapat mengonfigurasi penyedia kredensi apa pun yang memiliki `profileFile()` metode pada pembuatnya untuk memuat ulang kredensi profil. Kelas profil kredensional 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 seperti`region`,`sso_session`,`sso_account_id`, dan `source_profile` diabaikan.

Untuk mengonfigurasi penyedia kredensi yang didukung untuk memuat ulang setelan profil, berikan instance [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)ke 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](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/profiles/ProfileFileSupplier.html) 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` (atau`config`).

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