Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengkonfigurasi klien layanan dalam kode untuk AWS SDK for Java 2.x
Sebagai alternatif untuk—atau selain— mengkonfigurasi klien layanan secara eksternal, Anda dapat mengonfigurasinya secara terprogram dalam kode.
Dengan mengonfigurasi klien layanan dalam kode, Anda mendapatkan kontrol halus dari banyak opsi yang tersedia untuk Anda. Sebagian besar konfigurasi yang dapat Anda atur secara eksternal juga tersedia untuk Anda atur dalam kode.
Konfigurasi dasar dalam kode
Misalnya, cuplikan berikut menyetel ke Wilayah AWS EU_SOUTH_2
untuk klien layanan Amazon S3 dalam kode:
S3Client s3Client = S3Client.builder() .region(Region.EU_SOUTH_2) .build();
Cuplikan sebelumnya menunjukkan metode pabrik statis,. builder()
builder()
Metode mengembalikan builder
objek yang memungkinkan Anda untuk menyesuaikan klien layanan. Metode penyetel yang lancar mengembalikan builder
objek—dalam hal ini, sebuah S3ClientBuilder
build()
metode untuk membuat klien.
Konfigurasi lanjutan dalam kode
Cuplikan berikut menunjukkan opsi konfigurasi tambahan:
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();
Pada cuplikan sebelumnya, Anda dapat melihat beberapa titik masuk untuk mengonfigurasi klien layanan:
-
ClientOverrideConfiguration.Builder
Objek yangmenyediakan opsi konfigurasi umum di semua klien layanan. Pengaturan ini adalah perilaku AWS spesifik yang independen dari implementasi HTTP apa pun. -
Konfigurasi klien HTTP melalui implementasi pembuat klien HTTP terpisah.
Ini adalah contoh. Klien layanan menyediakanApacheHttpClient.Builder
httpClientBuilder()
metode untuk mengaitkan klien HTTP yang dikonfigurasi ke klien layanan. -
Metode pada pembangun klien
itu sendiri, seperti region()
dancredentialsProvider()
Alih-alih membuat objek terpisah dan kemudian meneruskannya ke metode klien layanan, metode AWS SDK for Java 2.x ini menyediakan metode yang menerima ekspresi lambda untuk membangun objek ini sebaris. Metode konfigurasi pada builder diberi nama yang sama, tetapi memiliki tanda tangan yang berbeda. Misalnya:
Konfigurasi klien S3 yang ditunjukkan sebelumnya menggunakan pendekatan ini dapat dilakukan dalam satu blok kode:
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();
Opsi konfigurasi tidak tersedia dalam kode
Karena setelan berikut memengaruhi proses inisialisasi mendasar di SDK, Anda dapat mengatur pengaturan konfigurasi berikut hanya secara eksternal dan bukan dalam kode:
Pengaturan Lokasi File
Pengaturan ini mengontrol lokasi file konfigurasi dan kredensyal bersama dan tidak dapat diganti secara terprogram setelah SDK memuatnya:
-
AWS_CONFIG_FILE (variabel lingkungan) /AWS.configFile (properti sistem JVM)
-
AWS_SHARED_CREDENTIALS_FILE (variabel lingkungan)/aws. sharedCredentialsFile (Properti sistem JVM)
Pengaturan ini harus diatur sebelum SDK memuat file konfigurasi, karena mereka menentukan di mana SDK mencari konfigurasi. Setelah SDK diinisialisasi, mengubah nilai-nilai ini tidak berpengaruh.
Penonaktifan Layanan Metadata Instance
-
AWS_EC2_METADATA_DISABLED (variabel lingkungan) /AWS.disableEC2Metadata (properti sistem JVM)
Setelan ini mengontrol apakah SDK mencoba menggunakan Layanan Metadata EC2 Instance sama sekali. Setelah SDK diinisialisasi, Anda tidak dapat mengubah pengaturan ini secara terprogram.
Pemilihan Profil
-
AWS_PROFILE(variabel lingkungan) /aws.profile (properti sistem JVM)
Setelan ini memberi tahu SDK profil mana yang akan dimuat dari file konfigurasi dan kredensyal bersama. Setelah dimuat, mengubah nilai ini tidak berpengaruh.
Jalur Kredensyal Kontainer
-
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
-
AWS_CONTAINER_KREDENSIALS_FULL_URI
-
AWS_CONTAINER_AUTHORIZATION_TOKEN
-
AWS_CONTAINER_OTORISASI_TOKEN_FILE
Anda menggunakan variabel lingkungan ini untuk memberi tahu SDK cara mengambil kredensyal dari layanan kontainer. Setelah rantai penyedia kredensyal dibuat selama inisialisasi klien layanan, Anda tidak dapat mengubah pengaturan ini.
Pilihan Implementasi HTTP Default
-
SYNC_HTTP_SERVICE_IMPL (variabel lingkungan) /software.amazon.awssdk.http.service.impl (properti sistem JVM)
-
ASYNC_HTTP_SERVICE_IMPL (variabel lingkungan) /software.amazon.awssdk.http.async.service.impl (properti sistem JVM)
Pengaturan global ini menentukan implementasi klien HTTP mana yang digunakan SDK untuk semua klien layanan kecuali diganti dalam kode untuk klien layanan individu. Anda harus menyetel ini sebelum SDK menginisialisasi klien HTTP-nya dan tidak dapat diubah sesudahnya.